Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreperico2010-04-30 13:09:31 +0000
committereperico2010-04-30 13:09:31 +0000
commitd9f33eafc745820b5a65ece9275d69fed36b3147 (patch)
tree26fc9676fc9c96471240f9e392feef0dd2adee13 /extraplugins/deprecated-plugins
parent30977eddf2c52c20ac226d6cd05c00221c5058aa (diff)
downloadorg.eclipse.papyrus-d9f33eafc745820b5a65ece9275d69fed36b3147.tar.gz
org.eclipse.papyrus-d9f33eafc745820b5a65ece9275d69fed36b3147.tar.xz
org.eclipse.papyrus-d9f33eafc745820b5a65ece9275d69fed36b3147.zip
move to deprecated folder
Diffstat (limited to 'extraplugins/deprecated-plugins')
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.classpath8
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.project28
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.core.prefs265
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.ui.prefs6
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/META-INF/MANIFEST.MF23
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/about.html28
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/build.properties18
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCoveredCommand.java182
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CreateLifelineAndBESCommand.java88
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/InitializeInteractionViewCommand.java103
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageOrderCommand.java829
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageTypeLinkCreateCommandCommon.java224
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionCompartmentXYLayoutEditPolicy.java212
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionDragDropEditPolicy.java39
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/LifelineXYLayoutEditPolicy.java519
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/MessageDestroySemanticEditPolicy.java117
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDeleteOnlyViewComponentEditPolicy.java48
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDiagramDragAndDropEditPolicy.java86
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/DiagramInitializationUtil.java293
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/InteractionViewInitializationUtil.java1110
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/MessageCommonUtil.java961
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/icons/SequenceDiagram.gifbin0 -> 92 bytes
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/messages.properties123
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/classDiagram_constraints.gmfgraph129
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgen2387
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgraph564
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfmap544
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmftool79
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.trace97
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.properties94
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.xml1160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/Activator.java74
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/CreateSequenceDiagramCommand.java48
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/BehaviorExecutionSpecificationCreateCommand.java144
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCreateCommand.java139
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementCreateCommand.java103
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementReorientCommand.java191
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java120
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentCreateCommand.java104
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentReorientCommand.java158
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Interaction2CreateCommand.java136
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/InteractionCreateCommand.java137
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/LifelineCreateCommand.java137
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2CreateCommand.java201
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2ReorientCommand.java262
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message3CreateCommand.java201
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message3ReorientCommand.java262
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message4CreateCommand.java201
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message4ReorientCommand.java262
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message5CreateCommand.java201
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message5ReorientCommand.java262
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message6CreateCommand.java201
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message6ReorientCommand.java262
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageCreateCommand.java201
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageReorientCommand.java262
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/UMLCreateShortcutDecorationsCommand.java82
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/UMLReorientConnectionViewCommand.java82
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/BehaviorExecutionSpecificationEditHelper.java17
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/CombinedFragmentEditHelper.java17
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/CommentEditHelper.java18
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/InteractionEditHelper.java17
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/LifelineEditHelper.java17
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/MessageEditHelper.java17
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/PackageEditHelper.java17
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/helpers/UMLBaseEditHelper.java83
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/BehaviorExecutionSpecificationEditPart.java559
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/CombinedFragmentEditPart.java561
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/CombinedFragmentInteractionOperatorEditPart.java609
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/CommentAnnotatedElementEditPart.java149
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/CommentBodyEditPart.java612
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/CommentEditPart.java607
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/ElementOwnedCommentEditPart.java150
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/Interaction2EditPart.java603
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/InteractionEditPart.java611
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/InteractionInteractionCompartment2EditPart.java311
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/InteractionInteractionCompartmentEditPart.java311
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/InteractionName2EditPart.java631
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/InteractionNameEditPart.java630
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/LifelineEditPart.java878
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/LifelineNameEditPart.java638
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/Message2EditPart.java228
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/Message3EditPart.java245
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/Message4EditPart.java228
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/Message5EditPart.java228
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/Message6EditPart.java226
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageEditPart.java238
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageName2EditPart.java588
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageName3EditPart.java588
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageName4EditPart.java588
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageName5EditPart.java588
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageName6EditPart.java588
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/MessageNameEditPart.java588
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/PackageEditPart.java157
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/parts/UMLEditPartFactory.java274
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/BehaviorExecutionSpecificationItemSemanticEditPolicy.java223
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/CombinedFragmentItemSemanticEditPolicy.java223
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/CommentAnnotatedElementItemSemanticEditPolicy.java87
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/CommentItemSemanticEditPolicy.java220
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/ElementOwnedCommentItemSemanticEditPolicy.java61
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/Interaction2ItemSemanticEditPolicy.java348
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionInteractionCompartment2CanonicalEditPolicy.java126
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionInteractionCompartment2ItemSemanticEditPolicy.java78
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionInteractionCompartmentCanonicalEditPolicy.java126
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionInteractionCompartmentItemSemanticEditPolicy.java78
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionItemSemanticEditPolicy.java355
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/LifelineCanonicalEditPolicy.java118
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/LifelineItemSemanticEditPolicy.java341
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/Message2ItemSemanticEditPolicy.java160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/Message3ItemSemanticEditPolicy.java160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/Message4ItemSemanticEditPolicy.java160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/Message5ItemSemanticEditPolicy.java160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/Message6ItemSemanticEditPolicy.java160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/MessageItemSemanticEditPolicy.java160
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/PackageCanonicalEditPolicy.java788
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/PackageItemSemanticEditPolicy.java146
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/UMLBaseItemSemanticEditPolicy.java737
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/UMLTextNonResizableEditPolicy.java219
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/policies/UMLTextSelectionEditPolicy.java202
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/expressions/UMLAbstractExpression.java165
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/expressions/UMLOCLFactory.java214
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLAbstractNavigatorItem.java71
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLDomainNavigatorContentProvider.java244
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLDomainNavigatorItem.java132
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLDomainNavigatorLabelProvider.java109
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorActionProvider.java193
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorContentProvider.java1451
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorGroup.java109
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorItem.java108
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorLabelProvider.java595
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorLinkHelper.java150
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/navigator/UMLNavigatorSorter.java47
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/parsers/AbstractParser.java452
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/parsers/CompositeParser.java85
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/parsers/MessageFormatParser.java227
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DeleteElementAction.java103
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/DiagramEditorContextMenuProvider.java89
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/Messages.java584
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/ModelElementSelectionPage.java166
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/SequenceDiagramEditorFactory.java28
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreateShortcutAction.java139
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizard.java172
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizardPage.java133
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDiagramActionBarContributor.java35
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDiagramEditor.java494
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDiagramEditorPlugin.java309
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDiagramEditorUtil.java516
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDiagramUpdateCommand.java96
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDiagramUpdater.java2086
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDocumentProvider.java714
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLDomainModelElementTester.java778
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLElementChooserDialog.java416
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLInitDiagramFileAction.java109
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLLinkDescriptor.java104
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLLoadResourceAction.java77
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLMatchingStrategy.java75
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLNewDiagramFileWizard.java242
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLNodeDescriptor.java68
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLPaletteFactory.java336
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLSequenceDiagramForMultiEditor.java246
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLShortcutPropertyTester.java39
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLUriEditorInputTester.java34
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLVisualIDRegistry.java617
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/ValidateAction.java303
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramAppearancePreferencePage.java29
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramConnectionsPreferencePage.java29
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramGeneralPreferencePage.java29
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramIconStylePreferencePage.java73
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramPreferenceInitializer.java45
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramPrintingPreferencePage.java29
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/preferences/DiagramRulersAndGridPreferencePage.java29
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/ElementInitializers.java341
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLContributionItemProvider.java28
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLEditPartProvider.java155
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLElementTypes.java334
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLIconProvider.java41
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLMarkerNavigationProvider.java98
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLModelingAssistantProvider.java234
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLParserProvider.java685
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLShortcutsDecoratorProvider.java103
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLValidationProvider.java141
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/providers/UMLViewProvider.java361
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/sheet/UMLPropertySection.java130
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/sheet/UMLSheetLabelProvider.java93
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/BehaviorExecutionSpecificationViewFactory.java56
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/CombinedFragmentInteractionOperatorViewFactory.java33
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/CombinedFragmentViewFactory.java71
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/CommentAnnotatedElementViewFactory.java45
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/CommentBodyViewFactory.java22
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/CommentViewFactory.java69
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/ElementOwnedCommentViewFactory.java45
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/Interaction2ViewFactory.java79
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/InteractionInteractionCompartment2ViewFactory.java83
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/InteractionInteractionCompartmentViewFactory.java83
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/InteractionName2ViewFactory.java32
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/InteractionNameViewFactory.java32
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/InteractionViewFactory.java87
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/LifelineNameViewFactory.java32
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/LifelineViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/Message2ViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/Message3ViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/Message4ViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/Message5ViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/Message6ViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageName2ViewFactory.java55
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageName3ViewFactory.java55
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageName4ViewFactory.java55
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageName5ViewFactory.java55
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageName6ViewFactory.java55
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageNameViewFactory.java55
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/MessageViewFactory.java67
-rw-r--r--extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/view/factories/PackageViewFactory.java43
211 files changed, 51726 insertions, 0 deletions
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.classpath b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.classpath
new file mode 100644
index 00000000000..309f48b473b
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="custom-src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.project b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.project
new file mode 100644
index 00000000000..9be7fb4d2c4
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.diagram.sequence</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.core.prefs b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..442aaecc411
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,265 @@
+#Thu May 14 15:07:50 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=200
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=200
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.ui.prefs b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..d560afd00ed
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,6 @@
+#Thu Aug 28 09:50:28 CEST 2008
+eclipse.preferences.version=1
+formatter_profile=_Papyrus Formatter Profile
+formatter_settings_version=11
+org.eclipse.jdt.ui.javadoc=false
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/META-INF/MANIFEST.MF b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..62f3477dd09
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.diagram.sequence;singleton:=true
+Bundle-Version: 0.7.0.vqualifier
+Bundle-Activator: org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.views,
+ org.eclipse.ocl.ecore,
+ org.eclipse.papyrus.core.adaptor.gmf;bundle-version="0.7.0",
+ org.eclipse.ui.navigator;bundle-version="3.3.100",
+ org.eclipse.ui.navigator.resources;bundle-version="3.3.100",
+ org.eclipse.core.expressions;bundle-version="3.4.0",
+ org.eclipse.papyrus.diagram.common;bundle-version="0.7.0",
+ org.eclipse.gmf.runtime.diagram.ui.printing;bundle-version="1.1.2",
+ org.eclipse.gmf.runtime.diagram.ui.printing.render;bundle-version="1.1.2"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.diagram.sequence,
+ org.eclipse.papyrus.diagram.sequence.part
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/about.html b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/build.properties b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/build.properties
new file mode 100644
index 00000000000..092434dbda0
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/build.properties
@@ -0,0 +1,18 @@
+source.. = src/,\
+ custom-src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ plugin.properties,\
+ messages.properties,\
+ about.html
+src.includes = about.html,\
+ .classpath,\
+ custom-src/,\
+ icons/,\
+ src/,\
+ plugin.xml,\
+ plugin.properties,\
+ messages.properties
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCoveredCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCoveredCommand.java
new file mode 100644
index 00000000000..6c0f0cc9ff3
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCoveredCommand.java
@@ -0,0 +1,182 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest.ViewAndElementDescriptor;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.uml2.uml.CombinedFragment;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.sequence.edit.parts.CombinedFragmentEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart;
+
+public class CombinedFragmentCoveredCommand extends Command {
+
+ private org.eclipse.emf.common.command.Command command;
+ private List<org.eclipse.emf.common.command.Command> commandList;
+
+ private CombinedFragmentEditPart combinedFragmentEP;
+ private ViewAndElementDescriptor viewAndElementDescriptor;
+ private EditPartViewer editPartViewer;
+
+ // Common
+ private void init() {
+ commandList = new ArrayList<org.eclipse.emf.common.command.Command>();
+ combinedFragmentEP = null;
+ viewAndElementDescriptor = null;
+ editPartViewer = null;
+ }
+
+ // New creation
+ public CombinedFragmentCoveredCommand(EditPartViewer epViewer,
+ ViewAndElementDescriptor viewAndElemDes) {
+ init();
+ editPartViewer = epViewer;
+ viewAndElementDescriptor = viewAndElemDes;
+ }
+
+ // Resizing
+ public CombinedFragmentCoveredCommand(CombinedFragmentEditPart cfEP) {
+ init();
+ combinedFragmentEP = cfEP;
+ editPartViewer = cfEP.getViewer();
+ }
+
+ @Override
+ public boolean canExecute() {
+ // Resize of a existing CombinedFragment
+ if (combinedFragmentEP != null)
+ return true;
+ // Creation of a new CombinedFragment
+ if (editPartViewer != null
+ && viewAndElementDescriptor != null
+ && viewAndElementDescriptor.getSemanticHint().compareTo(
+ Integer.toString(CombinedFragmentEditPart.VISUAL_ID)) == 0)
+ return true;
+
+ // Null or not correct parameters
+ return false;
+ }
+
+ @Override
+ public void execute() {
+ super.execute();
+
+ if (combinedFragmentEP == null) {
+ Node cfNode = (Node) viewAndElementDescriptor
+ .getAdapter(Node.class);
+
+ combinedFragmentEP = (CombinedFragmentEditPart) editPartViewer
+ .getEditPartRegistry().get(cfNode);
+ }
+
+ // Feature to make updates
+ EReference feature = UMLPackage.eINSTANCE
+ .getInteractionFragment_Covered();
+
+ // Semantic element
+ CombinedFragment combinedFragment = (CombinedFragment) combinedFragmentEP
+ .resolveSemanticElement();
+
+ // Refresh figure
+ combinedFragmentEP.getFigure().getUpdateManager().performUpdate();
+
+ // Get Lifelines covered by the CombinedFragment figure
+ EList<Lifeline> coveredList = getCoveredList(combinedFragmentEP
+ .getParent(), combinedFragmentEP.getFigure().getBounds());
+
+ // Remove current elements
+ EList<Lifeline> removeList = new BasicEList<Lifeline>(combinedFragment
+ .getCovereds());
+ commandList.add(RemoveCommand.create(getEditingDomain(),
+ combinedFragment, feature, removeList));
+
+ // Add new elements
+ commandList.add(AddCommand.create(getEditingDomain(), combinedFragment,
+ feature, coveredList));
+
+ // Execute commands
+ for (org.eclipse.emf.common.command.Command cmd : commandList) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ }
+
+ }
+
+ public TransactionalEditingDomain getEditingDomain() {
+ if (combinedFragmentEP != null)
+ return combinedFragmentEP.getEditingDomain();
+ else
+ return null;
+ }
+
+ // It is not necessary for RectB to cover completely RectA. With a simple
+ // intersection is enough.
+ static public boolean isRectACoverdByRectB(Rectangle rectA, Rectangle rectB) {
+ return rectB.intersects(rectA);
+ }
+
+ public EList<Lifeline> getCoveredList(EditPart containerEP,
+ Rectangle newBounds) {
+ EList<Lifeline> coveredList = new BasicEList<Lifeline>();
+ for (Object obj : containerEP.getChildren()) {
+ if (obj instanceof LifelineEditPart) {
+ LifelineEditPart lifelineEP = (LifelineEditPart) obj;
+
+ // Update figure
+ lifelineEP.getFigure().getUpdateManager().performUpdate();
+
+ // Case the Lifeline is covered by the
+ // CombinedFragment
+ if (isRectACoverdByRectB(lifelineEP.getFigure().getBounds(),
+ newBounds)) {
+ coveredList.add((Lifeline) lifelineEP
+ .resolveSemanticElement());
+ }
+ }
+ }
+ return coveredList;
+ }
+
+ @Override
+ public void undo() {
+ for (int i = commandList.size() - 1; i >= 0; i--) {
+ if (getEditingDomain().getCommandStack().getUndoCommand() == commandList
+ .get(i)) {
+ getEditingDomain().getCommandStack().undo();
+ }
+ }
+ }
+
+ @Override
+ public void redo() {
+ for (int i = 0; i < commandList.size(); i++) {
+ if (getEditingDomain().getCommandStack().getRedoCommand() == commandList
+ .get(i)) {
+ getEditingDomain().getCommandStack().redo();
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CreateLifelineAndBESCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CreateLifelineAndBESCommand.java
new file mode 100644
index 00000000000..e5a71f098d0
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/CreateLifelineAndBESCommand.java
@@ -0,0 +1,88 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Francisco Javier Cano Muñoz - Expanded functionality
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest.ViewAndElementDescriptor;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+public class CreateLifelineAndBESCommand extends AbstractTransactionalCommand {
+
+ private ViewDescriptor viewDescriptor = null;
+
+ private EditPartViewer viewer = null;
+
+ public CreateLifelineAndBESCommand(TransactionalEditingDomain domain,
+ ViewDescriptor descriptor, EditPartViewer viewer) {
+ super(domain, "Create Lifeline and BES", null);
+ viewDescriptor = descriptor;
+ this.viewer = viewer;
+ }
+
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+
+ View view = (View) viewDescriptor.getAdapter(View.class);
+ if (view == null) {
+ return CommandResult
+ .newErrorCommandResult("Lifeline view not created");
+ }
+
+ Command command = getBESCreateCommand(view);
+ if (command != null) {
+ command.execute();
+ }
+
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ public boolean canExecute() {
+ return viewDescriptor != null && viewer != null;
+ }
+
+ private Command getBESCreateCommand(View view) {
+ IGraphicalEditPart newLifelineEditPart = (IGraphicalEditPart) viewer
+ .getEditPartRegistry().get(view);
+ newLifelineEditPart.getFigure().getUpdateManager().performUpdate();
+
+ CreateElementRequest elementRequest = new CreateElementRequest(
+ UMLElementTypes.BehaviorExecutionSpecification_2003);
+ CreateElementRequestAdapter requestAdatper = new CreateElementRequestAdapter(
+ elementRequest);
+ ViewAndElementDescriptor descriptor = new ViewAndElementDescriptor(
+ requestAdatper, Node.class, "2003",
+ UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+
+ CreateViewAndElementRequest request = new CreateViewAndElementRequest(
+ descriptor);
+
+ Command command = newLifelineEditPart.getCommand(request);
+ return command;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/InitializeInteractionViewCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/InitializeInteractionViewCommand.java
new file mode 100644
index 00000000000..a597931be60
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/InitializeInteractionViewCommand.java
@@ -0,0 +1,103 @@
+/***************************************************************************
+ * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Francisco Javier Cano Muñoz - Initial API implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+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.draw2d.geometry.Point;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Message;
+
+import org.eclipse.papyrus.diagram.sequence.util.DiagramInitializationUtil;
+import org.eclipse.papyrus.diagram.sequence.util.InteractionViewInitializationUtil;
+import org.eclipse.papyrus.diagram.sequence.util.InteractionViewInitializationUtil.NodeInitDataFigure;
+
+/**
+ * Creates the views of an <Interaction>, its <Lifeline>s,
+ * <BehaviorExecutionSpecification>s and <Message>s.
+ *
+ * @author fjcano
+ *
+ */
+public class InitializeInteractionViewCommand extends
+ AbstractTransactionalCommand {
+
+ IGraphicalEditPart parentEditPart = null;
+
+ Interaction interaction = null;
+
+ Point offset = null;
+
+ public InitializeInteractionViewCommand(TransactionalEditingDomain domain,
+ String label, List affectedFiles) {
+ super(domain, label, affectedFiles);
+ }
+
+ public IGraphicalEditPart getParentEditPart() {
+ return parentEditPart;
+ }
+
+ public Interaction getInteraction() {
+ return interaction;
+ }
+
+ public Point getOffset() {
+ return offset != null ? offset : new Point(0, 0);
+ }
+
+ public void setParentEditPart(IGraphicalEditPart parentEditPart) {
+ this.parentEditPart = parentEditPart;
+ }
+
+ public void setInteraction(Interaction interaction) {
+ this.interaction = interaction;
+ }
+
+ public void setOffset(Point offset) {
+ this.offset = offset.getCopy();
+ }
+
+ @Override
+ public boolean canExecute() {
+ boolean canExecute = getInteraction() != null
+ && getParentEditPart() != null && getEditingDomain() != null;
+ return canExecute;
+ }
+
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (getInteraction() != null || getParentEditPart() != null
+ && getEditingDomain() != null) {
+ List<List<Message>> orderedMessages = DiagramInitializationUtil
+ .getGlobalMsgOrdering(getInteraction());
+ if (orderedMessages != null && orderedMessages.size() >= 0) {
+ NodeInitDataFigure interactionData = InteractionViewInitializationUtil
+ .calculateInteractionInitData(interaction,
+ orderedMessages, getOffset());
+ if (interactionData != null) {
+ InteractionViewInitializationUtil.createViews(
+ getParentEditPart(), interactionData);
+ return CommandResult.newOKCommandResult();
+ }
+ }
+ }
+ return CommandResult
+ .newErrorCommandResult("Unable to initialize Interaction Views.");
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageOrderCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageOrderCommand.java
new file mode 100644
index 00000000000..3e9d1188dcd
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageOrderCommand.java
@@ -0,0 +1,829 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.ReconnectRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest.ConnectionViewAndElementDescriptor;
+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 org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.GeneralOrdering;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+import org.eclipse.uml2.uml.OccurrenceSpecification;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart;
+import org.eclipse.papyrus.diagram.sequence.util.MessageCommonUtil;
+
+public class MessageOrderCommand extends Command {
+
+ // To store the command List
+ // Put the command
+ private List<org.eclipse.emf.common.command.Command> commandList = new ArrayList<org.eclipse.emf.common.command.Command>();
+
+ private ShapeNodeEditPart sourceEditPart = null;
+ private ShapeNodeEditPart targetEditPart = null;
+
+ private ConnectionViewAndElementDescriptor connectionViewElemDes = null;
+
+ private DestroyElementRequest destroyRequest = null;
+ private CreateConnectionViewAndElementRequest createRequest = null;
+ private ReconnectRequest reconnectRequest = null;
+
+ // Only for movement of a BES EditPart
+ private BehaviorExecutionSpecificationEditPart besEditPart = null;
+
+ private TransactionalEditingDomain transactionalEditingDomain;
+
+ // New message creation
+ public MessageOrderCommand(CreateConnectionViewAndElementRequest req) {
+
+ createRequest = req;
+
+ connectionViewElemDes = createRequest
+ .getConnectionViewAndElementDescriptor();
+
+ sourceEditPart = (ShapeNodeEditPart) createRequest.getSourceEditPart();
+ targetEditPart = (ShapeNodeEditPart) createRequest.getTargetEditPart();
+
+ transactionalEditingDomain = sourceEditPart.getEditingDomain();
+ }
+
+ // Re-orientation/Re-anchoring of one end of the message
+ public MessageOrderCommand(ReconnectRequest req) {
+
+ reconnectRequest = req;
+
+ // Used below as old source EditPart
+ sourceEditPart = (ShapeNodeEditPart) reconnectRequest
+ .getConnectionEditPart().getSource();
+ // Used below as old target EditPart
+ targetEditPart = (ShapeNodeEditPart) reconnectRequest
+ .getConnectionEditPart().getTarget();
+
+ // Note: Since the reconnect command has still not been executed, the
+ // connection EditPart still stores the old Source/Target EditPart. That
+ // is the reason why it is not necessary to provide to the constructor
+ // these values.
+
+ transactionalEditingDomain = sourceEditPart.getEditingDomain();
+ }
+
+ // Destruction of a Message. A re-ordering of the ends must be done
+ public MessageOrderCommand(DestroyElementRequest req) {
+ destroyRequest = req;
+
+ sourceEditPart = null;
+ targetEditPart = null;
+
+ transactionalEditingDomain = destroyRequest.getEditingDomain();
+ }
+
+ // Movement of a Behavior Execution Specification. A re-ordering of its
+ // Start and Finish Message Occurrence Specifications should be done.
+ public MessageOrderCommand(BehaviorExecutionSpecificationEditPart besEP) {
+ besEditPart = besEP;
+ transactionalEditingDomain = besEP.getEditingDomain();
+ }
+
+ @Override
+ public boolean canExecute() {
+ // TODO: Can execute should not return true in all cases
+ return true;
+ }
+
+ @Override
+ public void execute() {
+ super.execute();
+
+ if (besEditPart != null) {
+
+ // Get the BES
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) besEditPart
+ .resolveSemanticElement();
+
+ // If the BES has no Start/Finish values, nothing should be done
+ // Note that if one value is null the other value should be null as
+ // well. If not, the model is incorrect.
+ if (bes.getStart() == null || bes.getFinish() == null)
+ return;
+
+ // Get the oldBefore MOS of Start MOS
+ OccurrenceSpecification oldBefore = null;
+ if (bes.getStart() != null
+ && bes.getStart().getGeneralOrderings().size() > 0)
+ oldBefore = bes.getStart().getGeneralOrderings().get(0)
+ .getBefore();
+
+ // Get the oldAfter MOS of Finish MOS
+ OccurrenceSpecification oldAfter = null;
+ if (bes.getFinish() != null
+ && bes.getFinish().getGeneralOrderings().size() > 0)
+ oldAfter = bes.getFinish().getGeneralOrderings().get(0)
+ .getAfter();
+
+ // Update BES figure
+ besEditPart.getFigure().getUpdateManager().performUpdate();
+
+ // Get the newBefore MOS of Start MOS
+ ConnectionNodeEditPart startConnEP = MessageCommonUtil
+ .getBESStartMessageEditPart(besEditPart);
+ Point pStartMOS = MessageCommonUtil.getMessageEndIntersectionPoint(
+ besEditPart, startConnEP, bes.getStart());
+ OccurrenceSpecification newBefore = getMOSBeforePos(
+ (LifelineEditPart) besEditPart.getParent(), pStartMOS,
+ startConnEP);
+ // If newBefore == null, then newBefore = StartMOS
+ if (newBefore == null)
+ newBefore = bes.getStart();
+
+ // Get the newAfter MOS of Finish MOS
+ ConnectionNodeEditPart finishConnEP = MessageCommonUtil
+ .getBESFinishMessageEditPart(besEditPart);
+ Point pFinishMOS = MessageCommonUtil
+ .getMessageEndIntersectionPoint(besEditPart, finishConnEP,
+ bes.getFinish());
+ OccurrenceSpecification newAfter = getMOSAfterPos(
+ (LifelineEditPart) besEditPart.getParent(), pFinishMOS,
+ finishConnEP);
+ // if newAfter== null, then newAfter = FinishMOS
+ if (newAfter == null)
+ newAfter = bes.getFinish();
+
+ // To make changes
+ EReference goAfterFeature = UMLPackage.eINSTANCE
+ .getGeneralOrdering_After();
+ EReference goBeforeFeature = UMLPackage.eINSTANCE
+ .getGeneralOrdering_Before();
+
+ if (oldBefore != newBefore) {
+ // UPDATE oldBefore MOS
+ if (oldBefore != bes.getStart()) {
+ if (oldAfter == bes.getFinish())
+ doSetCommand(oldBefore.getGeneralOrderings().get(0),
+ goAfterFeature, oldBefore);
+ else
+ doSetCommand(oldBefore.getGeneralOrderings().get(0),
+ goAfterFeature, oldAfter);
+ }
+
+ // UPDATE newBefore MOS
+ if (newBefore != bes.getStart()) {
+ doSetCommand(newBefore.getGeneralOrderings().get(0),
+ goAfterFeature, bes.getStart());
+ }
+
+ // UPDATE Start MOS (from moving BES)
+ // Update the Before feature of Start MOS with newBefore
+ doSetCommand(bes.getStart().getGeneralOrderings().get(0),
+ goBeforeFeature, newBefore);
+ }
+
+ if (oldAfter != newAfter) {
+ // UPDATE oldAfter MOS
+ if (oldAfter != bes.getFinish()) {
+ if (oldBefore == bes.getStart())
+ doSetCommand(oldAfter.getGeneralOrderings().get(0),
+ goBeforeFeature, oldAfter);
+ else
+ doSetCommand(oldAfter.getGeneralOrderings().get(0),
+ goBeforeFeature, oldBefore);
+ }
+
+ // UPDATE newAfter MOS
+ if (newAfter != bes.getFinish()) {
+ doSetCommand(newAfter.getGeneralOrderings().get(0),
+ goBeforeFeature, bes.getFinish());
+ }
+
+ // UPDATE Finish MOS (from moving BES)
+ // Update the After feature of Finish MOS with newAfter
+ doSetCommand(bes.getFinish().getGeneralOrderings().get(0),
+ goAfterFeature, newAfter);
+ }
+
+ }
+ // Creation of a new message
+ else if (createRequest != null) {
+
+ View newMsgView = (View) connectionViewElemDes
+ .getAdapter(View.class);
+ ConnectionEditPart newMsgEditPart = (ConnectionEditPart) sourceEditPart
+ .getViewer().getEditPartRegistry().get(newMsgView);
+
+ // Needed to update the points of the connection figure
+ newMsgEditPart.getFigure().getUpdateManager().performUpdate();
+
+ orderLifelinesAddMessage(newMsgEditPart);
+
+ }
+ // Destruction of a message
+ else if (destroyRequest != null) {
+ if (destroyRequest.getElementToDestroy() instanceof Message) {
+ orderLifelinesDelMessage();
+ }
+ }
+ // Re-orientation/Re-anchoring of a existing message
+ else if (reconnectRequest != null) {
+
+ Element endElement;
+ ShapeNodeEditPart endElementEditPart;
+
+ Message msgElement;
+ ConnectionEditPart msgElementEditPart;
+
+ MessageOccurrenceSpecification endMOS;
+
+ // Message
+ msgElementEditPart = reconnectRequest.getConnectionEditPart();
+ msgElement = (Message) ((ConnectionNodeEditPart) msgElementEditPart)
+ .resolveSemanticElement();
+
+ // Old Source End
+ if (reconnectRequest.isMovingStartAnchor()) {
+ endElement = (Element) sourceEditPart.resolveSemanticElement();
+ endMOS = (MessageOccurrenceSpecification) msgElement
+ .getSendEvent();
+ }
+ // Old Target End
+ else {
+ endElement = (Element) targetEditPart.resolveSemanticElement();
+ endMOS = (MessageOccurrenceSpecification) msgElement
+ .getReceiveEvent();
+ }
+
+ // Remove ordering from the old end
+ if (endElement instanceof BehaviorExecutionSpecification) {
+ orderBESDelMOS((BehaviorExecutionSpecification) endElement,
+ endMOS);
+ }
+ orderLifelineDelMOS(endMOS);
+
+ // To make a copy of the GeneralOrdering list
+ BasicEList<GeneralOrdering> goList = new BasicEList<GeneralOrdering>();
+ goList.addAll(endMOS.getGeneralOrderings());
+ for (Iterator<GeneralOrdering> i = goList.iterator(); i.hasNext();) {
+ GeneralOrdering go = i.next();
+ i.remove();
+ DestroyElementCommand.destroy(go);
+ }
+
+ // Add the ordering to the new end
+ // New Source End
+ if (reconnectRequest.isMovingStartAnchor()) {
+ endElementEditPart = ((ShapeNodeEditPart) reconnectRequest
+ .getConnectionEditPart().getSource());
+ }
+ // New Target End
+ else {
+ endElementEditPart = ((ShapeNodeEditPart) reconnectRequest
+ .getConnectionEditPart().getTarget());
+ }
+
+ orderLifelineAddMOS(msgElementEditPart, endElementEditPart);
+
+ }
+
+ }
+
+ public void orderLifelinesAddMessage(ConnectionEditPart newMsgEditPart) {
+ orderLifelineAddMOS(newMsgEditPart, sourceEditPart);
+ orderLifelineAddMOS(newMsgEditPart, targetEditPart);
+ }
+
+ public void orderLifelineAddMOS(ConnectionEditPart msgEditPart,
+ ShapeNodeEditPart elementEditPart) {
+ // Order the MOS in the Lifeline
+
+ // Obtain the LifelineEditPart
+ LifelineEditPart lifelineEditPart;
+ if (elementEditPart instanceof BehaviorExecutionSpecificationEditPart) {
+ lifelineEditPart = (LifelineEditPart) elementEditPart.getParent();
+ } else {
+ lifelineEditPart = (LifelineEditPart) elementEditPart;
+ }
+
+ // Do the ordering
+ Message msg = (Message) ((ConnectionNodeEditPart) msgEditPart)
+ .resolveSemanticElement();
+ MessageOccurrenceSpecification currentMOS;
+ Point currentPos; // Position of the currentMOS
+
+ MessageOccurrenceSpecification beforeMOS = null;
+ MessageOccurrenceSpecification afterMOS = null;
+
+ if (msgEditPart.getSource() == elementEditPart) {
+ currentMOS = (MessageOccurrenceSpecification) msg.getSendEvent();
+ currentPos = elementEditPart.getSourceConnectionAnchor(msgEditPart)
+ .getReferencePoint();
+ } else {
+ currentMOS = (MessageOccurrenceSpecification) msg.getReceiveEvent();
+ currentPos = elementEditPart.getTargetConnectionAnchor(msgEditPart)
+ .getReferencePoint();
+ }
+
+ beforeMOS = getMOSBeforePos(lifelineEditPart, currentPos, msgEditPart);
+ afterMOS = getMOSAfterPos(lifelineEditPart, currentPos, msgEditPart);
+
+ // 1.- order current MOS - GeneralOrdering currentGO =
+ createGeneralOrderingInMOS(currentMOS, beforeMOS, afterMOS);
+
+ // Feature to make updates
+ EReference feature;
+
+ // 2.- Update beforeMOS GeneralOrdering
+ if (beforeMOS != null && beforeMOS.getGeneralOrderings().size() > 0) {
+ feature = UMLPackage.eINSTANCE.getGeneralOrdering_After();
+ doSetCommand(beforeMOS.getGeneralOrderings().get(0), feature,
+ currentMOS);
+ }
+
+ // 3.- Update afterMOS GeneralOrdering
+ if (afterMOS != null && afterMOS.getGeneralOrderings().size() > 0) {
+ feature = UMLPackage.eINSTANCE.getGeneralOrdering_Before();
+ doSetCommand(afterMOS.getGeneralOrderings().get(0), feature,
+ currentMOS);
+ }
+
+ // In case the target was a BES, order the MOS in the BES
+ if (elementEditPart instanceof BehaviorExecutionSpecificationEditPart) {
+ orderBESAddMOS(
+ (BehaviorExecutionSpecificationEditPart) elementEditPart,
+ currentMOS);
+ }
+ }
+
+ public MessageOccurrenceSpecification getMOSBeforePos(
+ LifelineEditPart lifelineEP, Point pos, ConnectionEditPart msgEP) {
+ return getMOSAfterOrBeforePos(lifelineEP, pos, msgEP, true);
+ }
+
+ public MessageOccurrenceSpecification getMOSAfterPos(
+ LifelineEditPart lifelineEP, Point pos, ConnectionEditPart msgEP) {
+ return getMOSAfterOrBeforePos(lifelineEP, pos, msgEP, false);
+ }
+
+ private MessageOccurrenceSpecification getMOSAfterOrBeforePos(
+ LifelineEditPart lifelineEP, Point pos, ConnectionEditPart msgEP,
+ boolean before) {
+ // return the MOS before or after the position indicated by pos
+
+ List<EditPart> linksList = new BasicEList<EditPart>();
+
+ Point auxPos = null;
+ MessageOccurrenceSpecification auxMOS = null;
+
+ Point returnPos = null;
+ MessageOccurrenceSpecification returnMOS = null;
+
+ // Lifeline source connections (Remove itself)
+ linksList.clear();
+ linksList.addAll(lifelineEP.getSourceConnections());
+ // Remove current link
+ linksList.remove(msgEP);
+ // Remove links whose semantic element is different from Message
+ MessageCommonUtil.removeNonMessageConnections(linksList);
+
+ for (Iterator i = linksList.iterator(); i.hasNext();) {
+ ConnectionEditPart currentLink = (ConnectionEditPart) i.next();
+
+ if (currentLink instanceof ConnectionNodeEditPart) {
+ auxPos = lifelineEP.getSourceConnectionAnchor(currentLink)
+ .getReferencePoint(); // intersection point
+ Message msg = (Message) ((ConnectionNodeEditPart) currentLink)
+ .resolveSemanticElement();
+ auxMOS = (MessageOccurrenceSpecification) msg.getSendEvent(); // currentMOS
+
+ if (before && auxPos.y <= pos.y) {
+ if (returnPos == null || auxPos.y >= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+ if (!before && auxPos.y >= pos.y) {
+ if (returnPos == null || auxPos.y <= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+ }
+
+ }
+
+ // Lifeline target connections
+ linksList.clear();
+ linksList.addAll(lifelineEP.getTargetConnections());
+ // Remove current link
+ linksList.remove(msgEP);
+ // Remove links whose semantic element is different from Message
+ MessageCommonUtil.removeNonMessageConnections(linksList);
+
+ for (Iterator i = linksList.iterator(); i.hasNext();) {
+ ConnectionEditPart currentLink = (ConnectionEditPart) i.next();
+
+ if (currentLink instanceof ConnectionNodeEditPart) {
+ auxPos = lifelineEP.getTargetConnectionAnchor(currentLink)
+ .getReferencePoint(); // intersection point
+ Message msg = (Message) ((ConnectionNodeEditPart) currentLink)
+ .resolveSemanticElement();
+ auxMOS = (MessageOccurrenceSpecification) msg.getReceiveEvent(); // currentMOS
+
+ if (before && auxPos.y <= pos.y) {
+ if (returnPos == null || auxPos.y >= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+
+ if (!before && auxPos.y >= pos.y) {
+ if (returnPos == null || auxPos.y <= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+ }
+
+ }
+
+ // BehaviorsExecutionSpecifications contained in the Lifeline
+ for (Iterator i = lifelineEP.getChildren().iterator(); i.hasNext();) {
+ Object next = i.next();
+ if (next instanceof BehaviorExecutionSpecificationEditPart) {
+ BehaviorExecutionSpecificationEditPart besEP = (BehaviorExecutionSpecificationEditPart) next;
+
+ // BehaviorExecutionSpecification source connections
+ linksList.clear();
+ linksList.addAll(besEP.getSourceConnections());
+ // Remove current link
+ linksList.remove(msgEP);
+ // Remove links whose semantic element is different from Message
+ MessageCommonUtil.removeNonMessageConnections(linksList);
+
+ for (Iterator j = linksList.iterator(); j.hasNext();) {
+ ConnectionEditPart currentLink = (ConnectionEditPart) j
+ .next();
+
+ if (currentLink instanceof ConnectionNodeEditPart) {
+ auxPos = besEP.getSourceConnectionAnchor(currentLink)
+ .getReferencePoint(); // intersection point
+ Message msg = (Message) ((ConnectionNodeEditPart) currentLink)
+ .resolveSemanticElement();
+ auxMOS = (MessageOccurrenceSpecification) msg
+ .getSendEvent(); // currentMOS
+
+ if (before && auxPos.y <= pos.y) {
+ if (returnPos == null || auxPos.y >= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+
+ if (!before && auxPos.y >= pos.y) {
+ if (returnPos == null || auxPos.y <= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+ }
+
+ }
+
+ // BehaviorExecutionSpecification target connections
+ linksList.clear();
+ linksList.addAll(besEP.getTargetConnections());
+ // Remove current link
+ linksList.remove(msgEP);
+ // Remove links whose semantic element is different from Message
+ MessageCommonUtil.removeNonMessageConnections(linksList);
+
+ for (Iterator j = linksList.iterator(); j.hasNext();) {
+ ConnectionEditPart currentLink = (ConnectionEditPart) j
+ .next();
+
+ if (currentLink instanceof ConnectionNodeEditPart) {
+ auxPos = besEP.getTargetConnectionAnchor(currentLink)
+ .getReferencePoint(); // intersection point
+ Message msg = (Message) ((ConnectionNodeEditPart) currentLink)
+ .resolveSemanticElement();
+ auxMOS = (MessageOccurrenceSpecification) msg
+ .getReceiveEvent(); // currentMOS
+
+ if (before && auxPos.y <= pos.y) {
+ if (returnPos == null || auxPos.y >= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+
+ if (!before && auxPos.y >= pos.y) {
+ if (returnPos == null || auxPos.y <= returnPos.y) {
+ returnPos = auxPos;
+ returnMOS = auxMOS;
+ }
+ }
+ }
+
+ }
+
+ } // end if bes
+ } // end for bes
+ return returnMOS;
+ }
+
+ public GeneralOrdering createGeneralOrderingInMOS(
+ MessageOccurrenceSpecification currentMOS,
+ MessageOccurrenceSpecification beforeMOS,
+ MessageOccurrenceSpecification afterMOS) {
+ GeneralOrdering currentGO = null;
+ // Not in a Transactional domain so we cannot use
+ // currentMOS.createGeneralOrdering("Name")
+ currentGO = UMLFactory.eINSTANCE.createGeneralOrdering();
+
+ // Assign Name
+ currentGO.setName(currentMOS.getName() + "_GO");
+
+ // Add the new generalOrdering to the MOS
+ EReference featureGO = UMLPackage.eINSTANCE
+ .getInteractionFragment_GeneralOrdering();
+ doAddCommand(currentMOS, featureGO, currentGO);
+
+ // features
+ EReference featureBefore = UMLPackage.eINSTANCE
+ .getGeneralOrdering_Before();
+ EReference featureAfter = UMLPackage.eINSTANCE
+ .getGeneralOrdering_After();
+
+ // currentGO.setBefore(beforeMOS);
+ if (beforeMOS != null) {
+ doSetCommand(currentGO, featureBefore, beforeMOS);
+ } else {
+ doSetCommand(currentGO, featureBefore, currentMOS);
+ }
+
+ // currentGO.setAfter(afterMOS);
+ if (afterMOS != null) {
+ doSetCommand(currentGO, featureAfter, afterMOS);
+ } else {
+ doSetCommand(currentGO, featureAfter, currentMOS);
+ }
+
+ if (currentMOS.getGeneralOrderings().size() > 0) {
+ return currentMOS.getGeneralOrderings().get(0);
+ } else {
+ return null;
+ }
+
+ }
+
+ public void doSetCommand(Object owner, Object feature, Object value) {
+ EditingDomain editingDomain = getEditingDomain();
+ org.eclipse.emf.common.command.Command cmd = SetCommand.create(
+ editingDomain, owner, feature, value);
+ commandList.add(cmd);
+ editingDomain.getCommandStack().execute(cmd);
+ }
+
+ public void doAddCommand(Object owner, Object feature, Object value) {
+ EditingDomain editingDomain = getEditingDomain();
+ org.eclipse.emf.common.command.Command cmd = AddCommand.create(
+ editingDomain, owner, feature, value);
+ commandList.add(cmd);
+ editingDomain.getCommandStack().execute(cmd);
+ }
+
+ public void doRemoveCommand(Object owner, Object feature, Object value) {
+ EditingDomain editingDomain = getEditingDomain();
+ org.eclipse.emf.common.command.Command cmd = RemoveCommand.create(
+ editingDomain, owner, feature, value);
+ commandList.add(cmd);
+ editingDomain.getCommandStack().execute(cmd);
+ }
+
+ public TransactionalEditingDomain getEditingDomain() {
+ return transactionalEditingDomain;
+ }
+
+ @Override
+ public void undo() {
+ for (int i = commandList.size() - 1; i >= 0; i--) {
+ if (getEditingDomain().getCommandStack().getUndoCommand() == commandList
+ .get(i)) {
+ getEditingDomain().getCommandStack().undo();
+ }
+ }
+ }
+
+ @Override
+ public void redo() {
+ for (int i = 0; i < commandList.size(); i++) {
+ if (getEditingDomain().getCommandStack().getRedoCommand() == commandList
+ .get(i)) {
+ getEditingDomain().getCommandStack().redo();
+ }
+ }
+ }
+
+ public void orderLifelinesDelMessage() {
+ Message msg = (Message) destroyRequest.getElementToDestroy();
+
+ // Obtain the elements to destroy
+ MessageOccurrenceSpecification msgSend = null;
+ MessageOccurrenceSpecification msgReceive = null;
+
+ if (msg.getSendEvent() instanceof MessageOccurrenceSpecification) {
+ msgSend = (MessageOccurrenceSpecification) msg.getSendEvent();
+ Element src = MessageCommonUtil.getMessageSrc(msg);
+
+ // If source element is a BES, update BES.start && BES.finish
+ // attributes
+ if (src instanceof BehaviorExecutionSpecification) {
+ orderBESDelMOS((BehaviorExecutionSpecification) src, msgSend);
+ }
+
+ // Reorder MOS's in its corresponding Lifeline
+ orderLifelineDelMOS(msgSend);
+ }
+
+ if (msg.getReceiveEvent() instanceof MessageOccurrenceSpecification) {
+ msgReceive = (MessageOccurrenceSpecification) msg.getReceiveEvent();
+ Element dst = MessageCommonUtil.getMessageDst(msg);
+
+ // If target element is a BES, update BES.start && BES.finish
+ // attributes
+ if (dst instanceof BehaviorExecutionSpecification) {
+ orderBESDelMOS((BehaviorExecutionSpecification) dst, msgReceive);
+ }
+
+ // Reorder MOS's in its corresponding Lifeline
+ orderLifelineDelMOS(msgReceive);
+ }
+ }
+
+ public void orderLifelineDelMOS(MessageOccurrenceSpecification mos) {
+
+ OccurrenceSpecification beforeOS = null;
+ OccurrenceSpecification afterOS = null;
+
+ EReference beforeFeature = UMLPackage.eINSTANCE
+ .getGeneralOrdering_Before();
+ EReference afterFeature = UMLPackage.eINSTANCE
+ .getGeneralOrdering_After();
+
+ if (mos.getGeneralOrderings().size() > 0) {
+ beforeOS = mos.getGeneralOrderings().get(0).getBefore();
+ afterOS = mos.getGeneralOrderings().get(0).getAfter();
+ }
+
+ if (beforeOS != null && beforeOS != mos
+ && beforeOS.getGeneralOrderings().size() > 0) {
+ if (afterOS == mos) {
+ doSetCommand(beforeOS.getGeneralOrderings().get(0),
+ afterFeature, beforeOS);
+ } else {
+ doSetCommand(beforeOS.getGeneralOrderings().get(0),
+ afterFeature, afterOS);
+ }
+ }
+
+ if (afterOS != null && afterOS != mos
+ && afterOS.getGeneralOrderings().size() > 0) {
+ if (beforeOS == mos) {
+ doSetCommand(afterOS.getGeneralOrderings().get(0),
+ beforeFeature, afterOS);
+ } else {
+ doSetCommand(afterOS.getGeneralOrderings().get(0),
+ beforeFeature, beforeOS);
+ }
+ }
+
+ }
+
+ public void orderBESDelMOS(BehaviorExecutionSpecification bes,
+ MessageOccurrenceSpecification mos) {
+ EReference featureStart = UMLPackage.eINSTANCE
+ .getExecutionSpecification_Start();
+ EReference featureFinish = UMLPackage.eINSTANCE
+ .getExecutionSpecification_Finish();
+
+ // Do nothing.
+ if (mos != bes.getStart() && mos != bes.getFinish()) {
+ return;
+ }
+
+ // Not really necessary because References are removed automatically
+ // when the element is deleted.
+ if (bes.getStart() == mos && bes.getFinish() == mos) {
+ doSetCommand(bes, featureStart, null);
+ doSetCommand(bes, featureFinish, null);
+ return;
+ }
+
+ if (bes.getStart() == mos) {
+ if (mos.getGeneralOrderings().size() > 0) {
+ doSetCommand(bes, featureStart, mos.getGeneralOrderings()
+ .get(0).getAfter());
+ }
+
+ } else if (bes.getFinish() == mos) {
+ if (mos.getGeneralOrderings().size() > 0) {
+ doSetCommand(bes, featureFinish, mos.getGeneralOrderings().get(
+ 0).getBefore());
+ }
+
+ }
+
+ }
+
+ public void orderBESAddMOS(
+ BehaviorExecutionSpecificationEditPart besEditPart,
+ MessageOccurrenceSpecification currentMOS) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) besEditPart
+ .resolveSemanticElement();
+ EReference featureStart, featureFinish;
+ featureStart = UMLPackage.eINSTANCE.getExecutionSpecification_Start();
+ featureFinish = UMLPackage.eINSTANCE.getExecutionSpecification_Finish();
+
+ // Case is the first MOS on the BES
+ if (bes.getStart() == null && bes.getFinish() == null) {
+ doSetCommand(bes, featureStart, currentMOS);
+ doSetCommand(bes, featureFinish, currentMOS);
+ }
+
+ if ((bes.getStart() != null)) {
+ // Check if currentMOS is before bes.startMOS
+ if (isOS1BeforeOS2(currentMOS, bes.getStart())) {
+ doSetCommand(bes, featureStart, currentMOS);
+ }
+ }
+
+ if (bes.getFinish() != null) {
+ // Check if currentMOS is after bes.finishMOS
+ if (isOS1AfterOS2(currentMOS, bes.getFinish())) {
+ doSetCommand(bes, featureFinish, currentMOS);
+ }
+ }
+ }
+
+ public static boolean isOS1BeforeOS2(OccurrenceSpecification os1,
+ OccurrenceSpecification os2) {
+ // Check if non of the input parameters is null
+ if (os1 == null || os2 == null) {
+ return false;
+ }
+
+ if (os1.getGeneralOrderings().size() > 0) {
+
+ if (os1.getGeneralOrderings().get(0).getAfter() == null
+ || os1 == os1.getGeneralOrderings().get(0).getAfter()) {
+ return false;
+ }
+
+ if (os1.getGeneralOrderings().get(0).getAfter() == os2) {
+ return true;
+ } else {
+ return isOS1BeforeOS2(os1.getGeneralOrderings().get(0)
+ .getAfter(), os2);
+ }
+
+ } else {
+ return false;
+ }
+ }
+
+ public static boolean isOS1AfterOS2(OccurrenceSpecification os1,
+ OccurrenceSpecification os2) {
+ return isOS1BeforeOS2(os2, os1);
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageTypeLinkCreateCommandCommon.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageTypeLinkCreateCommandCommon.java
new file mode 100644
index 00000000000..27f03c15696
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/commands/MessageTypeLinkCreateCommandCommon.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte, Generalitat
+ * de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram Implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.CallEvent;
+import org.eclipse.uml2.uml.CreationEvent;
+import org.eclipse.uml2.uml.DestructionEvent;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Event;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+import org.eclipse.uml2.uml.MessageSort;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.SendOperationEvent;
+import org.eclipse.uml2.uml.SendSignalEvent;
+import org.eclipse.uml2.uml.SignalEvent;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.common.actions.LabelHelper;
+
+/**
+ * @generated
+ */
+public class MessageTypeLinkCreateCommandCommon extends CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ public MessageTypeLinkCreateCommandCommon(CreateRelationshipRequest req) {
+ super(req);
+ }
+
+ private Package getPackageFromInteraction(Interaction myContainer) {
+ Package interactionPackage = myContainer.getPackage();
+ while (interactionPackage == null) {
+ if (myContainer.getPackage() == null
+ && myContainer.getEnclosingInteraction() != null)
+ return getPackageFromInteraction(myContainer
+ .getEnclosingInteraction());
+ else
+ return null;
+ }
+
+ return interactionPackage;
+ }
+
+ /**
+ * Main method
+ *
+ * @param myContainer
+ * @param mySource
+ * @param myTarget
+ * @param newMessage
+ * @generated NOT
+ */
+ protected void doDefaultMessageInitialize(Interaction myContainer,
+ Element mySource, Element myTarget, Message newMessage) {
+ // Events
+ Event sourceEvent = null;
+ Event targetEvent = null;
+
+ // Package where the interaction is contained. Remeber that an
+ // interaction may be contained withind another interaction.
+ Package interactionPackage = getPackageFromInteraction(myContainer);
+
+ switch (newMessage.getMessageSort().getValue()) {
+ case MessageSort.SYNCH_CALL:
+ case MessageSort.ASYNCH_CALL:
+ // Create the SendOperationEvent
+ sourceEvent = (SendOperationEvent) interactionPackage
+ .createPackagedElement("SendOperationEvent",
+ UMLPackage.eINSTANCE.getSendOperationEvent());
+ LabelHelper.INSTANCE.initName(interactionPackage, sourceEvent);
+
+ // Create the CallEvent
+ targetEvent = (CallEvent) interactionPackage.createPackagedElement(
+ "CallEvent", UMLPackage.eINSTANCE.getCallEvent());
+ LabelHelper.INSTANCE.initName(interactionPackage, targetEvent);
+ break;
+
+ case MessageSort.REPLY:
+ sourceEvent = null;
+ targetEvent = null;
+ break;
+
+ case MessageSort.ASYNCH_SIGNAL:
+ // Create the SendSignalEvent
+ sourceEvent = (SendSignalEvent) interactionPackage
+ .createPackagedElement("SendSignalEvent",
+ UMLPackage.eINSTANCE.getSendSignalEvent());
+ LabelHelper.INSTANCE.initName(interactionPackage, sourceEvent);
+
+ // create the SignalEvent (equal to RecieveSignalEvent)
+ targetEvent = (SignalEvent) interactionPackage
+ .createPackagedElement("SignalEvent", UMLPackage.eINSTANCE
+ .getSignalEvent());
+ LabelHelper.INSTANCE.initName(interactionPackage, targetEvent);
+ break;
+
+ case MessageSort.DELETE_MESSAGE:
+ // create the SignalEvent (equal to RecieveSignalEvent)
+ targetEvent = (DestructionEvent) interactionPackage
+ .createPackagedElement("DestructionEvent",
+ UMLPackage.eINSTANCE.getDestructionEvent());
+ LabelHelper.INSTANCE.initName(interactionPackage, targetEvent);
+ break;
+
+ case MessageSort.CREATE_MESSAGE:
+ // Create the CreationEvent
+ targetEvent = (CreationEvent) interactionPackage
+ .createPackagedElement("CreationEvent",
+ UMLPackage.eINSTANCE.getCreationEvent());
+ LabelHelper.INSTANCE.initName(interactionPackage, targetEvent);
+ break;
+ }
+
+ // Create the 2 MessageOcurrenceSpecification
+ MessageOccurrenceSpecification msgSend = (MessageOccurrenceSpecification) myContainer
+ .createFragment("MessageOccurrenceSpecification",
+ UMLPackage.eINSTANCE
+ .getMessageOccurrenceSpecification());
+ LabelHelper.INSTANCE.initName(myContainer, msgSend);
+
+ MessageOccurrenceSpecification msgReceive = (MessageOccurrenceSpecification) myContainer
+ .createFragment("MessageOccurrenceSpecification",
+ UMLPackage.eINSTANCE
+ .getMessageOccurrenceSpecification());
+ LabelHelper.INSTANCE.initName(myContainer, msgReceive);
+
+ // Initialization of the Message
+ newMessage.setSendEvent(msgSend);
+ newMessage.setReceiveEvent(msgReceive);
+
+ // Initialization of the MessageOccurrenceSpecifications
+
+ // msgSend
+ if (sourceEvent != null)
+ msgSend.setEvent(sourceEvent);
+ msgSend.setMessage(newMessage);
+ // Initialize the covered reference
+ Lifeline lifeLine = null;
+ if (mySource instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) mySource;
+ if (bes.getCovereds().size() > 0) {
+ lifeLine = bes.getCovereds().get(0);
+ msgSend.getCovereds().add(lifeLine);
+ }
+ } else {
+ lifeLine = (Lifeline) mySource;
+ msgSend.getCovereds().add(lifeLine);
+ }
+
+ // msgReceive
+ if (targetEvent != null)
+ msgReceive.setEvent(targetEvent);
+ msgReceive.setMessage(newMessage);
+ // Initialize the covered reference
+ lifeLine = null;
+ if (myTarget instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) myTarget;
+ if (bes.getCovereds().size() > 0) {
+ lifeLine = bes.getCovereds().get(0);
+ msgReceive.getCovereds().add(lifeLine);
+ }
+ } else {
+ lifeLine = (Lifeline) myTarget;
+ msgReceive.getCovereds().add(lifeLine);
+ }
+
+ // NOT DONE HERE ANYMORE - Now is responsibility of MessageOrderCommand
+ // Initialization of the BehaviorExecutionSpecifications
+ // BehaviorExecutionSpecification bes;
+ // if (mySource instanceof BehaviorExecutionSpecification) {
+ // bes = (BehaviorExecutionSpecification) mySource;
+ // if (bes.getStart() == null)
+ // bes.setStart(msgSend);
+ //
+ // bes.setFinish(msgSend);
+ // }
+ //
+ // if (myTarget instanceof BehaviorExecutionSpecification) {
+ // bes = (BehaviorExecutionSpecification) myTarget;
+ // if (bes.getStart() == null)
+ // bes.setStart(msgReceive);
+ //
+ // bes.setFinish(msgReceive);
+ // }
+
+ }
+
+ /**
+ * @generated
+ *
+ * @author fjcano
+ */
+ protected Diagram getDiagramFromRequest() {
+ // used in doDefaultElementCreation()
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionCompartmentXYLayoutEditPolicy.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionCompartmentXYLayoutEditPolicy.java
new file mode 100644
index 00000000000..e199d6db500
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionCompartmentXYLayoutEditPolicy.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte, Generalitat
+ * de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram Implementation
+ * Francisco Javier Cano Muñoz - Expanded functionality
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.policies;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest;
+
+import org.eclipse.papyrus.diagram.common.commands.PreserveAnchorsPositionCommand;
+import org.eclipse.papyrus.diagram.sequence.edit.commands.CombinedFragmentCoveredCommand;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.CombinedFragmentEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart;
+
+public class InteractionCompartmentXYLayoutEditPolicy extends
+ XYLayoutEditPolicy {
+
+ @Override
+ public Command getCommand(Request request) {
+
+ if (request instanceof ChangeBoundsRequest) {
+ ChangeBoundsRequest cbr = (ChangeBoundsRequest) request;
+
+ CompoundCommand compoundCmd = new CompoundCommand(
+ "Resize of Interaction Compartment Elements");
+
+ for (Iterator<EditPart> it = cbr.getEditParts().iterator(); it
+ .hasNext();) {
+ EditPart ep = it.next();
+
+ if (ep instanceof CombinedFragmentEditPart) {
+ // CombinedFragment EditPart
+ CombinedFragmentEditPart cfragmentEP = (CombinedFragmentEditPart) ep;
+
+ // SetBounds command
+ compoundCmd.add(getSetBoundsCommand(cfragmentEP, cbr));
+
+ // Covered command
+ compoundCmd.add(new CombinedFragmentCoveredCommand(
+ cfragmentEP));
+
+ } else if (ep instanceof LifelineEditPart) {
+ // Lifeline EditPart
+ LifelineEditPart lifelineEP = (LifelineEditPart) ep;
+
+ int preserveY = PreserveAnchorsPositionCommand.PRESERVE_Y;
+ Dimension newSizeDelta = PreserveAnchorsPositionCommand
+ .getSizeDeltaToFitAnchors(lifelineEP, cbr
+ .getSizeDelta(), preserveY);
+
+ // SetBounds command modifying the sizeDelta
+ compoundCmd.add(getSetBoundsCommand(lifelineEP, cbr,
+ newSizeDelta));
+
+ // PreserveAnchors command
+ compoundCmd.add(new ICommandProxy(
+ new PreserveAnchorsPositionCommand(lifelineEP,
+ newSizeDelta, preserveY)));
+
+ // If a Lifeline is moved or resized then all the
+ // CombinedFragments must be updated
+ for (Object obj : lifelineEP.getParent().getChildren()) {
+ if (obj instanceof CombinedFragmentEditPart)
+ compoundCmd.add(new CombinedFragmentCoveredCommand(
+ (CombinedFragmentEditPart) obj));
+ }
+ } else if (ep instanceof BehaviorExecutionSpecificationEditPart) {
+ // Due to the fact that the Lifeline does not have a
+ // CompartmentEditPart
+ // changebounds requests are always sent to the
+ // InteractionCompartmentXYLayoutEditPolicy
+ // and need to be redirected to the
+ // LifelineXYLayoutEditPolicy by just executing
+ // the LifelineEditPart.getCommand(request).
+ BehaviorExecutionSpecificationEditPart besEP = (BehaviorExecutionSpecificationEditPart) ep;
+ if (besEP.getParent() instanceof LifelineEditPart) {
+ LifelineEditPart lifelineEP = (LifelineEditPart) besEP
+ .getParent();
+ compoundCmd.add(lifelineEP.getCommand(cbr));
+ }
+ }
+ }
+
+ if (compoundCmd.size() == 0)
+ return super.getCommand(request);
+ else
+ return compoundCmd;
+ }
+
+ if (request instanceof CreateViewAndElementRequest) {
+ CreateViewAndElementRequest cver = (CreateViewAndElementRequest) request;
+
+ CompoundCommand compoundCmd = new CompoundCommand(
+ "Creation of a CombinedFragment");
+ compoundCmd.add(super.getCommand(request));
+
+ if (cver.getViewAndElementDescriptor().getSemanticHint().compareTo(
+ Integer.toString(CombinedFragmentEditPart.VISUAL_ID)) == 0) {
+
+ compoundCmd.add(new CombinedFragmentCoveredCommand(getHost()
+ .getViewer(), cver.getViewAndElementDescriptor()));
+ }
+
+ if (compoundCmd.size() == 0)
+ return super.getCommand(request);
+ else
+ return compoundCmd;
+ }
+
+ return super.getCommand(request);
+ }
+
+ /**
+ * It obtains an appropriate SetBoundsCommand for a CombinedFragmentEditPart
+ *
+ * @param combinedFragmentEP
+ * The CombinedFragment that will be moved or resized
+ * @param cbr
+ * The ChangeBoundsRequest for moving or resizing the
+ * combinedFragmentEP
+ * @return The SetBoundsCommand
+ */
+ protected Command getSetBoundsCommand(
+ CombinedFragmentEditPart combinedFragmentEP, ChangeBoundsRequest cbr) {
+ // Modify request
+ List epList = cbr.getEditParts();
+ cbr.setEditParts(combinedFragmentEP);
+ // Obtain the command with the modified request
+ Command cmd = super.getCommand(cbr);
+ // Restore the request
+ cbr.setEditParts(epList);
+ // Return the SetBoundsCommand only for the CombinedFragmentEditPart
+ return cmd;
+ }
+
+ /**
+ * It obtains an appropriate SetBoundsCommand for a LifelineEditPart. The
+ * newSizeDelta provided should be equal o less than the one contained in
+ * the request. The goal of this newDelta is to preserve the anchors'
+ * positions after the resize. It is recommended to obtain this newSizeDelta
+ * by means of calling
+ * PreserveAnchorsPositionCommand.getSizeDeltaToFitAnchors() operation
+ *
+ * @param lifelineEP
+ * The Lifeline that will be moved or resized
+ * @param cbr
+ * The ChangeBoundsRequest for moving or resized the lifelineEP
+ * @param newSizeDelta
+ * The sizeDelta to used instead of the one contained in the
+ * request
+ * @return The SetBoundsCommand
+ */
+ protected Command getSetBoundsCommand(LifelineEditPart lifelineEP,
+ ChangeBoundsRequest cbr, Dimension newSizeDelta) {
+ // Modify request
+ List epList = cbr.getEditParts();
+ Dimension oldSizeDelta = cbr.getSizeDelta();
+ cbr.setEditParts(lifelineEP);
+ cbr.setSizeDelta(newSizeDelta);
+
+ // Obtain the command with the modified request
+ Command cmd = super.getCommand(cbr);
+
+ // Restore the request
+ cbr.setEditParts(epList);
+ cbr.setSizeDelta(oldSizeDelta);
+
+ // Return the SetBoundsCommand only for the Lifeline and with the
+ // sizeDelta modified in order to preserve the links' anchors positions
+ return cmd;
+ }
+
+ /**
+ * It obtains an appropriate SetBoundsCommand for a LifelineEditPart. In
+ * comparison with the the other getSetBoundsCommand, no newSizeDelta needs
+ * to be provided as it already calculates the appropriate newSizeDelta.
+ * PreserveAnchorsPositionCommand.getSizeDeltaToFitAnchors() operation
+ *
+ * @param lifelineEP
+ * The Lifeline that will be moved or resized
+ * @param cbr
+ * The ChangeBoundsRequest for moving or resized the lifelineEP
+ * @return The SetBoundsCommand
+ */
+ protected Command getSetBoundsCommand(LifelineEditPart lifelineEP,
+ ChangeBoundsRequest cbr) {
+ int preserveY = PreserveAnchorsPositionCommand.PRESERVE_Y;
+ Dimension newSizeDelta = PreserveAnchorsPositionCommand
+ .getSizeDeltaToFitAnchors(lifelineEP, cbr.getSizeDelta(),
+ preserveY);
+ return getSetBoundsCommand(lifelineEP, cbr, newSizeDelta);
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionDragDropEditPolicy.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionDragDropEditPolicy.java
new file mode 100644
index 00000000000..0cd54cda3d3
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/InteractionDragDropEditPolicy.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte, Generalitat
+ * de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram Implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+
+import org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart;
+
+public class InteractionDragDropEditPolicy extends DragDropEditPolicy {
+
+ @Override
+ protected Command getDropCommand(ChangeBoundsRequest request) {
+ for(Object ep : request.getEditParts())
+ {
+ if (ep instanceof BehaviorExecutionSpecificationEditPart)
+ {
+ return UnexecutableCommand.INSTANCE;
+ }
+ else if(ep instanceof LifelineEditPart)
+ {
+ return UnexecutableCommand.INSTANCE;
+ }
+ }
+
+ return super.getDropCommand(request);
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/LifelineXYLayoutEditPolicy.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/LifelineXYLayoutEditPolicy.java
new file mode 100644
index 00000000000..78a68278caf
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/LifelineXYLayoutEditPolicy.java
@@ -0,0 +1,519 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte, Generalitat
+ * de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram Implementation
+ * Francisco Javier Cano Muñoz - Expanded functionality
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetBoundsCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest;
+
+import org.eclipse.papyrus.diagram.common.commands.PreserveAnchorsPositionCommand;
+import org.eclipse.papyrus.diagram.sequence.edit.commands.MessageOrderCommand;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart;
+
+public class LifelineXYLayoutEditPolicy extends XYLayoutEditPolicy {
+
+ private final static int EXECUTION_INIT_WIDTH = 16;
+ private final static int EXECUTION_INIT_HEIGHT = 60;
+
+ @Override
+ public Command getCommand(Request request) {
+ if (request instanceof ChangeBoundsRequest) {
+ ChangeBoundsRequest cbr = (ChangeBoundsRequest) request;
+
+ // This policy is hosted in a LifelineEditPart
+ LifelineEditPart lifelineEP = (LifelineEditPart) getHost();
+
+ // Compound Command
+ CompoundCommand compoundCmd = new CompoundCommand();
+ compoundCmd.setLabel("Movement or Resize of a BES EditPart");
+ compoundCmd
+ .setDebugLabel("Debug: Movement or Resize of a BES EditPart");
+
+
+ // CASE 1: Resize of the own Lifeline
+ if (cbr.getEditParts() != null && cbr.getEditParts().contains(getHost()) && cbr.getSizeDelta().width != 0) {
+ // If the width increases or decreases, BES elements need to be moved
+ for (Object obj: getHost().getChildren()) {
+ if (obj instanceof BehaviorExecutionSpecificationEditPart) {
+ BehaviorExecutionSpecificationEditPart besEP = (BehaviorExecutionSpecificationEditPart) obj;
+
+ // Lifeline's figure where the child is drawn
+ Rectangle rDotLine = besEP.getFigure().getParent().getBounds()
+ .getCopy();
+
+ // The new bounds will be calculated from the current
+ // bounds
+ Rectangle newBounds = besEP.getFigure().getBounds().getCopy();
+
+ // Apply SizeDelta to the children
+ newBounds.x += Math
+ .round((float) cbr.getSizeDelta().width
+ / (float) 2);
+
+ // Convert to relative
+ newBounds.x -= rDotLine.x;
+ newBounds.y -= rDotLine.y;
+
+ SetBoundsCommand setBoundsCmd = new SetBoundsCommand(besEP.getEditingDomain(),
+ "Re-location of a BES due to a Lifeline movement", besEP, newBounds);
+ compoundCmd.add(new ICommandProxy(setBoundsCmd));
+ }
+ }
+ }
+
+ // CASE 2: Resize or movement of one child
+ // We are supposed to work with only one children at a time
+ else if (cbr.getEditParts() != null
+ && cbr.getEditParts().size() == 1
+ && lifelineEP.getBESList().contains(
+ cbr.getEditParts().get(0))) {
+
+ // The child's EditPart
+ BehaviorExecutionSpecificationEditPart besEP = (BehaviorExecutionSpecificationEditPart) cbr
+ .getEditParts().get(0);
+
+ // The SetBounds command need an adapter. Nothing to worry, the
+ // child itself implements the IAdaptable interface
+ IAdaptable adapter = besEP;
+
+ // Obtain the editing domain from the child's EditPart
+ TransactionalEditingDomain eDomain = besEP.getEditingDomain();
+
+ // Check if height is within the limits of the figure
+ Dimension newSizeDelta = adaptSizeDeltaToMaxHeight(besEP
+ .getFigure(), cbr.getSizeDelta());
+
+ // New delta to preserve the position of the last link's
+ // anchor
+ newSizeDelta = PreserveAnchorsPositionCommand
+ .getSizeDeltaToFitAnchors(besEP, newSizeDelta,
+ PreserveAnchorsPositionCommand.PRESERVE_Y);
+
+ // Get the new BES bounds.
+ Rectangle newBounds = getBESNewBounds(lifelineEP, besEP, cbr
+ .getMoveDelta(), newSizeDelta);
+
+ // Create and add the command to the compound command
+ SetBoundsCommand setBoundsCmd = new SetBoundsCommand(eDomain,
+ "Resize of a BES", adapter, newBounds);
+ compoundCmd.add(new ICommandProxy(setBoundsCmd));
+
+ // Apart from moving the selected BES, it's affixed BES should
+ // also be moved
+ Point realMoveDelta = getRealMoveDelta(besEP, newBounds);
+ if (realMoveDelta.y != 0) {
+ CompoundCommand auxCmd = getMoveAffixedBESCommand(besEP,
+ realMoveDelta);
+ if (auxCmd != null && auxCmd.size() > 0)
+ compoundCmd.add(auxCmd);
+ }
+
+ // Modify anchors to preserve their positions after
+ // the re-size
+ compoundCmd.add(new ICommandProxy(
+ new PreserveAnchorsPositionCommand(besEP, newSizeDelta,
+ PreserveAnchorsPositionCommand.PRESERVE_Y)));
+
+ // Ordering should be updated
+ // parent
+ compoundCmd.add(new MessageOrderCommand(besEP));
+ // affixed BES
+ CompoundCommand affixedBesOrderCmd = getAffixedBESMessageOrderCommand(besEP);
+ if (affixedBesOrderCmd.size() > 0)
+ compoundCmd.add(affixedBesOrderCmd);
+
+ }
+
+ // return the compoundCmd
+ if (compoundCmd.size() == 0)
+ return super.getCommand(request);
+ else
+ return compoundCmd;
+ }
+
+ if (request instanceof CreateViewAndElementRequest) {
+
+ CreateViewAndElementRequest cver = (CreateViewAndElementRequest) request;
+ LifelineEditPart lifelineEditPart = (LifelineEditPart) getHost();
+
+ TransactionalEditingDomain eDomain = lifelineEditPart
+ .getEditingDomain();
+ IAdaptable adapter = cver.getViewAndElementDescriptor();
+
+ // Translate the absolute location to relative
+ Point newLocation = cver.getLocation().getCopy();
+
+ if (newLocation.x < 0 || newLocation.y < 0) {
+ newLocation.x = newLocation.y = 0;
+ }
+
+ lifelineEditPart.getPrimaryShape().getFigureDotLineFigure()
+ .translateToRelative(newLocation);
+
+ int newHeight;
+ if (cver.getSize() != null)
+ newHeight = cver.getSize().height;
+ else
+ newHeight = EXECUTION_INIT_HEIGHT;
+
+ Rectangle newInitBounds = new Rectangle(
+ newLocation.x,
+ newLocation.y,
+ EXECUTION_INIT_WIDTH, newHeight);
+
+ Rectangle newBounds = getBESNewBounds(lifelineEditPart,
+ newInitBounds, Collections.EMPTY_LIST);
+
+ // to avoid creation of the new figure in a non visible area
+ newBounds.y = newBounds.y <= 0 ? 1 : newBounds.y;
+
+ SetBoundsCommand setBoundsCmd = new SetBoundsCommand(eDomain,
+ "Creation of an ExecutionBehaviourSpecification", adapter,
+ newBounds);
+
+ return new ICommandProxy(setBoundsCmd);
+ }
+
+ return super.getCommand(request);
+ }
+
+ /**
+ * Useful operation to know where a BES EditPart should be positioned within
+ * a Lifeline EditPart. It is needed both the moveDelta and the sizeDelta.
+ * With these two values, and the child EditParts of the Lifeline, the new
+ * position is worked out. The returned bounds are relative to the Lifeline
+ * figure so they can be used, directly, within a SetBoundsCommand.
+ *
+ * @param lifelineEP
+ * @param besEP
+ * @param moveDelta
+ * @param sizeDelta
+ * @return The new bounds of the besEP
+ */
+ public static Rectangle getBESNewBounds(LifelineEditPart lifelineEP,
+ BehaviorExecutionSpecificationEditPart besEP, Point moveDelta,
+ Dimension sizeDelta) {
+
+ // Current bounds of the BES
+ Rectangle newBounds = besEP.getPrimaryShape().getBounds().getCopy();
+
+ // According to the parameters, the new bounds would be the following
+ newBounds.x += moveDelta.x;
+ newBounds.y += moveDelta.y;
+ newBounds.height += sizeDelta.height;
+
+ // Not to check list
+ List<BehaviorExecutionSpecificationEditPart> notToCheckBesList = new BasicEList<BehaviorExecutionSpecificationEditPart>();
+ // Affixed BES List
+ notToCheckBesList.addAll(getAffixedBESEditParts(besEP));
+ // Add also current BES EditPart
+ notToCheckBesList.add(besEP);
+
+ return getBESNewBounds(lifelineEP, newBounds, notToCheckBesList);
+ }
+
+ /**
+ * Useful operation to know where the figure of a BES EditPart should be
+ * positioned within a Lifeline EditPart. The notToCheckList is needed to
+ * avoid checking those BES EditParts. The returned bounds are relative to
+ * the Lifeline figure so they can be used, directly, within a
+ * SetBoundsCommand.
+ *
+ * @param lifelineEP
+ * @param newInitBounds
+ * The new initial bounds
+ * @param notToCheckBesList
+ * The BES EditPart's List that won't be checked
+ * @return The new bounds of the besEP figure
+ */
+ public static Rectangle getBESNewBounds(LifelineEditPart lifelineEP,
+ Rectangle newInitBounds,
+ List<BehaviorExecutionSpecificationEditPart> notToCheckBesList) {
+ // Lifeline's figure where the child is drawn
+ Rectangle rDotLine = lifelineEP.getPrimaryShape()
+ .getFigureDotLineFigure().getBounds().getCopy();
+
+ // To store the newBounds
+ Rectangle newBounds = newInitBounds.getCopy();
+
+ // Check first if there is contact with any of the existing BES
+ Rectangle childBounds = null;
+
+ List<BehaviorExecutionSpecificationEditPart> toCheckBesList = lifelineEP
+ .getBESList();
+ toCheckBesList.removeAll(notToCheckBesList);
+
+ // Iterate through the toCheckBesList
+ for (BehaviorExecutionSpecificationEditPart auxBesEP : toCheckBesList) {
+ Rectangle auxBounds = auxBesEP.getPrimaryShape().getBounds()
+ .getCopy();
+
+ // Check if there is any contact
+ if (newInitBounds.touches(auxBounds)) {
+ childBounds = auxBounds;
+ break; // break the for
+ }
+ }
+
+ // Case there wasn't any contact
+ if (childBounds == null) {
+ // Loop through the BES list and try to find the most to the right
+ // BES within the besEP Y-axis bounds
+ Rectangle mostToRightBesBounds = null;
+ for (BehaviorExecutionSpecificationEditPart auxBesEP : toCheckBesList) {
+ Rectangle auxBesBounds = auxBesEP.getFigure().getBounds();
+ Rectangle auxBounds = newInitBounds.getCopy();
+ auxBounds.x = auxBesBounds.x;
+ if (auxBesBounds.touches(auxBounds)) {
+ if (mostToRightBesBounds == null)
+ mostToRightBesBounds = auxBesBounds;
+ else if (auxBesBounds.x > mostToRightBesBounds.x)
+ mostToRightBesBounds = auxBesBounds;
+ }
+ }
+
+ // If there was no luck, set it's position to the center
+ if (mostToRightBesBounds == null) {
+ newBounds.x = rDotLine.x + rDotLine.width / 2
+ - EXECUTION_INIT_WIDTH / 2;
+ } else {
+ newBounds.x = mostToRightBesBounds.x + EXECUTION_INIT_WIDTH / 2
+ + 1;
+ }
+ } else
+ newBounds.x = childBounds.x + EXECUTION_INIT_WIDTH / 2 + 1;
+ // Note: The last + 1 is just an extra delta
+
+ // to avoid none visible positioning
+ newBounds.y = newBounds.y <= 0 ? 1 : newBounds.y;
+
+ // Change to relative bounds of the LifelineEP
+ newBounds.x -= rDotLine.x;
+ newBounds.y -= rDotLine.y;
+
+ return newBounds;
+ }
+
+ /**
+ * Used to modify the sizeDelta if the given value is higher/lower than the
+ * highest/lowest allowed values of the figure.
+ *
+ * @param figure
+ * @param sizeDelta
+ * @return a corrected sizeDelta
+ */
+ public static Dimension adaptSizeDeltaToMaxHeight(IFigure figure,
+ Dimension sizeDelta) {
+ Dimension newSizeDelta = new Dimension(sizeDelta);
+
+ int y = figure.getBounds().height + sizeDelta.height;
+
+ if (y > figure.getMaximumSize().height) {
+ newSizeDelta.height = figure.getMaximumSize().height
+ - figure.getBounds().height;
+ } else if (y < figure.getMinimumSize().height) {
+ newSizeDelta.height = figure.getMinimumSize().height
+ - figure.getBounds().height;
+ }
+
+ return newSizeDelta;
+ }
+
+ /**
+ * Returns all the BES EditParts that are affixed to the right side of the
+ * given BES EditPart. Not only the ones directly affixed to the besEP are
+ * returned, but the ones that are indirectly affixed as well (this is done
+ * recursively)
+ *
+ * @param besEP
+ * @return the list of affixed BES. If there is no affixed BES, then an
+ * empty list will be returned
+ */
+ public static List<BehaviorExecutionSpecificationEditPart> getAffixedBESEditParts(
+ BehaviorExecutionSpecificationEditPart besEP) {
+ List<BehaviorExecutionSpecificationEditPart> notToCheckBesList = new ArrayList<BehaviorExecutionSpecificationEditPart>();
+ return getAffixedBESEditParts(besEP, notToCheckBesList);
+
+ }
+
+ /**
+ * Operation used by the above operation. It's main goal is to obtain,
+ * recursively, all the affixed BES. In order to do so, it is needed a BES
+ * EditPart and the notToCheckList.
+ *
+ * @param besEP
+ * @param notToCheckBesList
+ * @return the list of affixed BES. If there is no affixed BES, then an
+ * empty list will be returned
+ */
+ private static List<BehaviorExecutionSpecificationEditPart> getAffixedBESEditParts(
+ BehaviorExecutionSpecificationEditPart besEP,
+ List<BehaviorExecutionSpecificationEditPart> notToCheckBesList) {
+ // Add itself to the notToCheck list
+ List<BehaviorExecutionSpecificationEditPart> newNotToCheckBesList = new ArrayList<BehaviorExecutionSpecificationEditPart>(
+ notToCheckBesList);
+ newNotToCheckBesList.add(besEP);
+
+ // LifelineEditPart where the BES EditPart is contained
+ LifelineEditPart lifelineEP = (LifelineEditPart) besEP.getParent();
+
+ // BES EditParts list
+ List<BehaviorExecutionSpecificationEditPart> besList = lifelineEP
+ .getBESList();
+ besList.remove(newNotToCheckBesList);
+
+ // List to store the Affixed BES
+ ArrayList<BehaviorExecutionSpecificationEditPart> affixedBesList = new ArrayList<BehaviorExecutionSpecificationEditPart>();
+
+ // Loop through the BES list
+ for (BehaviorExecutionSpecificationEditPart childBesEP : besList) {
+ if (isAffixedToRight(besEP, childBesEP)) {
+ affixedBesList.add(childBesEP);
+ // Add also it's affixed BES
+ affixedBesList.addAll(getAffixedBESEditParts(childBesEP,
+ newNotToCheckBesList));
+ }
+ }
+
+ // To the BES list
+ return affixedBesList;
+ }
+
+ /**
+ * Checks whether the right EditPart is affixed to the left EditPart. In
+ * order to do so, the operation checks if the right figure is really on the
+ * right and, if so, it just returns true if figures touch each other.
+ *
+ * @param leftEP
+ * The left AbstractGraphicalEditPart
+ * @param rightEP
+ * The right AbstractGraphicalEditPart
+ * @return true if the rectangles of both figures touch and the right figure
+ * is really on the right. False otherwise
+ */
+ public static boolean isAffixedToRight(AbstractGraphicalEditPart leftEP,
+ AbstractGraphicalEditPart rightEP) {
+ Rectangle leftFig = leftEP.getFigure().getBounds();
+ Rectangle rightFig = rightEP.getFigure().getBounds();
+ if (leftFig.touches(rightFig) && leftFig.x < rightFig.x)
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * If a BES EditPart is going to be moved according to a moveDelta, this
+ * operation returns a compoundCommand that also moves the affixed BES
+ * according to that delta.
+ *
+ * @param besEP
+ * The BES EditPart that is going to be moved
+ * @param moveDelta
+ * The moveDelta of the previous EditPart
+ * @return
+ */
+ public static CompoundCommand getMoveAffixedBESCommand(
+ BehaviorExecutionSpecificationEditPart besEP, Point moveDelta) {
+ CompoundCommand compoundCmd = new CompoundCommand();
+ if (moveDelta.y != 0) {
+ for (BehaviorExecutionSpecificationEditPart childBesEP : getAffixedBESEditParts(besEP)) {
+ // Get Relative Bounds
+ Rectangle childBounds = getRelativeBounds(childBesEP);
+ // Apply delta
+ childBounds.y += moveDelta.y;
+ childBounds.x += moveDelta.x;
+ // Create the child's SetBoundsCommand
+ SetBoundsCommand childSetBoundsCmd = new SetBoundsCommand(besEP
+ .getEditingDomain(), "Movement of affixed BES",
+ childBesEP, childBounds);
+ compoundCmd.add(new ICommandProxy(childSetBoundsCmd));
+ // Move it's children as well
+ if (getAffixedBESEditParts(childBesEP).size() > 0)
+ compoundCmd.add(getMoveAffixedBESCommand(childBesEP,
+ moveDelta));
+ }
+ }
+ if (compoundCmd.size() == 0)
+ return null;
+ else
+ return compoundCmd;
+ }
+
+ /**
+ * Given an AbstractGraphialEditPart and the new relative bounds that the
+ * EditPart will have, it returns the real delta applied to the movement
+ *
+ * @param ep
+ * The EditPart that will be moved
+ * @param newRelativeBounds
+ * The new position of the mentioned EditPart
+ * @return The real MoveDelta applied
+ */
+ public static Point getRealMoveDelta(AbstractGraphicalEditPart ep,
+ Rectangle newRelativeBounds) {
+ Rectangle oldRelativeBounds = getRelativeBounds(ep);
+ Point realMoveDelta = new Point();
+ realMoveDelta.x = newRelativeBounds.x - oldRelativeBounds.x;
+ realMoveDelta.y = newRelativeBounds.y - oldRelativeBounds.y;
+ return realMoveDelta;
+ }
+
+ /**
+ * It returns the relative bounds of an AbstractGraphicalEditPart.
+ *
+ * @param ep
+ * The EditPart
+ * @return The relative bounds regarding it's parent figure
+ */
+ public static Rectangle getRelativeBounds(AbstractGraphicalEditPart ep) {
+ IFigure parentFigure = ep.getFigure().getParent();
+ IFigure epFigure = ep.getFigure();
+ Rectangle relBounds = epFigure.getBounds().getCopy();
+ relBounds.x -= parentFigure.getBounds().x;
+ relBounds.y -= parentFigure.getBounds().y;
+ return relBounds;
+ }
+
+ /**
+ * It returns a compound command to order the messages of it's affixed BES
+ *
+ * @param besEP
+ * BES whose affixed BES will be re-ordered
+ * @return The CompoundCommand to order the Messages of the affixed BES
+ */
+ public CompoundCommand getAffixedBESMessageOrderCommand(
+ BehaviorExecutionSpecificationEditPart besEP) {
+ CompoundCommand cCommand = new CompoundCommand();
+ for (BehaviorExecutionSpecificationEditPart affixedBesEP : getAffixedBESEditParts(besEP)) {
+ cCommand.add(new MessageOrderCommand(affixedBesEP));
+ }
+ return cCommand;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/MessageDestroySemanticEditPolicy.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/MessageDestroySemanticEditPolicy.java
new file mode 100644
index 00000000000..b46f2e4c9bb
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/MessageDestroySemanticEditPolicy.java
@@ -0,0 +1,117 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.uml2.uml.Event;
+import org.eclipse.uml2.uml.GeneralOrdering;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+
+import org.eclipse.papyrus.diagram.sequence.edit.commands.MessageOrderCommand;
+
+public class MessageDestroySemanticEditPolicy extends UMLBaseItemSemanticEditPolicy {
+ @Override
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ /*
+ * Destroy all the elements that are created when a message is created the first time:
+ * 1.- The Send Event
+ * 2.- The Receive Event
+ * 3.- The 2 Message Occurrence Specifications
+ * 4.- The message
+ *
+ * To accomplish this, will build a compound command
+ */
+
+ CompoundCommand compoundCmd = new CompoundCommand();
+
+ if (req.getElementToDestroy() instanceof Message) {
+ Message msg = (Message) req.getElementToDestroy();
+
+ // Obtain the elements to destroy
+ MessageOccurrenceSpecification msgSend = null;
+ MessageOccurrenceSpecification msgRecieve = null;
+ Event sendEvent = null;
+ Event receiveEvent = null;
+
+ if (msg.getSendEvent() instanceof MessageOccurrenceSpecification)
+ msgSend = (MessageOccurrenceSpecification) msg.getSendEvent();
+
+ if (msg.getReceiveEvent() instanceof MessageOccurrenceSpecification)
+ msgRecieve = (MessageOccurrenceSpecification) msg
+ .getReceiveEvent();
+
+ if (msgSend != null)
+ sendEvent = msgSend.getEvent();
+ if (msgRecieve != null)
+ receiveEvent = msgRecieve.getEvent();
+
+ // Update ordering
+ compoundCmd.add(new MessageOrderCommand(req));
+
+ // Create and compound the Destroy Element Commands
+ if (sendEvent != null) {
+ DestroyElementRequest reqSendEvent = new DestroyElementRequest(req
+ .getEditingDomain(), sendEvent, false);
+ compoundCmd
+ .add(getGEFWrapper(new DestroyElementCommand(reqSendEvent)));
+ }
+
+ if (receiveEvent != null) {
+ DestroyElementRequest reqReceiveEvent = new DestroyElementRequest(req
+ .getEditingDomain(), receiveEvent, false);
+ compoundCmd
+ .add(getGEFWrapper(new DestroyElementCommand(reqReceiveEvent)));
+ }
+
+ if (msgSend != null) {
+ // Destroy first its general ordering
+ for (Iterator<GeneralOrdering> i = msgSend.getGeneralOrderings().iterator(); i.hasNext();) {
+ DestroyElementRequest reqGenOrd = new DestroyElementRequest(req.getEditingDomain(), i.next(), false);
+ compoundCmd.add(getGEFWrapper(new DestroyElementCommand(
+ reqGenOrd)));
+ }
+
+ // Destroy the MessageOccurrenceSpecification
+ DestroyElementRequest reqMsgSend = new DestroyElementRequest(
+ req.getEditingDomain(), msgSend, false);
+ compoundCmd.add(getGEFWrapper(new DestroyElementCommand(
+ reqMsgSend)));
+ }
+
+ if (msgRecieve != null) {
+ // Destroy first its general ordering
+ for (Iterator<GeneralOrdering> i = msgRecieve.getGeneralOrderings().iterator(); i.hasNext();) {
+ DestroyElementRequest reqGenOrd = new DestroyElementRequest(req.getEditingDomain(), i.next(), false);
+ compoundCmd.add(getGEFWrapper(new DestroyElementCommand(
+ reqGenOrd)));
+ }
+
+ // Destroy the MessageOccurrenceSpecification
+ DestroyElementRequest reqMsgReceive = new DestroyElementRequest(
+ req.getEditingDomain(), msgRecieve, false);
+ compoundCmd.add(getGEFWrapper(new DestroyElementCommand(
+ reqMsgReceive)));
+ }
+
+ }
+
+ compoundCmd.add(getGEFWrapper(new DestroyElementCommand(req)));
+
+ return compoundCmd;
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDeleteOnlyViewComponentEditPolicy.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDeleteOnlyViewComponentEditPolicy.java
new file mode 100644
index 00000000000..52b602d8e10
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDeleteOnlyViewComponentEditPolicy.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana .
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+
+import org.eclipse.papyrus.diagram.common.editpolicies.DeleteOnlyViewComponentEditPolicy;
+
+public class SequenceDeleteOnlyViewComponentEditPolicy extends
+ DeleteOnlyViewComponentEditPolicy {
+
+ @Override
+ protected Command getDeleteCommand(GroupRequest request) {
+ // The following elements should not allow the deletion of their views
+ IGraphicalEditPart ep = getGraphicalHost();
+
+ // Message
+ if (ep.resolveSemanticElement() instanceof Message)
+ return UnexecutableCommand.INSTANCE;
+
+ // Lifeline
+ if (ep.resolveSemanticElement() instanceof Lifeline)
+ return UnexecutableCommand.INSTANCE;
+
+ // BES
+ if (ep.resolveSemanticElement() instanceof BehaviorExecutionSpecification)
+ return UnexecutableCommand.INSTANCE;
+
+ // For the rest, return the parent command
+ return super.getDeleteCommand(request);
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDiagramDragAndDropEditPolicy.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDiagramDragAndDropEditPolicy.java
new file mode 100644
index 00000000000..42e37fdedde
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/edit/policies/SequenceDiagramDragAndDropEditPolicy.java
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Francisco Javier Cano Muñoz - Initial API implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.policies;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.commands.UnexecutableCommand;
+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.requests.DropObjectsRequest;
+import org.eclipse.uml2.uml.Interaction;
+
+import org.eclipse.papyrus.diagram.common.editpolicies.DiagramDragDropEditPolicy;
+import org.eclipse.papyrus.diagram.common.editpolicies.ViewResolver;
+import org.eclipse.papyrus.diagram.sequence.edit.commands.InitializeInteractionViewCommand;
+
+/**
+ * Drag and Drop edit policy for the sequence <Diagram>. Will perform the
+ * drag&drop of an <Interaction> correctly, creating views according to the
+ * general order of the <Message>s in the <Interaction>.
+ *
+ * @author fjcano
+ *
+ */
+public class SequenceDiagramDragAndDropEditPolicy extends
+ DiagramDragDropEditPolicy {
+
+ /**
+ * Default constructor.
+ *
+ * @param resolver
+ */
+ public SequenceDiagramDragAndDropEditPolicy(ViewResolver resolver) {
+ super(resolver);
+ }
+
+ @Override
+ public Command getDropObjectsCommand(DropObjectsRequest dropRequest) {
+ // - get Interaction from DropRequest
+ List<EObject> nodeObjects = findNodesInDrop(dropRequest);
+
+ // We are only interested in Interactions
+ List<Interaction> interactionObjects = new BasicEList<Interaction>();
+ for (EObject obj : nodeObjects) {
+ if (obj instanceof Interaction)
+ interactionObjects.add((Interaction) obj);
+ }
+ if (interactionObjects.size() == 0) {
+ return UnexecutableCommand.INSTANCE;
+ }
+ // - build and return command
+ IGraphicalEditPart parentEditPart = getHost() instanceof IGraphicalEditPart ? (IGraphicalEditPart) getHost()
+ : null;
+ if (parentEditPart != null) {
+ TransactionalEditingDomain domain = parentEditPart
+ .getEditingDomain();
+ if (domain != null) {
+ CompoundCommand cCommand = new CompoundCommand();
+ for (Interaction interaction : interactionObjects) {
+ InitializeInteractionViewCommand command = new InitializeInteractionViewCommand(
+ domain, "Initialize Interaction view", null);
+ command.setParentEditPart(parentEditPart);
+ command.setInteraction(interaction);
+ command.setOffset(dropRequest.getLocation());
+ cCommand.add(new ICommandProxy(command));
+ }
+ return cCommand;
+ }
+ }
+ return UnexecutableCommand.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/DiagramInitializationUtil.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/DiagramInitializationUtil.java
new file mode 100644
index 00000000000..7b3743a61a0
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/DiagramInitializationUtil.java
@@ -0,0 +1,293 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Initial API implementation
+ * Franciso Javier Cano Muñoz (Prodevelop) - Improvements in the first msg search
+ *
+ ******************************************************************************/
+
+package org.eclipse.papyrus.diagram.sequence.util;
+
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import org.eclipse.gmf.runtime.common.core.util.HashUtil;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+import org.eclipse.uml2.uml.OccurrenceSpecification;
+
+public class DiagramInitializationUtil {
+
+ public static List<List<Message>> getGlobalMsgOrdering(
+ Interaction interaction) {
+ HashMap<Lifeline, List<Message>> lifelinesOrderedList = new HashMap<Lifeline, List<Message>>();
+
+ // For each lifeline, obtains it's ordered messages
+ for (Lifeline lifeline : interaction.getLifelines()) {
+ lifelinesOrderedList.put(lifeline,
+ getLifelineOrderdedMsgs(lifeline));
+ }
+
+ // Merge the information of all the lifelines in a global message
+ // ordered list
+ List<List<Message>> globalOrderedList = mergeOrderedMsgsLists(lifelinesOrderedList);
+
+ // Return the list
+ return globalOrderedList;
+ }
+
+ public static Message getLifelineFirstMessage(Lifeline lifeline) {
+ // Obtain the Interaction in which the Lifeline is contained
+ Interaction interaction = lifeline.getInteraction();
+
+ // If there is no interaction, we cannot continue
+ if (interaction == null)
+ return null;
+
+ // Loop through the list of messages
+ for (Message msg : interaction.getMessages()) {
+
+ MessageOccurrenceSpecification sourceEnd = MessageCommonUtil
+ .getMessageSrcMOS(msg);
+ MessageOccurrenceSpecification targetEnd = MessageCommonUtil
+ .getMessageDstMOS(msg);
+
+ // This should not happen but just in case
+ if (sourceEnd == null || targetEnd == null)
+ continue;
+
+ // This should not happen either
+ if (sourceEnd.getGeneralOrderings().size() == 0
+ || targetEnd.getGeneralOrderings().size() == 0)
+ continue;
+
+ // Check if the message belongs to this Lifeline
+ if (MessageCommonUtil.getMessageSrcLifeline(msg) == lifeline) {
+ // Check if it is the first message
+ if (sourceEnd.getGeneralOrderings().get(0).getBefore() == sourceEnd)
+ return msg;
+ }
+ if (MessageCommonUtil.getMessageDstLifeline(msg) == lifeline) {
+ // Check if it is the first message
+ if (targetEnd.getGeneralOrderings().get(0).getBefore() == targetEnd)
+ return msg;
+ }
+ }
+
+ // If we get here it means the lifeline has no messages
+ return null;
+ }
+
+ public static List<Message> getLifelineOrderdedMsgs(Lifeline lifeline) {
+ // Get it's first message
+ Message msg = getLifelineFirstMessage(lifeline);
+
+ // Create the empty list
+ ArrayList<Message> orderedList = new ArrayList<Message>();
+
+ // If no message found then nothing is left to do
+ if (msg == null)
+ return orderedList;
+
+ // Add the first element
+ orderedList.add(msg);
+
+ // Get the initial OS
+ OccurrenceSpecification auxOS;
+ if (MessageCommonUtil.getMessageSrcLifeline(msg) == lifeline) {
+ auxOS = MessageCommonUtil.getMessageSrcMOS(msg);
+ } else {
+ auxOS = MessageCommonUtil.getMessageDstMOS(msg);
+ }
+ // Add the rest of elements
+ while (!isLastOS(auxOS)) {
+ auxOS = auxOS.getGeneralOrderings().get(0).getAfter();
+ if (auxOS instanceof MessageOccurrenceSpecification
+ && ((MessageOccurrenceSpecification) auxOS).getMessage() != null) {
+ orderedList.add(((MessageOccurrenceSpecification) auxOS)
+ .getMessage());
+ }
+ }
+
+ // Return the ordered list
+ return orderedList;
+ }
+
+ public static List<List<Message>> mergeOrderedMsgsLists(
+ HashMap<Lifeline, List<Message>> orderedLists) {
+
+ ArrayList<List<Message>> globalList = new ArrayList<List<Message>>();
+
+ // We need one or more lists to order
+ if (orderedLists.size() >= 1) {
+ // VisitedLists
+ List<List<Message>> visitedLists = new ArrayList<List<Message>>();
+ // HashMap
+ HashMap<Message, Integer> hashMap = new HashMap<Message, Integer>();
+
+ for (List<Message> partialList : orderedLists.values()) {
+ // Case the hashMap is empty
+ if (hashMap.size() == 0) {
+ for (int i = 0; i < partialList.size(); i++) {
+ hashMap.put(partialList.get(i), i);
+ }
+ visitedLists.add(partialList);
+ }
+ // Otherwise
+ else {
+ int offset = 0;
+ Integer existingPos;
+ for (int i = 0; i < partialList.size(); i++) {
+ Message msg = partialList.get(i);
+ existingPos = hashMap.get(msg);
+ // If not found add it
+ if (existingPos == null) {
+ // Add it to it's position
+ hashMap.put(msg, i + offset);
+ }
+ // Found
+ else {
+ if (existingPos > (i + offset)) {
+ // The global list rules
+ offset = existingPos - i;
+ } else if (existingPos < (i + offset)) {
+ // The partial list rules
+
+ // Current message (and the ones that go after
+ // him) need to be moved to the new position
+ List<Message> followersList = getFollowersList(
+ msg, visitedLists);
+
+ // Note: The followers list also includes msg
+
+ int shift = (i + offset) - existingPos;
+ for (Message follower : followersList) {
+ // Update it's position
+ hashMap.put(follower, hashMap.get(follower)
+ + shift);
+ }
+
+ } else {
+ // If existingPos == (i + offset), then do
+ // nothing
+ }
+ }
+ } // end for (partialList elements)
+ visitedLists.add(partialList);
+ }
+ } // end for (orderedLists elements)
+
+ // If the hashMap is not empty, add the ordered elements to the
+ // globalList
+ if (!hashMap.isEmpty()) {
+ // Obtain the list of values ordered and without repeated elements
+ Set<Integer> valuesSet = new HashSet<Integer>();
+ valuesSet.addAll(hashMap.values());
+ Object[] valuesSortedArray = valuesSet.toArray();
+ Arrays.sort(valuesSortedArray);
+
+ // Initialize the globalList with the maximum size possible
+ for (int i = 0; i < valuesSortedArray.length; i++)
+ globalList.add(new ArrayList<Message>());
+
+
+ // Add the ordered elements
+ for (Entry<Message, Integer> entry : hashMap.entrySet()) {
+ int pos = Arrays.binarySearch(valuesSortedArray, entry.getValue());
+ globalList.get(pos).add(entry.getKey());
+ }
+ }
+ }
+
+ // Return the list
+ return globalList;
+ }
+
+ public static List<Message> getFollowersList(Message msg,
+ List<List<Message>> visitedLists) {
+ List<Message> followersList = new ArrayList<Message>();
+ HashMap<List<Message>, List<Message>> followersFoundPerList = new HashMap<List<Message>, List<Message>>();
+ Set<Message> addSet = new HashSet<Message>();
+ Set<Message> partialAddSet = new HashSet<Message>();
+
+ // Foreach visited list obtain it's followersList
+ for (List<Message> visitedList : visitedLists) {
+ followersFoundPerList.put(visitedList, followersList(msg,
+ visitedList));
+ }
+
+ // Build a set with the all followersLists
+ for (Entry<List<Message>, List<Message>> entry : followersFoundPerList
+ .entrySet()) {
+ addSet.addAll(entry.getValue());
+ }
+
+ boolean modifiedFlag;
+ do {
+ modifiedFlag = false;
+
+ // Check if any of the visited lists has an empty followersList
+ for (Entry<List<Message>, List<Message>> entry : followersFoundPerList
+ .entrySet()) {
+ // If empty, obtain again it's list with the addSet
+ if (entry.getValue().isEmpty()) {
+ // Loop through the addSet
+ for (Message auxMsg : addSet) {
+ partialAddSet.addAll(followersList(auxMsg, entry
+ .getKey()));
+ }
+ if (!partialAddSet.isEmpty()) {
+ entry.getValue().addAll(partialAddSet);
+ addSet.addAll(partialAddSet);
+ partialAddSet.clear();
+ modifiedFlag = true;
+ }
+ }
+ }
+ } while (modifiedFlag);
+
+ // Add the msg
+ addSet.add(msg);
+
+ // Add the set to the list
+ followersList.addAll(addSet);
+
+ return followersList;
+ }
+
+ public static List<Message> followersList(Message msg, List<Message> msgList) {
+ if (msgList.contains(msg)) {
+ List<Message> returnList = new ArrayList<Message>();
+ returnList.addAll(msgList.subList(msgList.indexOf(msg) + 1, msgList
+ .size()));
+ return returnList;
+ } else
+ return new ArrayList<Message>();
+ }
+
+ public static boolean isLastOS(OccurrenceSpecification mos) {
+ // If there is no ordering, we will consider as the last MOS
+ if (mos.getGeneralOrderings().size() == 0)
+ return true;
+
+ // If the After attribute matches with itself, then it is the last MOS
+ if (mos.getGeneralOrderings().get(0).getAfter() == mos)
+ return true;
+ else
+ return false;
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/InteractionViewInitializationUtil.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/InteractionViewInitializationUtil.java
new file mode 100644
index 00000000000..15b5a497a30
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/InteractionViewInitializationUtil.java
@@ -0,0 +1,1110 @@
+/***************************************************************************
+ * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Francisco Javier Cano Muñoz - Initial API implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.util;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+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.requests.CreateConnectionViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewRequest.ConnectionViewDescriptor;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+import org.eclipse.uml2.uml.MessageSort;
+import org.eclipse.uml2.uml.Package;
+
+import org.eclipse.papyrus.diagram.common.commands.AddEObjectReferencesToDiagram;
+import org.eclipse.papyrus.diagram.common.command.wrappers.GEFtoEMFCommandWrapper;
+import org.eclipse.papyrus.diagram.common.commands.GMFToEMFCommand;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Interaction2EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.InteractionEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message2EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message3EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message4EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message5EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message6EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.MessageEditPart;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.part.UMLLinkDescriptor;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+public class InteractionViewInitializationUtil {
+
+ /**
+ * Helper classes for location and size data
+ */
+ public class InitDataFigure {
+ EObject eObject = null;
+ List<InitDataFigure> children = null;
+ }
+
+ /**
+ * A <Node> size and location data.
+ *
+ * @author fjcano
+ *
+ */
+ public class NodeInitDataFigure extends InitDataFigure {
+ Point size = null;
+ Point location = null;
+ }
+
+ /**
+ * An <Edge> start and end data.
+ *
+ * @author fjcano
+ *
+ */
+ public class EdgeInitDataFigure extends InitDataFigure {
+ Point start = null;
+ Point end = null;
+ }
+
+ /*
+ *
+ */
+
+ // //** Constants and fixed values **////
+ protected static final int Interaction_Minimun_Size_X = 400;
+ protected static final int Interaction_Minimun_Size_Y = 250;
+ protected static final int Interaction_Offset_X = 40;
+ protected static final int Interaction_Offset_Y = 40;
+ protected static final int Interaction_Title_Size = 20;
+
+ protected static final int Lifeline_Minimun_Size_X = 100;
+ protected static final int Lifeline_Minimun_Size_Y = 100;
+ protected static final int Lifeline_Offset_X = 20;
+ protected static final int Lifeline_Title_Size = 20;
+
+ protected static final int BES_Minimun_Size_X = 16;
+ protected static final int BES_Minimun_Size_Y = 60;
+ protected static final int BES_Offset_X = 20;
+
+ protected static final int Message_Slot_Size_Y = 40;
+ protected static final int Message_BES_Offset = 10;
+
+ // //** General, auxiliary functions and methods for initializing an
+ // interaction with Lifelines, Behaviour Execution Specifications and
+ // Messages **////
+
+ private static final InteractionViewInitializationUtil INSTANCE = new InteractionViewInitializationUtil();
+
+ protected static int getTotalMessagesSize(
+ List<List<Message>> orderedMessages) {
+ if (orderedMessages == null) {
+ return 0;
+ }
+ return orderedMessages.size();
+ }
+
+ /**
+ * Main size initialization method.
+ *
+ * @param interaction
+ * @param orderedMessages
+ * @return
+ */
+ public static NodeInitDataFigure calculateInteractionInitData(
+ Interaction interaction, List<List<Message>> orderedMessages,
+ Point offset) {
+ // Interaction initialization data.
+ NodeInitDataFigure interactionInitDataFigure = INSTANCE.new NodeInitDataFigure();
+ // set Interaction
+ interactionInitDataFigure.eObject = interaction;
+ // prepare children's list
+ interactionInitDataFigure.children = new ArrayList<InitDataFigure>();
+ // set Interaction real size
+ Point size = new Point(0, 0);
+ size.x = calculateInterationWidth(interaction, orderedMessages);
+ size.y = calculateInteractionHeight(interaction, orderedMessages);
+ interactionInitDataFigure.size = size;
+ interactionInitDataFigure.location = new Point(0, 0);
+ // add Lifelines initialization data.
+ addLifelinesToInteraction(interactionInitDataFigure, orderedMessages);
+ // add Messages and BES
+ addMessagesAndBESToInteraction(interactionInitDataFigure,
+ orderedMessages);
+ addOffsetToDataFigure(interactionInitDataFigure, offset);
+ return interactionInitDataFigure;
+ }
+
+ protected static void addOffsetToDataFigure(InitDataFigure dataFigure,
+ Point offset) {
+ if (dataFigure == null || offset == null
+ || (offset.x == 0 && offset.y == 0)) {
+ return;
+ }
+ if (dataFigure instanceof NodeInitDataFigure) {
+ NodeInitDataFigure nodeData = (NodeInitDataFigure) dataFigure;
+ nodeData.location.x += offset.x;
+ nodeData.location.y += offset.y;
+ }
+ if (dataFigure instanceof EdgeInitDataFigure) {
+ EdgeInitDataFigure edgeData = (EdgeInitDataFigure) dataFigure;
+ edgeData.start.x += offset.x;
+ edgeData.start.y += offset.y;
+ edgeData.end.x += offset.x;
+ edgeData.end.y += offset.y;
+ }
+ if (dataFigure.children != null) {
+ for (InitDataFigure childFigure : dataFigure.children) {
+ addOffsetToDataFigure(childFigure, offset);
+ }
+ }
+ }
+
+ /**
+ * Calculates <Interaction> height.
+ *
+ * @param interaction
+ * @param orderedMessages
+ * @return
+ */
+ protected static int calculateInteractionHeight(Interaction interaction,
+ List<List<Message>> orderedMessages) {
+ int height = 0;
+ height = calculateLifelineHeight(interaction, orderedMessages);
+ height += Interaction_Offset_Y * 2;
+ height += Interaction_Title_Size;
+ return height >= Interaction_Minimun_Size_Y ? height
+ : Interaction_Minimun_Size_Y;
+ }
+
+ /**
+ * Calculates <Interaction> width.
+ *
+ * @param interaction
+ * @param orderedMessages
+ * @return
+ */
+ protected static int calculateInterationWidth(Interaction interaction,
+ List<List<Message>> orderedMessages) {
+ int width = 0;
+ if (interaction.getLifelines() != null
+ && interaction.getLifelines().size() > 0) {
+ int nLifelines = interaction.getLifelines().size();
+ width += nLifelines
+ * calculateLifelineWidth(interaction, orderedMessages);
+ width += (nLifelines - 1) * Lifeline_Offset_X;
+ width += Interaction_Offset_X * 2;
+ }
+ return width >= Interaction_Minimun_Size_X ? width
+ : Interaction_Minimun_Size_X;
+ }
+
+ /**
+ * Calculates <Lifeline> height.
+ *
+ * @param interaction
+ * @param orderedMessages
+ * @return
+ */
+ protected static int calculateLifelineHeight(Interaction interaction,
+ List<List<Message>> orderedMessages) {
+ int height = 0;
+ height = getTotalMessagesSize(orderedMessages);
+ height *= Message_Slot_Size_Y;
+ height += Message_BES_Offset * 2;
+ height += Lifeline_Title_Size;
+ return height >= Lifeline_Minimun_Size_Y ? height
+ : Lifeline_Minimun_Size_Y;
+ }
+
+ /**
+ * Calculates <Lifeline> width.
+ *
+ * @param interaction
+ * @param orderedMessages
+ * @return
+ */
+ protected static int calculateLifelineWidth(Interaction interaction,
+ List<List<Message>> orderedMessages) {
+ int width = 0;
+ return width >= Lifeline_Minimun_Size_X ? width
+ : Lifeline_Minimun_Size_X;
+ }
+
+ protected static int calculateBESXOffset(NodeInitDataFigure rootData,
+ Lifeline lifeline) {
+ return calculateLifelineXCenter(lifeline, rootData);
+ }
+
+ /**
+ * Modified by gmerin
+ */
+ protected static int calculateLifelineXCenter(Lifeline lifeline,
+ NodeInitDataFigure rootData) {
+ if (lifeline == null || rootData == null) {
+ return -1;
+ }
+ NodeInitDataFigure lifelineData = findElementNodeData(rootData,
+ lifeline);
+ if (lifelineData.location == null || lifelineData.size == null) {
+ return -1;
+ }
+ return (lifelineData.location.x + (lifelineData.size.x / 2));
+ }
+
+ /**
+ * Added
+ *
+ * @author gmerin
+ */
+ protected static int calculateBESXEdge(BehaviorExecutionSpecification bes,
+ NodeInitDataFigure rootData, Boolean isSourceEnd) {
+ if (bes == null || rootData == null || isSourceEnd == null) {
+ return -1;
+ }
+ NodeInitDataFigure besData = findElementNodeData(rootData, bes);
+ if (besData == null || besData.location == null || besData.size == null) {
+ return -1;
+ }
+ if (isSourceEnd)
+ return (besData.location.x + besData.size.x - 1);
+ else
+ return (besData.location.x);
+ }
+
+ /**
+ * Modified by gmerin
+ */
+ protected static int calculateMessageEndXOffset(Element element,
+ NodeInitDataFigure rootData, Boolean isSourceEnd) {
+ if (element instanceof Lifeline) {
+ return calculateLifelineXCenter((Lifeline) element, rootData);
+ } else if (element instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification bes = ((BehaviorExecutionSpecification) element);
+ if (bes.getCovereds().size() > 0) {
+ // Lifeline lifeline = bes.getCovereds().get(0);
+ // return calculateLifelineXCenter(lifeline, rootData);
+ return calculateBESXEdge(bes, rootData, isSourceEnd);
+ } else {
+ return -1;
+ }
+ } else {
+ return -1;
+ }
+ }
+
+ protected static void addLifelinesToInteraction(
+ NodeInitDataFigure interactionData,
+ List<List<Message>> orderedMessages) {
+ // sanity check
+ if (interactionData == null || orderedMessages == null
+ || orderedMessages.size() <= 0) {
+ return;
+ }
+ Interaction interaction = interactionData.eObject instanceof Interaction ? (Interaction) interactionData.eObject
+ : null;
+ if (interaction == null) {
+ return;
+ }
+ int xOffset = Interaction_Offset_X, yOffset = Interaction_Offset_Y
+ + Interaction_Title_Size;
+ int width = calculateLifelineWidth(interaction, orderedMessages);
+ int height = calculateLifelineHeight(interaction, orderedMessages);
+ for (Lifeline lifeline : interaction.getLifelines()) {
+ NodeInitDataFigure lifelineData = initLifelineData(xOffset,
+ yOffset, width, height, lifeline);
+ if (lifelineData != null) {
+ interactionData.children.add(lifelineData);
+ xOffset += width + Lifeline_Offset_X;
+ }
+ }
+ }
+
+ /**
+ * Adds Messages and BES to the Lifelines.
+ *
+ * @param interactionData
+ * @param orderedMessages
+ */
+ protected static void addMessagesAndBESToInteraction(
+ NodeInitDataFigure interactionData,
+ List<List<Message>> orderedMessages) {
+ // sanity check
+ if (interactionData == null || orderedMessages == null
+ || orderedMessages.size() <= 0) {
+ return;
+ }
+ Interaction interaction = interactionData.eObject instanceof Interaction ? (Interaction) interactionData.eObject
+ : null;
+ if (interaction == null) {
+ return;
+ }
+ int yOffset = Interaction_Title_Size + Interaction_Offset_Y
+ + Lifeline_Title_Size + Message_Slot_Size_Y
+ + Message_BES_Offset;
+
+ // added by gmerin
+ // To store the BES that added to the interactionData as ends of the
+ // messages
+ List<BehaviorExecutionSpecification> addedBESList = new BasicEList<BehaviorExecutionSpecification>();
+ // end gmerin
+
+ for (List<Message> messages : orderedMessages) {
+ // a slot/position can have more than one Message
+ for (Message message : messages) {
+ // Message source and target MOS
+ MessageOccurrenceSpecification sourceMOS = message
+ .getSendEvent() instanceof MessageOccurrenceSpecification ? (MessageOccurrenceSpecification) message
+ .getSendEvent()
+ : null;
+ MessageOccurrenceSpecification targetMOS = message
+ .getReceiveEvent() instanceof MessageOccurrenceSpecification ? (MessageOccurrenceSpecification) message
+ .getReceiveEvent()
+ : null;
+ // sanity check
+ if (sourceMOS == null || targetMOS == null) {
+ continue;
+ }
+ // Message source and target
+ Element source = MessageCommonUtil.getMessageSrc(message);
+ Element target = MessageCommonUtil.getMessageDst(message);
+ // source and target Lifelines - to calculate x offsets
+ Lifeline sourceLifeline = getMOSLifeline(sourceMOS);
+ Lifeline targetLifeline = getMOSLifeline(targetMOS);
+ // do we have to create any BES figure at source ?
+ if (source instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification sourceBES = (BehaviorExecutionSpecification) source;
+
+ // added by gmerin
+ addedBESList.add(sourceBES);
+ // end gmerin
+
+ // is this the first Message of a BES ?
+ if (sourceBES.getStart() != null
+ && sourceBES.getStart().equals(sourceMOS)) {
+ int y = yOffset;
+ int x = calculateBESXOffset(interactionData,
+ sourceLifeline)
+ - (BES_Minimun_Size_X / 2);
+ addStartBES(x, y, sourceBES, sourceLifeline,
+ interactionData);
+ }
+ // is this the last Message of a BES ?
+ if (sourceBES.getFinish() != null
+ && sourceBES.getFinish().equals(sourceMOS)) {
+ int y = yOffset;
+ addEndBES(BES_Minimun_Size_X, y, sourceBES,
+ sourceLifeline, interactionData);
+ }
+ } // end source BES
+ // do we have to create any BES at target ?
+ if (target instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification targetBES = (BehaviorExecutionSpecification) target;
+
+ // added by gmerin
+ addedBESList.add(targetBES);
+ // end gmerin
+
+ // is the first Message of a BES ?
+ if (targetBES.getStart() != null
+ && targetBES.getStart().equals(targetMOS)) {
+ int y = yOffset;
+ int x = calculateBESXOffset(interactionData,
+ targetLifeline)
+ - (BES_Minimun_Size_X / 2);
+ addStartBES(x, y, targetBES, targetLifeline,
+ interactionData);
+ }
+ // is the last Message of a BES ?
+ if (targetBES.getFinish() != null
+ && targetBES.getFinish().equals(targetMOS)) {
+ int y = yOffset;
+ addEndBES(BES_Minimun_Size_X, y, targetBES,
+ targetLifeline, interactionData);
+ }
+ } // end target BES
+ // init edge figure data
+ EdgeInitDataFigure messageData = INSTANCE.new EdgeInitDataFigure();
+ messageData.eObject = message;
+ // a message won't have children
+ messageData.children = Collections.EMPTY_LIST;
+ // y will be the same for source and target
+ int y = yOffset;
+ int xOffsetSrc = 0, xOffsetDst = 0;
+ // Modified by gmerin
+ xOffsetSrc = calculateMessageEndXOffset(source,
+ interactionData, true);
+ xOffsetDst = calculateMessageEndXOffset(target,
+ interactionData, false);
+ // start and end point of the Message edge.
+ messageData.start = new Point(xOffsetSrc, y);
+ messageData.end = new Point(xOffsetDst, y);
+ // add Message figure data
+ interactionData.children.add(messageData);
+ }
+ // increase y offset
+ yOffset += Message_Slot_Size_Y;
+ }
+
+ // Added by gmerin
+ // All the BES that are ends of messages have been considered in the
+ // above
+ // code. Now is the turn of the BES that do not have messages anchored
+ // to them
+ int auxMaxYOffset = yOffset;
+ for(Lifeline lifeline : interaction.getLifelines()) {
+ int auxYOffset = yOffset;
+ int auxXOffset = calculateLifelineXCenter(lifeline, interactionData)
+ - BES_Minimun_Size_X / 2;
+
+ List<BehaviorExecutionSpecification> notAddedBESList = MessageCommonUtil
+ .getLifelineBESList(lifeline);
+ notAddedBESList.removeAll(addedBESList);
+
+ for (BehaviorExecutionSpecification bes : notAddedBESList) {
+ addStartBES(auxXOffset, auxYOffset, bes, lifeline,
+ interactionData);
+ addEndBES(BES_Minimun_Size_X, auxYOffset, bes, lifeline,
+ interactionData);
+ auxYOffset += Message_Slot_Size_Y;
+ }
+
+ // Increase the height of the lifeline
+ if (auxYOffset - yOffset > 0) {
+ NodeInitDataFigure node = findElementNodeData(interactionData,
+ lifeline);
+ if (node != null && node.size != null)
+ node.size.y += (auxYOffset - yOffset) + Message_BES_Offset
+ * 2;
+ // Update the auxMaxYOffset in case is bigger than before
+ auxMaxYOffset = auxYOffset > auxMaxYOffset ? auxYOffset
+ : auxMaxYOffset;
+ }
+ }
+ // Increase the height of the Interaction
+ if (auxMaxYOffset - yOffset > 0) {
+ if (interactionData.size != null)
+ interactionData.size.y += (auxMaxYOffset - yOffset);
+ }
+ // end gmerin
+ }
+
+ /**
+ * Modified by gmerin
+ */
+ protected static void addStartBES(int x, int y,
+ BehaviorExecutionSpecification bes, Lifeline lifeline,
+ NodeInitDataFigure interactionData) {
+ NodeInitDataFigure BESData = startInitBESData(x, y, bes);
+ NodeInitDataFigure lifelineData = findElementNodeData(interactionData,
+ lifeline);
+ if (lifelineData != null) {
+ if (lifelineData.children == null) {
+ lifelineData.children = new ArrayList<InitDataFigure>();
+ }
+ lifelineData.children.add(BESData);
+ }
+ }
+
+ /**
+ * Modified by gmerin
+ */
+ protected static void addEndBES(int width, int y,
+ BehaviorExecutionSpecification bes, Lifeline lifeline,
+ NodeInitDataFigure interactionData) {
+ // get the NodeInitDataFigure corresponding to the Lifeline
+ NodeInitDataFigure lifelineData = findElementNodeData(interactionData,
+ lifeline);
+ if (lifelineData == null || lifelineData.children == null
+ || lifelineData.children.size() <= 0) {
+ return;
+ }
+ // look in that Lifeline children figures for a corresponding BES figure
+ for (InitDataFigure dataFigure : lifelineData.children) {
+ if (dataFigure != null && dataFigure.eObject != null
+ && dataFigure.eObject.equals(bes)) {
+ if (dataFigure instanceof NodeInitDataFigure) {
+ // correct BES figure found -> set size
+ int initialY = ((NodeInitDataFigure) dataFigure).location.y;
+ ((NodeInitDataFigure) dataFigure).size = new Point(width,
+ (y - initialY) + Message_BES_Offset);
+ }
+ }
+ }
+ }
+
+ protected static NodeInitDataFigure initLifelineData(int xOffset,
+ int yOffset, int width, int height, Lifeline lifeline) {
+ NodeInitDataFigure lifelineData = INSTANCE.new NodeInitDataFigure();
+ lifelineData.eObject = lifeline;
+ lifelineData.location = new Point(xOffset, yOffset);
+ lifelineData.size = new Point(width, height);
+ lifelineData.children = new ArrayList<InitDataFigure>();
+ return lifelineData;
+ }
+
+ protected static NodeInitDataFigure startInitBESData(int xOffset,
+ int yOffset, BehaviorExecutionSpecification bes) {
+ NodeInitDataFigure BESData = INSTANCE.new NodeInitDataFigure();
+ BESData.eObject = bes;
+ BESData.location = new Point(xOffset, yOffset - Message_BES_Offset);
+ BESData.children = new ArrayList<InitDataFigure>();
+ // no size, as we don't know yet the height
+ BESData.size = new Point(0, 0);
+ return BESData;
+ }
+
+ protected static NodeInitDataFigure endInitBESData(int width, int height,
+ NodeInitDataFigure BESData) {
+ if (BESData != null) {
+ BESData.size = new Point(width, height);
+ }
+ return BESData;
+ }
+
+ /**
+ * Modified by gmerin
+ */
+ protected static NodeInitDataFigure findElementNodeData(
+ InitDataFigure rootData, Element element) {
+ // sanity check
+ if (rootData == null || element == null) {
+ return null;
+ }
+ if (rootData.eObject != null && rootData.eObject.equals(element)) {
+ return rootData instanceof NodeInitDataFigure ? (NodeInitDataFigure) rootData
+ : null;
+ }
+ if (rootData.children == null || rootData.children.size() <= 0) {
+ return null;
+ }
+ for (InitDataFigure dataFigure : rootData.children) {
+ InitDataFigure elementDataFigure = findElementNodeData(dataFigure,
+ element);
+ if (elementDataFigure instanceof NodeInitDataFigure) {
+ return (NodeInitDataFigure) elementDataFigure;
+ }
+ }
+ return null;
+ }
+
+ protected static Lifeline getMOSLifeline(MessageOccurrenceSpecification mos) {
+ if (mos == null) {
+ return null;
+ }
+ if (mos.getCovereds().size() <= 0) {
+ return null;
+ }
+ return mos.getCovereds().get(0);
+ }
+
+ // //** View creation **////
+
+ public static void createViews(IGraphicalEditPart parentEditPart,
+ NodeInitDataFigure interactionData) {
+ // Map relating the EObjects and their EditParts
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart = new HashMap<EObject, IGraphicalEditPart>();
+ // create nodes views
+ // - create Interaction View
+ createInteractionView(interactionData, parentEditPart,
+ mapEObject2EditPart);
+ IGraphicalEditPart interactionEditPart = mapEObject2EditPart
+ .get(interactionData.eObject);
+ // - create Lifelines Views
+ createLifelineViews(interactionData, interactionEditPart,
+ mapEObject2EditPart);
+ // - create BES Views
+ createBESViews(interactionData, mapEObject2EditPart);
+ // - create Message Views
+ TransactionalEditingDomain domain = parentEditPart.getEditingDomain();
+ createMessageViews(interactionData, parentEditPart, mapEObject2EditPart);
+ // add element's created views to the Diagram list of references.
+ if (parentEditPart.getNotationView() instanceof Diagram) {
+ Diagram diagram = (Diagram) parentEditPart.getNotationView();
+ Set<EObject> elements = mapEObject2EditPart.keySet();
+ addReferencesToDiagram(diagram, elements, domain);
+ }
+ }
+
+ protected static void createInteractionView(
+ NodeInitDataFigure interactionData,
+ IGraphicalEditPart parentEditPart,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ // - create Interaction View
+ Interaction interaction = interactionData.eObject instanceof Interaction ? (Interaction) interactionData.eObject
+ : null;
+ String semanticHint = getInteractionSemanticHint(parentEditPart);
+ ViewDescriptor interactionViewDescriptor = new ViewDescriptor(
+ new EObjectAdapter(interactionData.eObject), Node.class,
+ semanticHint, UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ CreateViewRequest createInteractionViewRequest = new CreateViewRequest(
+ interactionViewDescriptor);
+ createInteractionViewRequest.setLocation(interactionData.location);
+ createInteractionViewRequest.setSize(new Dimension(
+ interactionData.size.x, interactionData.size.y));
+ IGraphicalEditPart interactionEditPart = createView(parentEditPart,
+ createInteractionViewRequest);
+ if (interactionEditPart != null) {
+ interactionEditPart.getFigure().getUpdateManager().performUpdate();
+ mapEObject2EditPart.put(interactionData.eObject,
+ interactionEditPart);
+ }
+ }
+
+ protected static String getInteractionSemanticHint(
+ IGraphicalEditPart parentEditPart) {
+ if (parentEditPart == null
+ || parentEditPart.resolveSemanticElement() == null) {
+ return null;
+ }
+ EObject element = parentEditPart.resolveSemanticElement();
+ if (element instanceof Package) {
+ return String.valueOf(InteractionEditPart.VISUAL_ID);
+ } else if (element instanceof Interaction) {
+ return String.valueOf(Interaction2EditPart.VISUAL_ID);
+ }
+ return null;
+ }
+
+ protected static void createLifelineViews(InitDataFigure interactionData,
+ IGraphicalEditPart interactionEditPart,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ IGraphicalEditPart parentEditPart = null;
+ for (Object child : interactionEditPart.getChildren()) {
+ // careful here, a CompartmentEditPart is looked for here because we
+ // know that it is applicable to the Interaction figure; other
+ // figures may need other logic
+ if (child instanceof CompartmentEditPart) {
+ parentEditPart = (CompartmentEditPart) child;
+ }
+ }
+
+ for (InitDataFigure dataFigure : interactionData.children) {
+ if (dataFigure instanceof NodeInitDataFigure
+ && dataFigure.eObject instanceof Lifeline) {
+ Lifeline lifeline = (Lifeline) dataFigure.eObject;
+ IGraphicalEditPart createdEditPart = findLifelineEditPart(
+ lifeline, mapEObject2EditPart);
+ NodeInitDataFigure nodeDataFigure = (NodeInitDataFigure) dataFigure;
+ if (createdEditPart != null) {
+ // the view and its editpart already existed; we
+ // destroy them to recreate them with the proper
+ // location and size
+ DeleteCommand deleteCommand = new DeleteCommand(
+ createdEditPart.getNotationView());
+ parentEditPart.getEditingDomain().getCommandStack()
+ .execute(new GMFToEMFCommand(deleteCommand));
+ }
+ ViewDescriptor viewDescriptor = new ViewDescriptor(
+ new EObjectAdapter(lifeline), Node.class, String
+ .valueOf(LifelineEditPart.VISUAL_ID),
+ UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ CreateViewRequest createViewRequest = new CreateViewRequest(
+ viewDescriptor);
+ createViewRequest.setLocation(nodeDataFigure.location);
+ createViewRequest.setSize(new Dimension(nodeDataFigure.size.x,
+ nodeDataFigure.size.y));
+ createdEditPart = createView(parentEditPart, createViewRequest);
+ if (createdEditPart != null) {
+ createdEditPart.getFigure().getUpdateManager()
+ .performUpdate();
+ mapEObject2EditPart.put(nodeDataFigure.eObject,
+ createdEditPart);
+ }
+ }
+ }
+ }
+
+ protected static IGraphicalEditPart findLifelineEditPart(Lifeline lifeline,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ if (lifeline != null && mapEObject2EditPart != null) {
+ Interaction interaction = lifeline.getInteraction();
+ IGraphicalEditPart interactionEditPart = mapEObject2EditPart
+ .get(interaction);
+ if (interactionEditPart != null) {
+ return searchEObjectInEditPart(lifeline, interactionEditPart);
+ }
+ }
+ return null;
+ }
+
+ protected static Point calculateLocationDelta(IGraphicalEditPart editPart,
+ Point finalLocation) {
+ Point locationDelta = new Point(0, 0);
+ if (editPart != null && finalLocation != null) {
+ Rectangle bounds = editPart.getFigure().getBounds();
+ locationDelta.x = finalLocation.x - bounds.x;
+ locationDelta.y = finalLocation.y - bounds.y;
+ }
+ return locationDelta;
+ }
+
+ protected static Dimension calculateSizeDelta(IGraphicalEditPart editPart,
+ Point finalSize) {
+ Dimension dimensionDelta = new Dimension(0, 0);
+ if (editPart != null && finalSize != null) {
+ Rectangle bounds = editPart.getFigure().getBounds();
+ dimensionDelta.width = finalSize.x - bounds.width;
+ dimensionDelta.height = finalSize.y - bounds.height;
+ }
+ return dimensionDelta;
+ }
+
+ protected static IGraphicalEditPart searchEObjectInEditPart(
+ EObject eObject, IGraphicalEditPart editPart) {
+ if (eObject != null && editPart != null) {
+ if (eObject.equals(editPart.resolveSemanticElement())) {
+ return editPart;
+ }
+ for (Object childEditPart : editPart.getChildren()) {
+ if (childEditPart instanceof IGraphicalEditPart) {
+ IGraphicalEditPart foundEditPart = searchEObjectInEditPart(
+ eObject, (IGraphicalEditPart) childEditPart);
+ if (foundEditPart != null) {
+ return foundEditPart;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ protected static void createBESViews(InitDataFigure interactionData,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ for (InitDataFigure dataFigure : interactionData.children) {
+ if (dataFigure instanceof NodeInitDataFigure
+ && dataFigure.eObject instanceof Lifeline) {
+ NodeInitDataFigure lifelineData = (NodeInitDataFigure) dataFigure;
+ for (InitDataFigure initFigure : lifelineData.children) {
+ if (initFigure instanceof NodeInitDataFigure
+ && initFigure.eObject instanceof BehaviorExecutionSpecification) {
+ NodeInitDataFigure BESData = (NodeInitDataFigure) initFigure;
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) BESData.eObject;
+ IGraphicalEditPart createdEditPart = findBESEditPart(
+ bes, mapEObject2EditPart);
+ IGraphicalEditPart parentEditPart = null;
+ if (mapEObject2EditPart
+ .containsKey(lifelineData.eObject)) {
+ parentEditPart = mapEObject2EditPart
+ .get(lifelineData.eObject);
+ }
+ if (createdEditPart != null) {
+ // the view and its editpart already existed; we
+ // destroy them to recreate them with the proper
+ // location and size
+ DeleteCommand deleteCommand = new DeleteCommand(
+ createdEditPart.getNotationView());
+ parentEditPart
+ .getEditingDomain()
+ .getCommandStack()
+ .execute(new GMFToEMFCommand(deleteCommand));
+ }
+ ViewDescriptor viewDescriptor = new ViewDescriptor(
+ new EObjectAdapter(BESData.eObject),
+ Node.class,
+ String
+ .valueOf(BehaviorExecutionSpecificationEditPart.VISUAL_ID),
+ UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ CreateViewRequest createRequest = new CreateViewRequest(
+ viewDescriptor);
+ createRequest.setLocation(BESData.location);
+ createRequest.setSize(new Dimension(BESData.size.x,
+ BESData.size.y));
+ if (parentEditPart != null) {
+ createdEditPart = createView(parentEditPart,
+ createRequest);
+ }
+ if (createdEditPart != null) {
+ createdEditPart.getFigure().getUpdateManager()
+ .performUpdate();
+ mapEObject2EditPart.put(BESData.eObject,
+ createdEditPart);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected static IGraphicalEditPart findBESEditPart(
+ BehaviorExecutionSpecification bes,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ if (bes != null && bes.getCovereds().size() > 0
+ && mapEObject2EditPart != null) {
+ Lifeline lifeline = bes.getCovereds().get(0);
+ IGraphicalEditPart lifelineEditPart = mapEObject2EditPart
+ .get(lifeline);
+ if (lifelineEditPart != null) {
+ return searchEObjectInEditPart(bes, lifelineEditPart);
+ }
+ }
+ return null;
+ }
+
+ protected static Lifeline findContainerLifeline(Interaction interaction,
+ BehaviorExecutionSpecification bes) {
+ if (interaction == null || bes == null) {
+ return null;
+ }
+ for (Lifeline lifeline : interaction.getLifelines()) {
+ for (BehaviorExecutionSpecification childBes : MessageCommonUtil
+ .getLifelineBESList(lifeline)) {
+ if (bes.equals(childBes)) {
+ return lifeline;
+ }
+ }
+ }
+ return null;
+ }
+
+ protected static void createMessageViews(InitDataFigure interactionData,
+ IGraphicalEditPart parentEditPart,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ TransactionalEditingDomain domain = parentEditPart.getEditingDomain();
+ if (domain != null) {
+ for (InitDataFigure dataFigure : interactionData.children) {
+ if (dataFigure instanceof EdgeInitDataFigure
+ && dataFigure.eObject instanceof Message) {
+ EdgeInitDataFigure edgeFigure = (EdgeInitDataFigure) dataFigure;
+ Message message = (Message) dataFigure.eObject;
+ Element source = MessageCommonUtil.getMessageSrc(message);
+ Element target = MessageCommonUtil.getMessageDst(message);
+ String semanticHint = getMessageSemanticHint(message);
+ IElementType type = getMessageElementType(message);
+ UMLLinkDescriptor linkDescriptor = new UMLLinkDescriptor(
+ source, target, message, type, Integer
+ .valueOf(semanticHint));
+ ConnectionViewDescriptor viewDescriptor = new ConnectionViewDescriptor(
+ linkDescriptor.getSemanticAdapter(), semanticHint,
+ ViewUtil.APPEND, false,
+ UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ CreateConnectionViewRequest createRequest = new CreateConnectionViewRequest(
+ viewDescriptor);
+ createRequest.setLocation(edgeFigure.start);
+ createRequest
+ .setType(RequestConstants.REQ_CONNECTION_START);
+
+ IGraphicalEditPart sourceEditPart = mapEObject2EditPart
+ .get(source);
+ if (sourceEditPart != null) {
+ createRequest.setSourceEditPart(sourceEditPart);
+ sourceEditPart.getCommand(createRequest);
+ createRequest.setLocation(edgeFigure.end);
+ createRequest
+ .setType(RequestConstants.REQ_CONNECTION_END);
+ IGraphicalEditPart targetEditPart = mapEObject2EditPart
+ .get(target);
+ if (targetEditPart != null) {
+ createRequest.setTargetEditPart(targetEditPart);
+ Command command = targetEditPart
+ .getCommand(createRequest);
+ if (command.canExecute() == false) {
+ continue;
+ }
+ domain.getCommandStack().execute(
+ new GEFtoEMFCommandWrapper(command));
+ refreshEditPart(interactionData,
+ mapEObject2EditPart);
+ View view = getCreatedViewFromRequest(createRequest);
+ if (view != null) {
+ IGraphicalEditPart editPart = (IGraphicalEditPart) parentEditPart
+ .getViewer().getEditPartRegistry().get(
+ view);
+ if (editPart != null) {
+ mapEObject2EditPart.put(message, editPart);
+ }
+ }
+ }
+ }
+ }
+ } // for (figures)
+ } // if (domain != null)
+ }
+
+ protected static void addReferencesToDiagram(Diagram diagram,
+ Set<EObject> elements, TransactionalEditingDomain domain) {
+ if (diagram == null || elements == null || elements.size() <= 0
+ || domain == null) {
+ return;
+ }
+ List<EObject> eObjects = new ArrayList<EObject>(elements);
+ AddEObjectReferencesToDiagram command = new AddEObjectReferencesToDiagram(
+ domain, diagram, eObjects, false);
+ domain.getCommandStack().execute(new GMFToEMFCommand(command));
+ }
+
+ protected static IGraphicalEditPart createView(
+ IGraphicalEditPart parentEditPart, CreateViewRequest request) {
+ if (getAndExecuteCommand(parentEditPart, request)) {
+ View view = getCreatedViewFromRequest(request);
+ if (view != null) {
+ if (parentEditPart.getViewer().getEditPartRegistry()
+ .containsKey(view)) {
+ Object value = parentEditPart.getViewer()
+ .getEditPartRegistry().get(view);
+ if (value instanceof IGraphicalEditPart) {
+ return (IGraphicalEditPart) value;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ protected static View getCreatedViewFromRequest(CreateViewRequest request) {
+ View view = null;
+ Object newObject = request.getNewObject();
+ if (newObject instanceof List) {
+ List<Object> adaptersList = ((List) newObject);
+ for (int i = 0; i < adaptersList.size(); i++) {
+ Object object = adaptersList.get(i);
+ if (object instanceof IAdaptable) {
+ Object adapted = ((IAdaptable) object)
+ .getAdapter(View.class);
+ if (adapted instanceof View) {
+ view = (View) adapted;
+ }
+ }
+ }
+ }
+ return view;
+ }
+
+ protected static View getCreatedViewFromRequest(
+ CreateConnectionViewRequest request) {
+ View view = null;
+ Object newObject = request.getNewObject();
+ if (newObject instanceof IAdaptable) {
+ Object object = ((IAdaptable) newObject).getAdapter(View.class);
+ if (object instanceof View) {
+ view = ((View) object);
+ }
+ }
+ return view;
+ }
+
+ protected static boolean getAndExecuteCommand(
+ IGraphicalEditPart parentEditPart, Request request) {
+ if (parentEditPart == null || parentEditPart.getEditingDomain() == null
+ || request == null) {
+ return false;
+ }
+ Command command = parentEditPart.getCommand(request);
+ if (command == null) {
+ return false;
+ }
+ TransactionalEditingDomain domain = parentEditPart.getEditingDomain();
+ domain.getCommandStack().execute(new GEFtoEMFCommandWrapper(command));
+ parentEditPart.refresh();
+ return true;
+ }
+
+ protected static String getMessageSemanticHint(Message message) {
+ String hint = "";
+ if (message != null) {
+ switch (message.getMessageSort().getValue()) {
+ case MessageSort.SYNCH_CALL:
+ hint = String.valueOf(MessageEditPart.VISUAL_ID);
+ break;
+ case MessageSort.ASYNCH_CALL:
+ hint = String.valueOf(Message2EditPart.VISUAL_ID);
+ break;
+ case MessageSort.REPLY:
+ hint = String.valueOf(Message3EditPart.VISUAL_ID);
+ break;
+ case MessageSort.ASYNCH_SIGNAL:
+ hint = String.valueOf(Message4EditPart.VISUAL_ID);
+ break;
+ case MessageSort.CREATE_MESSAGE:
+ hint = String.valueOf(Message5EditPart.VISUAL_ID);
+ break;
+ case MessageSort.DELETE_MESSAGE:
+ hint = String.valueOf(Message6EditPart.VISUAL_ID);
+ break;
+ default:
+ break;
+ }
+ }
+ return hint;
+ }
+
+ protected static IElementType getMessageElementType(Message message) {
+ IElementType type = null;
+ if (message != null) {
+ switch (message.getMessageSort().getValue()) {
+ case MessageSort.SYNCH_CALL:
+ type = UMLElementTypes.Message_3001;
+ break;
+ case MessageSort.ASYNCH_CALL:
+ type = UMLElementTypes.Message_3002;
+ break;
+ case MessageSort.REPLY:
+ type = UMLElementTypes.Message_3003;
+ break;
+ case MessageSort.ASYNCH_SIGNAL:
+ type = UMLElementTypes.Message_3004;
+ break;
+ case MessageSort.CREATE_MESSAGE:
+ type = UMLElementTypes.Message_3005;
+ break;
+ case MessageSort.DELETE_MESSAGE:
+ type = UMLElementTypes.Message_3006;
+ break;
+ default:
+ break;
+ }
+ }
+ return type;
+ }
+
+ protected static void refreshEditPart(InitDataFigure dataFigure,
+ Map<EObject, IGraphicalEditPart> mapEObject2EditPart) {
+ if (dataFigure == null) {
+ return;
+ }
+ IGraphicalEditPart editPart = null;
+ if (dataFigure.eObject != null) {
+ editPart = mapEObject2EditPart.get(dataFigure.eObject);
+ if (editPart != null) {
+ editPart.refresh();
+ }
+ }
+ if (dataFigure.children == null) {
+ return;
+ }
+ for (InitDataFigure childFigure : dataFigure.children) {
+ refreshEditPart(childFigure, mapEObject2EditPart);
+ }
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/MessageCommonUtil.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/MessageCommonUtil.java
new file mode 100644
index 00000000000..d20c0b16f68
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/custom-src/org/eclipse/papyrus/diagram/sequence/util/MessageCommonUtil.java
@@ -0,0 +1,961 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Initial API implementation
+ * Javier Muñoz (Prodevelop) - Messages are updated when properties changes
+ * Franciso Javier Cano Muñoz (Prodevelop) - New operations added
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.util;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.ConnectionAnchor;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.ReconnectRequest;
+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.internal.commands.SetConnectionBendpointsCommand;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.CallEvent;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Event;
+import org.eclipse.uml2.uml.InstanceValue;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.InteractionFragment;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.LiteralBoolean;
+import org.eclipse.uml2.uml.LiteralInteger;
+import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageEnd;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+import org.eclipse.uml2.uml.OccurrenceSpecification;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.ReceiveOperationEvent;
+import org.eclipse.uml2.uml.SendOperationEvent;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+import org.eclipse.papyrus.diagram.sequence.edit.commands.MessageOrderCommand;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message2EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message3EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message4EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message5EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.Message6EditPart;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.MessageEditPart;
+
+public class MessageCommonUtil {
+
+ /**
+ * Returns the source Element (a BES or a Lifeline) of a Message.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @return The source Element
+ */
+ public static Element getMessageSrc(Message msg) {
+ if (msg.getSendEvent() != null
+ && msg.getSendEvent() instanceof MessageOccurrenceSpecification) {
+ MessageOccurrenceSpecification mos = (MessageOccurrenceSpecification) msg
+ .getSendEvent();
+
+ if (mos.getCovereds().size() > 0) {
+ Element element = mos.getCovereds().get(0);
+
+ // element should always be an instance of Lifeline
+ if (element instanceof Lifeline) {
+ // Check if the message source is connected to the Lifeline
+ // or to one of its owned BehaviorExecutionSpecifications
+ Lifeline lifeline = (Lifeline) element;
+
+ // Get the BES's from the lifeline
+ EList<BehaviorExecutionSpecification> besList = getLifelineBESList(lifeline);
+
+ // Fore each BES, check if it is contained within its
+ // start/finish boundaries
+ for (BehaviorExecutionSpecification bes : besList) {
+ // A MOS might be contained within the boundaries of
+ // more than one BE (remember that BES can contained
+ // sub-BES)
+ BehaviorExecutionSpecification mostToRightBes = null;
+ if (isOSinBES(mos, bes)) {
+ // We want the most-to-right BES
+ if (mostToRightBes == null
+ || MessageOrderCommand.isOS1AfterOS2(bes
+ .getStart(), mostToRightBes
+ .getStart()))
+ mostToRightBes = bes;
+ }
+ element = mostToRightBes != null ? mostToRightBes
+ : element;
+ }
+ }
+
+ return element;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the destination Element (a BES or a Lifeline) of a Message.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @return The destination Element
+ */
+ public static Element getMessageDst(Message msg) {
+ if (msg.getReceiveEvent() != null
+ && msg.getReceiveEvent() instanceof MessageOccurrenceSpecification) {
+ MessageOccurrenceSpecification mos = (MessageOccurrenceSpecification) msg
+ .getReceiveEvent();
+
+ if (mos.getCovereds().size() > 0) {
+ Element element = mos.getCovereds().get(0);
+
+ // element should always be an instance of Lifeline
+ if (element instanceof Lifeline) {
+ // Check if the message target is connected to the Lifeline
+ // or to one of its owned BehaviorExecutionSpecifications
+ Lifeline lifeline = (Lifeline) element;
+
+ // Get the BES's from the lifeline
+ EList<BehaviorExecutionSpecification> besList = getLifelineBESList(lifeline);
+
+ // Fore each BES, check if it is the source of the msg
+ for (BehaviorExecutionSpecification bes : besList) {
+ // A MOS might be contained within the boundaries of
+ // more than one BE (remember that BES can contained
+ // sub-BES)
+ BehaviorExecutionSpecification mostToRightBes = null;
+ if (isOSinBES(mos, bes)) {
+ // We want the most-to-right BES
+ if (mostToRightBes == null
+ || MessageOrderCommand.isOS1AfterOS2(bes
+ .getStart(), mostToRightBes
+ .getStart()))
+ mostToRightBes = bes;
+ }
+ element = mostToRightBes != null ? mostToRightBes
+ : element;
+ }
+ }
+
+ return element;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the destination Lifeline of a Message.
+ *
+ * @param message
+ * @return
+ */
+ public static Lifeline getMessageSrcLifeline(Message message) {
+ if (message == null) {
+ return null;
+ }
+ Element source = MessageCommonUtil.getMessageSrc(message);
+ if (source instanceof BehaviorExecutionSpecification) {
+ if (((BehaviorExecutionSpecification) source).getCovereds().size() > 0
+ && ((BehaviorExecutionSpecification) source).getCovereds()
+ .get(0) instanceof Lifeline) {
+ source = ((BehaviorExecutionSpecification) source)
+ .getCovereds().get(0);
+ }
+ }
+ if (source instanceof Lifeline) {
+ return (Lifeline) source;
+ }
+ return null;
+ }
+
+ /**
+ * Returns the destination Lifeline of a Message.
+ *
+ * @param message
+ * @return
+ */
+ public static Lifeline getMessageDstLifeline(Message message) {
+ if (message == null) {
+ return null;
+ }
+ Element target = MessageCommonUtil.getMessageDst(message);
+ if (target instanceof BehaviorExecutionSpecification) {
+ if (((BehaviorExecutionSpecification) target).getCovereds().size() > 0
+ && ((BehaviorExecutionSpecification) target).getCovereds()
+ .get(0) instanceof Lifeline) {
+ target = ((BehaviorExecutionSpecification) target)
+ .getCovereds().get(0);
+ }
+ }
+ if (target instanceof Lifeline) {
+ return (Lifeline) target;
+ }
+ return null;
+ }
+
+ /**
+ * Returns a list with the BESs drawn within a Lifeline (It is important to
+ * mention that a BES is physically contained in a Interaction but drawn in
+ * a Lifeline)
+ *
+ * @author Gabriel Merin
+ * @param lifeline
+ * @return an EList with the BES
+ */
+ public static EList<BehaviorExecutionSpecification> getLifelineBESList(
+ Lifeline lifeline) {
+ EList<BehaviorExecutionSpecification> besList = new BasicEList<BehaviorExecutionSpecification>();
+
+ // Get the Interaction where the Lifeline is contained.
+ Interaction interaction = lifeline.getInteraction();
+
+ if (interaction == null)
+ return besList;
+
+ // Get all the BES contained in the Interaction. Only store those
+ // coveredBy the lifeline.
+ for (Iterator i = interaction.getFragments().iterator(); i.hasNext();) {
+ InteractionFragment fragment = (InteractionFragment) i.next();
+ if (fragment instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) fragment;
+ if (bes.getCovereds().size() > 0
+ && bes.getCovereds().get(0) == lifeline) {
+ besList.add((BehaviorExecutionSpecification) fragment);
+ }
+ }
+
+ }
+
+ // Return the besList
+ return besList;
+ }
+
+ /**
+ * Returns true if an OS is contained between the BES.start and BES.finish
+ * Occurrence Specifications. It is important to take into account that the
+ * passed OS might be within the start/finish properties of a Sub-BES.
+ *
+ * @author Gabriel Merin
+ * @param os
+ * @param bes
+ * @return true if the OS intersects, false otherwise
+ */
+ public static boolean isOSinBES(OccurrenceSpecification os,
+ BehaviorExecutionSpecification bes) {
+ if (bes.getStart() == os || bes.getFinish() == os) {
+ return true;
+ }
+
+ if (bes.getStart() == null || bes.getFinish() == null) {
+ return false;
+ }
+
+ if (MessageOrderCommand.isOS1AfterOS2(os, bes.getStart())
+ && MessageOrderCommand.isOS1BeforeOS2(os, bes.getFinish())) {
+ return true;
+ }
+
+ // In other case
+ return false;
+ }
+
+ /**
+ * Checks if one of the end points is already occupied with another
+ * connection figure. NOTE: This is used to avoid the creation of two links
+ * with the same end points.
+ *
+ * @author Gabriel Merin
+ * @param request
+ * @return true if connection
+ */
+ public static boolean checkFreeConnectionEnds(Request request) {
+
+ if (request instanceof CreateConnectionViewAndElementRequest) {
+
+ CreateConnectionViewAndElementRequest createRequest = (CreateConnectionViewAndElementRequest) request;
+
+ ShapeNodeEditPart sourceEP, targetEP;
+ ConnectionAnchor sourceAnchor, targetAnchor;
+ Point targetRefLocation, sourceRefLocation;
+ Point targetLocation, sourceLocation;
+
+ sourceEP = (ShapeNodeEditPart) createRequest.getSourceEditPart();
+ targetEP = (ShapeNodeEditPart) createRequest.getTargetEditPart();
+
+ // Source and Target should not be anchored at the same EditPart
+ // either
+ if (sourceEP == targetEP)
+ return false;
+
+ ICommandProxy icp = (ICommandProxy) createRequest.getStartCommand();
+
+ CompositeCommand cc = ((CompositeCommand) icp.getICommand());
+ Iterator iterator = cc.iterator();
+ // 0: (nothing interesting)
+ iterator.next();
+ // 1: SetConnectionEndsCommand
+ iterator.next();
+ // 2: SetConnectionAnchorsCommand
+ iterator.next();
+ // 3: SetConnectionBendpointsCommand
+ SetConnectionBendpointsCommand scbp = (SetConnectionBendpointsCommand) iterator
+ .next();
+
+ sourceRefLocation = scbp.getSourceRefPoint();
+ targetRefLocation = scbp.getTargetRefPoint();
+
+ sourceAnchor = ((NodeFigure) sourceEP.getFigure())
+ .getSourceConnectionAnchorAt(sourceRefLocation);
+ targetAnchor = targetEP.getTargetConnectionAnchor(createRequest);
+
+ targetLocation = targetAnchor.getLocation(sourceAnchor
+ .getLocation(sourceRefLocation));
+
+ sourceLocation = sourceAnchor.getLocation(targetAnchor
+ .getLocation(targetRefLocation));
+
+ // Source and Target should not be anchored at the same point
+ if (sourceLocation.x == targetLocation.x
+ && sourceLocation.y == targetLocation.y)
+ return false;
+
+ if (checkFreeEnd(sourceEP, sourceLocation)
+ && checkFreeEnd(targetEP, targetLocation)) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ if (request instanceof ReconnectRequest
+ && ((ReconnectRequest) request).getTarget() instanceof ShapeNodeEditPart) {
+ ReconnectRequest reconnectRequest = (ReconnectRequest) request;
+
+ ShapeNodeEditPart sourceEP;
+ ShapeNodeEditPart targetEP;
+ ShapeNodeEditPart endEP;
+
+ ConnectionAnchor sourceAnchor;
+ ConnectionAnchor targetAnchor;
+
+ Point endLocation;
+
+ sourceEP = (ShapeNodeEditPart) reconnectRequest
+ .getConnectionEditPart().getSource();
+ targetEP = (ShapeNodeEditPart) reconnectRequest
+ .getConnectionEditPart().getTarget();
+
+ if (reconnectRequest.isMovingStartAnchor()) {
+ // Update the corresponding EditPart
+ sourceEP = (ShapeNodeEditPart) reconnectRequest.getTarget();
+
+ sourceAnchor = sourceEP
+ .getSourceConnectionAnchor(reconnectRequest);
+ targetAnchor = targetEP
+ .getTargetConnectionAnchor(reconnectRequest
+ .getConnectionEditPart());
+ endLocation = sourceAnchor.getLocation(
+ targetAnchor.getReferencePoint()).getCopy();
+ endEP = sourceEP;
+ } else {
+ // Update the corresponding EditPart
+ targetEP = (ShapeNodeEditPart) reconnectRequest.getTarget();
+
+ sourceAnchor = sourceEP
+ .getSourceConnectionAnchor(reconnectRequest
+ .getConnectionEditPart());
+ targetAnchor = targetEP
+ .getTargetConnectionAnchor(reconnectRequest);
+ endLocation = targetAnchor.getLocation(
+ sourceAnchor.getReferencePoint()).getCopy();
+ endEP = targetEP;
+ }
+
+ // Source and Target should not be anchored at the same EditPart
+ // either
+ if (sourceEP == targetEP)
+ return false;
+
+ if (checkFreeEnd(endEP, endLocation, reconnectRequest
+ .getConnectionEditPart())) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks if a Point is already occupied by an existing connection end.
+ *
+ * @author Gabriel Merin
+ * @param shapeEP
+ * @param endLocation
+ * @return true if the passed point is free, false otherwise
+ */
+ public static boolean checkFreeEnd(ShapeNodeEditPart shapeEP,
+ Point endLocation) {
+ return checkFreeEnd(shapeEP, endLocation, null);
+ }
+
+ /**
+ * Checks if a Point is already occupied by an existing connection end. A
+ * connection EditPart can be passed in order to avoid the checking of that
+ * connection.
+ *
+ * @author Gabriel Merin
+ * @param shapeEP
+ * @param endLocation
+ * @param connection
+ * EditPart to avoid checking
+ * @return true if the passed point is free, false otherwise
+ */
+ public static boolean checkFreeEnd(ShapeNodeEditPart shapeEP,
+ Point endLocation, ConnectionEditPart connEPToAvoid) {
+ List<EditPart> sourceConnections = new BasicEList<EditPart>();
+ sourceConnections.addAll(shapeEP.getSourceConnections());
+
+ // Remove from the list the connection EditPart to avoid
+ if (connEPToAvoid != null) {
+ sourceConnections.remove(connEPToAvoid);
+ }
+
+ // Discard connections whose semantic element is different from Message
+ removeNonMessageConnections(sourceConnections);
+
+ for (Iterator i = sourceConnections.iterator(); i.hasNext();) {
+ ConnectionEditPart linkEP = (ConnectionEditPart) i.next();
+
+ Point existingLocation;
+
+ ShapeNodeEditPart sourceEP = shapeEP;
+ ShapeNodeEditPart targetEP = (ShapeNodeEditPart) linkEP.getTarget();
+
+ ConnectionAnchor sourceAnchor = sourceEP
+ .getSourceConnectionAnchor(linkEP);
+ ConnectionAnchor targetAnchor = targetEP
+ .getTargetConnectionAnchor(linkEP);
+
+ existingLocation = sourceAnchor.getLocation(targetAnchor
+ .getReferencePoint());
+
+ if (endLocation.y == existingLocation.y) {
+ return false;
+ }
+ }
+
+ List<EditPart> targetConnections = new BasicEList<EditPart>();
+ targetConnections.addAll(shapeEP.getTargetConnections());
+
+ // Remove from the list the connection EditPart to avoid
+ if (connEPToAvoid != null) {
+ targetConnections.remove(connEPToAvoid);
+ }
+
+ // Discard connections whose semantic element is different from Message
+ removeNonMessageConnections(targetConnections);
+
+ for (Iterator i = targetConnections.iterator(); i.hasNext();) {
+ ConnectionEditPart linkEP = (ConnectionEditPart) i.next();
+
+ Point existingLocation;
+
+ ShapeNodeEditPart sourceEP = (ShapeNodeEditPart) linkEP.getSource();
+ ShapeNodeEditPart targetEP = shapeEP;
+
+ ConnectionAnchor targetAnchor = targetEP
+ .getTargetConnectionAnchor(linkEP);
+ ConnectionAnchor sourceAnchor = sourceEP
+ .getSourceConnectionAnchor(linkEP);
+
+ existingLocation = targetAnchor.getLocation(sourceAnchor
+ .getReferencePoint());
+
+ if (endLocation.y == existingLocation.y) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Returns the Operation from the Send Operation Event of the Message.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @return the Operation if exists, null otherwise
+ */
+ public static Operation getMessageSendOperation(Message msg) {
+ return getMessageOperation(msg, true);
+ }
+
+ /**
+ * Returns the Operation from the Receive Operation Event of the Message.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @return the Operation if exists, null otherwise
+ */
+ public static Operation getMessageReceiveOperation(Message msg) {
+ return getMessageOperation(msg, false);
+ }
+
+ /**
+ * Used by '{@link #getMessageSendOperation()
+ * <em>Message Send Operation</em>}' and '
+ * {@link #getMessageReceiveOperation() <em>Message Receive Operation</em>}'
+ * to obtain the operation from the Send/Receive Operation Event.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @param getSendOp
+ * @return the Operation if exists, null otherwise
+ */
+ public static Operation getMessageOperation(Message msg, Boolean getSendOp) {
+ MessageEnd msgEnd;
+
+ if (getSendOp) {
+ msgEnd = msg.getSendEvent();
+ } else {
+ msgEnd = msg.getReceiveEvent();
+ }
+
+ if (msgEnd instanceof MessageOccurrenceSpecification) {
+ MessageOccurrenceSpecification mosEnd = (MessageOccurrenceSpecification) msgEnd;
+ Event event = mosEnd.getEvent();
+
+ if (event instanceof SendOperationEvent) {
+ return ((SendOperationEvent) event).getOperation();
+ }
+
+ if (event instanceof ReceiveOperationEvent) {
+ return ((ReceiveOperationEvent) event).getOperation();
+ }
+
+ if (event instanceof CallEvent) {
+ return ((CallEvent) event).getOperation();
+ }
+
+ }
+ return null;
+ }
+
+ /**
+ * Returns the sent Event of a Message.
+ *
+ * @param msg
+ * @return The Event if exists
+ */
+ public static Event getMessageSendEvent(Message msg) {
+ return getMessageEvent(msg, true);
+ }
+
+ /**
+ * Returns the received Event of a Message
+ *
+ * @param msg
+ * @return
+ */
+ public static Event getMessageReceiveEvent(Message msg) {
+ return getMessageEvent(msg, false);
+ }
+
+ /**
+ * Used by '{@link #getMessageSendEvent() <em>Message Send Event</em>}' and
+ * '{@link #getMessageReceiveEvent() <em>Message Receive Event</em>}'. It
+ * returns the sent/received Event of a Message.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @param getSendOp
+ * @return the Sent/Received Event if exists, null otherwise
+ */
+ public static Event getMessageEvent(Message msg, Boolean getSendOp) {
+ MessageEnd msgEnd;
+
+ if (getSendOp) {
+ msgEnd = msg.getSendEvent();
+ } else {
+ msgEnd = msg.getReceiveEvent();
+ }
+
+ if (msgEnd instanceof MessageOccurrenceSpecification) {
+ MessageOccurrenceSpecification mosEnd = (MessageOccurrenceSpecification) msgEnd;
+ return mosEnd.getEvent();
+
+ }
+ return null;
+ }
+
+ /**
+ * Given a Message and an Operation, it returns a String representing the
+ * Operation appropriately.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @param op
+ * @return a String representing the Operation
+ */
+ public static String getMessageOperationString(Message msg, Operation op) {
+ String returnString;
+
+ // Name of the operation
+ returnString = op.getName();
+
+ returnString += "(";
+
+ // The value of the parameters is in the message itself
+ for (Iterator<ValueSpecification> i = msg.getArguments().iterator(); i
+ .hasNext();) {
+ ValueSpecification value = i.next();
+
+ if (value.getName() != null
+ && value.getName().compareTo("return") == 0) {
+ continue;
+ }
+
+ if (value instanceof LiteralString) {
+ LiteralString lString = ((LiteralString) value);
+ returnString += "\"";
+ if (lString.isSetValue()) {
+ returnString += lString.getValue();
+ }
+ returnString += "\"";
+ } else if (value instanceof LiteralBoolean) {
+ returnString += ((LiteralBoolean) value).stringValue();
+ } else if (value instanceof LiteralInteger) {
+ returnString += ((LiteralInteger) value).getValue();
+ } else if (value instanceof InstanceValue) {
+ if (((InstanceValue) value).getInstance() != null)
+ returnString += ((InstanceValue) value).getInstance()
+ .getName();
+ else
+ returnString += "null";
+ } else {
+ returnString += "?";
+ }
+
+ // if there are more elements, add a comma
+ if (i.hasNext())
+ returnString += ", ";
+ }
+
+ returnString += ")";
+
+ return returnString;
+ }
+
+ /**
+ * Obtains the Message EditPart associated with the Start property of the
+ * BES.
+ *
+ * @author Gabriel Merin
+ * @param besEP
+ * @return returns the ConnectionNodeEditPart that represents the
+ * MessageEditPart. If no connection is not found, null is returned.
+ */
+ public static ConnectionNodeEditPart getBESStartMessageEditPart(
+ BehaviorExecutionSpecificationEditPart besEP) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) besEP
+ .resolveSemanticElement();
+ return getMessageEditPart(bes.getStart(), besEP);
+ }
+
+ /**
+ * Obtains the Message EditPart associated with the Finish property of the
+ * BES.
+ *
+ * @author Gabriel Merin
+ * @param besEP
+ * @return returns the ConnectionNodeEditPart that represents the
+ * MessageEditPart. If no connection is not found, null is returned.
+ */
+ public static ConnectionNodeEditPart getBESFinishMessageEditPart(
+ BehaviorExecutionSpecificationEditPart besEP) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) besEP
+ .resolveSemanticElement();
+ return getMessageEditPart(bes.getFinish(), besEP);
+ }
+
+ /**
+ * Used by '{@link #getBESStartMessageEditPart()
+ * <em>BES Start Message Edit Part</em>}' and '
+ * {@link #getBESFinishMessageEditPart()
+ * <em>BES Finish Message Edit Part</em>}' It returns the Message EditPart
+ * associated with an OS.
+ *
+ * @author Gabriel Merin
+ * @param os
+ * @param besEP
+ * @return returns the ConnectionNodeEditPart that represents the
+ * MessageEditPart. If no connection is found, null is returned.
+ */
+ public static ConnectionNodeEditPart getMessageEditPart(
+ OccurrenceSpecification os,
+ BehaviorExecutionSpecificationEditPart besEP) {
+
+ // Loop through source connections
+ List sourceList = besEP.getSourceConnections();
+ for (Iterator i = sourceList.iterator(); i.hasNext();) {
+ ConnectionNodeEditPart conn = (ConnectionNodeEditPart) i.next();
+ if (conn.resolveSemanticElement() instanceof Message) {
+ Message msg = (Message) conn.resolveSemanticElement();
+ if (msg.getSendEvent() == os)
+ return conn;
+ } else
+ continue;
+ }
+
+ // Loop through target connections
+ List targetList = besEP.getTargetConnections();
+ for (Iterator i = targetList.iterator(); i.hasNext();) {
+ ConnectionNodeEditPart conn = (ConnectionNodeEditPart) i.next();
+ if (conn.resolveSemanticElement() instanceof Message) {
+ Message msg = (Message) conn.resolveSemanticElement();
+ if (msg.getReceiveEvent() == os)
+ return conn;
+ }
+ }
+
+ // If no connection edit part found, return null
+ return null;
+ }
+
+ /**
+ * Returns the intersection point between a Shape Node EditPart and the
+ * source of a Connection EditPart. Used by '
+ * {@link #getMessageEndIntersectionPoint()
+ * <em>Message End Intersection Point</em>}'.
+ *
+ *
+ * @author Gabriel Merin
+ * @param shapeEP
+ * @param connEP
+ * @return the intersection Point
+ */
+ public static Point getSourceIntersectionPoint(ShapeNodeEditPart shapeEP,
+ ConnectionNodeEditPart connEP) {
+ return getIntersectionPoint(shapeEP, connEP, true);
+ }
+
+ /**
+ * Returns the intersection point between a Shape Node EditPart and the
+ * target of a Connection EditPart. Used by '
+ * {@link #getMessageEndIntersectionPoint()
+ * <em>Message End Intersection Point</em>}'.
+ *
+ * @author Gabriel Merin
+ * @param shapeEP
+ * @param connEP
+ * @return the intersection Point
+ */
+ public static Point getTargetIntersectionPoint(ShapeNodeEditPart shapeEP,
+ ConnectionNodeEditPart connEP) {
+ return getIntersectionPoint(shapeEP, connEP, false);
+ }
+
+ /**
+ * Used by '{@link #getSourceIntersectionPoint()
+ * <em>Source Intersection Point</em>}' and '
+ * {@link #getTargetIntersectionPoint() <em>Target Intersection Point</em>}
+ * '. It returns the intersection point between a Shape Node EditPart and
+ * the source/target of a Connection EditPart (depends on the source value)
+ *
+ * @author Gabriel Merin
+ * @param shapeEP
+ * @param connEP
+ * @param source
+ * @return the intersection Point
+ */
+ public static Point getIntersectionPoint(ShapeNodeEditPart shapeEP,
+ ConnectionNodeEditPart connEP, boolean source) {
+ Point p;
+ ConnectionAnchor cAnchor;
+
+ if (source == true && shapeEP.getSourceConnections().contains(connEP)) {
+ cAnchor = shapeEP.getSourceConnectionAnchor(connEP);
+ p = cAnchor.getReferencePoint().getCopy();
+ return p;
+ }
+
+ if (source == false && shapeEP.getTargetConnections().contains(connEP)) {
+ cAnchor = shapeEP.getSourceConnectionAnchor(connEP);
+ p = cAnchor.getReferencePoint().getCopy();
+ return p;
+ }
+
+ // If the connEP was not within shapeEP connections then return null
+ return null;
+ }
+
+ /**
+ * Returns the intersection point between a Shape Node EditPart and the end
+ * of a Connection EditPart indicated by the OS.
+ *
+ * @author Gabriel Merin
+ * @param shapeEP
+ * @param connEP
+ * @param os
+ * @return the intersection Point
+ */
+ public static Point getMessageEndIntersectionPoint(
+ ShapeNodeEditPart shapeEP, ConnectionNodeEditPart connEP,
+ OccurrenceSpecification os) {
+ Message msg = (Message) connEP.resolveSemanticElement();
+ if (msg.getSendEvent() == os)
+ return getSourceIntersectionPoint(shapeEP, connEP);
+ if (msg.getReceiveEvent() == os)
+ return getTargetIntersectionPoint(shapeEP, connEP);
+
+ return null;
+ }
+
+ /**
+ * Checks if the semantic hint (a VISUAL_ID string) matches any of the
+ * MessageEditPart's VISUAL_ID.
+ *
+ * @author Gabriel Merin
+ * @param semanticHint
+ * @return true if the there is a match among any of VISUAL_IDs from the
+ * Message EditParts.
+ */
+ public static boolean isMessageEditPart(String semanticHint) {
+
+ switch (Integer.valueOf(semanticHint)) {
+ case MessageEditPart.VISUAL_ID:
+ return true;
+ case Message2EditPart.VISUAL_ID:
+ return true;
+ case Message3EditPart.VISUAL_ID:
+ return true;
+ case Message4EditPart.VISUAL_ID:
+ return true;
+ case Message5EditPart.VISUAL_ID:
+ return true;
+ case Message6EditPart.VISUAL_ID:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the connectionEP given as a parameter is instance of any of the
+ * Message EditParts
+ *
+ * @author Gabriel Merin
+ * @param connectionEP
+ * @return true in case the connectionEP is instance of any of the Message
+ * EditParts, false otherwise.
+ */
+ public static boolean isMessageEditPart(ConnectionEditPart connectionEP) {
+ if (connectionEP instanceof MessageEditPart)
+ return true;
+ if (connectionEP instanceof Message2EditPart)
+ return true;
+ if (connectionEP instanceof Message3EditPart)
+ return true;
+ if (connectionEP instanceof Message4EditPart)
+ return true;
+ if (connectionEP instanceof Message5EditPart)
+ return true;
+ if (connectionEP instanceof Message6EditPart)
+ return true;
+
+ return false;
+ }
+
+ /**
+ * Removes from a EditPart List all the elements that are not instances of
+ * ConnectionNodeEditPart and whose semantic element is different from
+ * Message
+ *
+ * @author Gabriel Merin
+ * @param epList
+ */
+ public static void removeNonMessageConnections(List<EditPart> epList) {
+ List<EditPart> messageList = new BasicEList<EditPart>();
+ for (Iterator<EditPart> i = epList.iterator(); i.hasNext();) {
+ Object obj = i.next();
+ if (obj instanceof ConnectionNodeEditPart) {
+ if (((ConnectionNodeEditPart) obj).resolveSemanticElement() instanceof Message) {
+ messageList.add((EditPart) obj);
+ }
+ }
+ }
+ epList.retainAll(messageList);
+ }
+
+ /**
+ * It returns the casting of msg.getSendEvent() to
+ * MessageOccurrenceSpecification if possible, otherwise it returns null.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @return The source MessageOccurrenceSpecification of the given message
+ */
+ public static MessageOccurrenceSpecification getMessageSrcMOS(Message msg) {
+ return getMessageMOS(msg, true);
+ }
+
+ /**
+ * It returns the casting of msg.getReceiveEvent() to
+ * MessageOccurrenceSpecification if possible, otherwise it returns null.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @return The target MessageOccurrenceSpecification of the given message
+ */
+ public static MessageOccurrenceSpecification getMessageDstMOS(Message msg) {
+ return getMessageMOS(msg, false);
+ }
+
+ /**
+ * It returns the casting of msg.getSendEvent() (source=true) or
+ * msg.getReceiveEvent() (source=false) to MessageOccurrenceSpecification if
+ * possible, otherwise it returns null.
+ *
+ * @author Gabriel Merin
+ * @param msg
+ * @param source
+ * @return The source or target MessageOccurrenceSpecification
+ */
+ private static MessageOccurrenceSpecification getMessageMOS(Message msg,
+ boolean source) {
+ MessageEnd msgEnd;
+ if (source) {
+ msgEnd = msg.getSendEvent();
+ } else {
+ msgEnd = msg.getReceiveEvent();
+ }
+ if (msgEnd instanceof MessageOccurrenceSpecification)
+ return (MessageOccurrenceSpecification) msgEnd;
+ else
+ return null;
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/icons/SequenceDiagram.gif b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/icons/SequenceDiagram.gif
new file mode 100644
index 00000000000..be5c62bae5c
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/icons/SequenceDiagram.gif
Binary files differ
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/messages.properties b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/messages.properties
new file mode 100644
index 00000000000..47054eece13
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/messages.properties
@@ -0,0 +1,123 @@
+##########################################################################################
+# Copyright (c) 2008 Conselleria de Infraestructuras y Transporte, Generalitat
+# de la Comunitat Valenciana . All rights reserved. This program
+# and the accompanying materials are made available under the terms of the
+# Eclipse Public License v1.0 which accompanies this distribution, and is
+# available at http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors: Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation
+#
+########################################################################################
+# TODO: manually put keys and values
+UMLCreationWizardTitle=New UMLSequence Diagram
+UMLCreationWizard_DiagramModelFilePageTitle=Create UMLSequence Diagram
+UMLCreationWizard_DiagramModelFilePageDescription=Select file that will contain diagram model.
+UMLCreationWizard_DomainModelFilePageTitle=Create UMLSequence Diagram
+UMLCreationWizard_DomainModelFilePageDescription=Select file that will contain domain model.
+UMLCreationWizardOpenEditorError=Error opening diagram editor
+UMLCreationWizardCreationError=Creation Problems
+UMLCreationWizardPageExtensionError=File name should have {0} extension.
+UMLDiagramEditorUtil_OpenModelResourceErrorDialogMessage=Failed to load model file {0}
+UMLDiagramEditorUtil_CreateDiagramProgressTask=Creating diagram and model files
+UMLDiagramEditorUtil_CreateDiagramCommandLabel=Creating diagram and model
+UMLDocumentProvider_isModifiable=Updating cache failed
+UMLDocumentProvider_handleElementContentChanged=Failed to refresh hierarchy for changed resource
+UMLDocumentProvider_IncorrectInputError={1}
+UMLDocumentProvider_NoDiagramInResourceError=Diagram is not present in resource
+UMLDocumentProvider_DiagramLoadingError=Error loading diagram
+UMLDocumentProvider_UnsynchronizedFileSaveError=The file has been changed on the file system
+UMLDocumentProvider_SaveDiagramTask=Saving diagram
+UMLDocumentProvider_SaveNextResourceTask=Saving {0}
+UMLDocumentProvider_SaveAsOperation=Saving {0} diagram as
+UMLInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle=Error
+UMLInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage=Model file loading failed
+UMLInitDiagramFileAction_InitDiagramFileWizardTitle=Initialize new {0} diagram file
+UMLInitDiagramFileAction_OpenModelFileDialogTitle=Select domain model
+UMLNewDiagramFileWizard_CreationPageName=Initialize new diagram file
+UMLNewDiagramFileWizard_CreationPageTitle=Diagram file
+UMLNewDiagramFileWizard_CreationPageDescription=Create new diagram based on {0} model content
+UMLNewDiagramFileWizard_RootSelectionPageName=Select diagram root element
+UMLNewDiagramFileWizard_RootSelectionPageTitle=Diagram root element
+UMLNewDiagramFileWizard_RootSelectionPageDescription=Select semantic model element to be depicted on diagram
+UMLNewDiagramFileWizard_RootSelectionPageSelectionTitle=Select diagram root element:
+UMLNewDiagramFileWizard_RootSelectionPageNoSelectionMessage=Diagram root element is not selected
+UMLNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage=Invalid diagram root element is selected
+UMLNewDiagramFileWizard_InitDiagramCommand=Initializing diagram contents
+UMLNewDiagramFileWizard_IncorrectRootError=Incorrect model object stored as a root resource object
+UMLDiagramEditor_SavingDeletedFile=The original file "{0}" has been deleted.
+UMLDiagramEditor_SaveAsErrorTitle=Problem During Save As...
+UMLDiagramEditor_SaveAsErrorMessage=Save could not be completed. Target file is already open in another editor.
+UMLDiagramEditor_SaveErrorTitle=Save Problems
+UMLDiagramEditor_SaveErrorMessage=Could not save file.
+UMLElementChooserDialog_SelectModelElementTitle=Select model element
+ModelElementSelectionPageMessage=Select model element:
+ValidateActionMessage=Validate
+Interaction1Group_title=Interaction
+Interaction1Group_desc=
+Objects2Group_title=Objects
+Objects2Group_desc=
+Messages3Group_title=Messages
+Interaction1CreationTool_title=Interaction
+Interaction1CreationTool_desc=Create an Interaction
+Lifeline1CreationTool_title=Lifeline
+Lifeline1CreationTool_desc=Create a Lifeline
+ExecutionBehaviour2CreationTool_title=Execution Behaviour
+ExecutionBehaviour2CreationTool_desc=Create an Execution Behaviour
+Callsynch1CreationTool_title=Call (synch.)
+Callsynch1CreationTool_desc=Create a synchronous message call
+Callasynch2CreationTool_title=Call (asynch.)
+Callasynch2CreationTool_desc=Create an asynchronous message call
+Reply3CreationTool_title=Reply
+Reply3CreationTool_desc=Create a reply message
+SendSignal5CreationTool_title=Send Signal
+CreationEvent6CreationTool_title=Creation Event
+DestructionEvent7CreationTool_title=Destruction Event
+InteractionInteractionCompartmentEditPart_title=InteractionCompartment
+InteractionInteractionCompartment2EditPart_title=InteractionCompartment
+
+CommandName_OpenDiagram=Open Diagram
+NavigatorGroupName_Package_79_links=links
+NavigatorGroupName_Interaction_1001_incominglinks=incoming links
+NavigatorGroupName_Interaction_1001_outgoinglinks=outgoing links
+NavigatorGroupName_Interaction_2001_incominglinks=incoming links
+NavigatorGroupName_Interaction_2001_outgoinglinks=outgoing links
+NavigatorGroupName_Lifeline_2002_incominglinks=incoming links
+NavigatorGroupName_Lifeline_2002_outgoinglinks=outgoing links
+NavigatorGroupName_BehaviorExecutionSpecification_2003_incominglinks=incoming links
+NavigatorGroupName_BehaviorExecutionSpecification_2003_outgoinglinks=outgoing links
+NavigatorGroupName_Message_3001_target=target
+NavigatorGroupName_Message_3001_source=source
+NavigatorGroupName_Message_3002_target=target
+NavigatorGroupName_Message_3002_source=source
+NavigatorGroupName_Message_3003_target=target
+NavigatorGroupName_Message_3003_source=source
+NavigatorGroupName_Message_3004_target=target
+NavigatorGroupName_Message_3004_source=source
+NavigatorGroupName_Message_3005_target=target
+NavigatorGroupName_Message_3005_source=source
+NavigatorGroupName_Message_3006_target=target
+NavigatorGroupName_Message_3006_source=source
+NavigatorActionProvider_OpenDiagramActionName=Open Diagram
+AbstractParser_UnexpectedValueTypeMessage=Value of type {0} is expected
+AbstractParser_WrongStringConversionMessage=String value does not convert to {0} value
+AbstractParser_UnknownLiteralMessage=Unknown literal: {0}
+MessageFormatParser_InvalidInputError=Invalid input at {0}
+UMLModelingAssistantProviderTitle=Select domain model element
+UMLModelingAssistantProviderMessage=Available domain model elements:
+NavigatorGroupName_CombinedFragment_2004_incominglinks=incoming links
+NavigatorGroupName_CombinedFragment_2004_outgoinglinks=outgoing links
+CombinedFragment3CreationTool_title=CombinedFragment
+CombinedFragment3CreationTool_desc=Create a CombinedFragment block
+UMLDiagramEditorUtil_OpenModelResourceErrorDialogTitle=Error
+Comments4Group_title=Comments
+Comment1CreationTool_title=Comment
+Comment1CreationTool_desc=Create new Comment
+CommentLink2CreationTool_title=Comment Link
+CommentLink2CreationTool_desc=Link Comment
+NavigatorGroupName_Package_1000_links=links
+NavigatorGroupName_Comment_2005_incominglinks=incoming links
+NavigatorGroupName_Comment_2005_outgoinglinks=outgoing links
+NavigatorGroupName_ElementOwnedComment_3007_target=target
+NavigatorGroupName_ElementOwnedComment_3007_source=source
+NavigatorGroupName_CommentAnnotatedElement_3008_target=target
+NavigatorGroupName_CommentAnnotatedElement_3008_source=source
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/classDiagram_constraints.gmfgraph b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/classDiagram_constraints.gmfgraph
new file mode 100644
index 00000000000..ecfd24c03e2
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/classDiagram_constraints.gmfgraph
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="cnv_constraints">
+ <figures
+ name="">
+ <descriptors
+ name="ConstraintFigure">
+ <actualFigure
+ xsi:type="gmfgraph:CustomFigure"
+ name="ConstraintFigure"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.MultilineConstraintFigure">
+ <children
+ xsi:type="gmfgraph:Label"
+ name="ConstraintFigure_Value">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="ConstraintFigure_Value">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </children>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.0/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="CommentFigure">
+ <actualFigure
+ xsi:type="gmfgraph:ScalablePolygon"
+ name="CommentFigure">
+ <layoutData
+ xsi:type="gmfgraph:GridLayoutData"/>
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <backgroundColor
+ xsi:type="gmfgraph:ConstantColor"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="CommentBody_label">
+ <layoutData
+ xsi:type="gmfgraph:GridLayoutData"
+ grabExcessHorizontalSpace="true"
+ grabExcessVerticalSpace="true"
+ verticalAlignment="FILL"
+ horizontalAlignment="FILL"/>
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ <insets
+ top="2"
+ left="2"
+ bottom="2"
+ right="15"/>
+ </children>
+ <template
+ x="90"/>
+ <template/>
+ <template
+ y="60"/>
+ <template
+ x="100"
+ y="60"/>
+ <template
+ x="100"
+ y="10"/>
+ <template
+ x="90"/>
+ <template
+ x="90"
+ y="10"/>
+ <template
+ x="100"
+ y="10"/>
+ <template
+ x="90"/>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.1/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="CommentLinkFigure">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="CommentLinkFigure"
+ lineKind="LINE_DASHDOT">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="lightGray"/>
+ </actualFigure>
+ </descriptors>
+ </figures>
+ <nodes
+ name="ConstraintNode"
+ figure="ConstraintFigure"/>
+ <nodes
+ name="CommentNode"
+ figure="CommentFigure">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="160"
+ dy="75"/>
+ </facets>
+ </nodes>
+ <connections
+ name="CommentLink"
+ figure="CommentLinkFigure"/>
+ <labels
+ name="Constraint_ValueSpecification"
+ figure="ConstraintFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.0/@accessors.0"/>
+ <labels
+ name="CommentBodyLabel"
+ figure="CommentFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.1/@accessors.0"/>
+</gmfgraph:Canvas>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgen b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgen
new file mode 100644
index 00000000000..a8cef89709d
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgen
@@ -0,0 +1,2387 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI 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/2008/GenModel"
+ xmlns:mutating="http://es.cv.gvcase.mdt.common.gmfgenextension.mutating">
+ <gmfgen:GenEditorGenerator
+ packageNamePrefix="es.cv.gvcase.mdt.uml2.diagram.sequence"
+ modelID="MOSKitt UMLSequence"
+ diagramFileExtension="sequenceuml_diagram"
+ dynamicTemplates="true"
+ templateDirectory="/es.cv.gvcase.mdt.uml2.diagram.def/dynamic-templates/codegen">
+ <audits>
+ <categories
+ id="MOSKItt_Sequence_diagram_constraints"
+ name="MOSKitt Sequence diagram constraints"
+ description="UML2 sequence diagram constraints"
+ path="/0/@audits/@categories.0"/>
+ <categories
+ id="MOSKitt_Sequence_diagram_constraints_LIVE"
+ name="MOSKitt Sequence diagram constraints LIVE"
+ description="UML2 Sequence diagram constraints."
+ path="/0/@audits/@categories.0 /0/@audits/@categories.1"
+ audits="/0/@audits/@rules.0"/>
+ <rules
+ name="Unique name in model container"
+ description="Checks an element's name to be unique in its model container."
+ id="unique_name_in_model_container"
+ rule="/0/@expressionProviders/@providers.0/@expressions.10"
+ message="Another element exists qith that name."
+ useInLiveMode="true"
+ category="/0/@audits/@categories.1">
+ <target
+ xsi:type="gmfgen:GenDomainElementTarget"
+ contextSelector="/0/@audits/@clientContexts.0">
+ <element
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement"/>
+ </target>
+ </rules>
+ <clientContexts
+ ruleTargets="/0/@audits/@rules.0/@target"/>
+ </audits>
+ <diagram
+ visualID="79"
+ editPartClassName="PackageEditPart"
+ itemSemanticEditPolicyClassName="PackageItemSemanticEditPolicy"
+ notationViewFactoryClassName="PackageViewFactory"
+ canonicalEditPolicyClassName="PackageCanonicalEditPolicy"
+ iconProviderPriority="Low"
+ creationWizardCategoryID="es.cv.gvcase.mdt.uml2.diagram"
+ editingDomainID="es.cv.gvcase.mdt.uml2.diagram.SharedEditingDomainID"
+ validationProviderPriority="Low">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="PackageEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
+ <containsShortcutsTo>uml</containsShortcutsTo>
+ <shortcutsProvidedFor>UMLSequence</shortcutsProvidedFor>
+ <domainDiagramElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package"/>
+ <childNodes
+ visualID="2001"
+ editPartClassName="Interaction2EditPart"
+ itemSemanticEditPolicyClassName="Interaction2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Interaction2ViewFactory"
+ canonicalEditPolicyClassName="Interaction2CanonicalEditPolicy"
+ compartments="/0/@diagram/@compartments.1"
+ graphicalNodeEditPolicyClassName="Interaction2GraphicalNodeEditPolicy"
+ createCommandClassName="Interaction2CreateCommand"
+ containers="/0/@diagram/@compartments.1 /0/@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="/0/@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="InteractionRectangleFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class InteractionRectangleFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureInteractionLabelFigure; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureInteractionCompartmentFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public InteractionRectangleFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setFill(false);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure interactionLabel0 = new org.eclipse.draw2d.RectangleFigure();&#xA;interactionLabel0.setFill(false);&#xA;interactionLabel0.setOutline(false);&#xA;&#xA;this.add(interactionLabel0, org.eclipse.draw2d.BorderLayout.TOP);&#xA;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutInteractionLabel0 = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;interactionLabel0.setLayoutManager(layoutInteractionLabel0);&#xA;&#xA;&#xA;&#xA;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure interactionLabelContainer1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure();&#xA;&#xA;&#xA;&#xA;interactionLabelContainer1.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;));&#xA;&#xA;interactionLabel0.add(interactionLabelContainer1, org.eclipse.draw2d.BorderLayout.LEFT);&#xA;&#xA;&#x9;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout layoutInteractionLabelContainer1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout();&#xA;&#xA;&#xA;&#x9;interactionLabelContainer1.setLayoutManager(layoutInteractionLabelContainer1);&#xA;&#xA;&#xA;&#xA;fFigureInteractionLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureInteractionLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureInteractionLabelFigure.setFont(FFIGUREINTERACTIONLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;interactionLabelContainer1.add(fFigureInteractionLabelFigure);&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;fFigureInteractionCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureInteractionCompartmentFigure.setFill(false);&#xA;fFigureInteractionCompartmentFigure.setOutline(false);&#xA;fFigureInteractionCompartmentFigure.setLineWidth(0);&#xA;&#x9;fFigureInteractionCompartmentFigure.setForegroundColor(org.eclipse.draw2d.ColorConstants.white);&#xA;&#xA;this.add(fFigureInteractionCompartmentFigure, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureInteractionLabelFigure() {&#xA;&#x9;&#x9;return fFigureInteractionLabelFigure;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureInteractionCompartmentFigure() {&#xA;&#x9;&#x9;return fFigureInteractionCompartmentFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREINTERACTIONLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 10, org.eclipse.swt.SWT.BOLD);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="600"
+ height="400"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/fragment"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/fragment"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.0">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ <labels
+ visualID="4003"
+ editPartClassName="InteractionName2EditPart"
+ itemSemanticEditPolicyClassName="InteractionName2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="InteractionName2ViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureInteractionLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="sd: {0} "
+ editorPattern="{0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="2002"
+ editPartClassName="LifelineEditPart"
+ itemSemanticEditPolicyClassName="LifelineItemSemanticEditPolicy"
+ notationViewFactoryClassName="LifelineViewFactory"
+ canonicalEditPolicyClassName="LifelineCanonicalEditPolicy"
+ childNodes="/0/@diagram/@childNodes.2"
+ graphicalNodeEditPolicyClassName="LifelineGraphicalNodeEditPolicy"
+ createCommandClassName="LifelineCreateCommand"
+ containers="/0/@diagram/@compartments.1 /0/@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="LifelineEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="LifelineFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class LifelineFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureLifelineLabelFigure; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureExecutionsContainerFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public LifelineFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setFill(false);&#xA;this.setOutline(false);&#xA;this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(100)&#xA;, getMapMode().DPtoLP(200)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure lifelineNameContainerFigure0 = new org.eclipse.draw2d.RectangleFigure();&#xA;&#x9;lifelineNameContainerFigure0.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#x9;lifelineNameContainerFigure0.setBackgroundColor(LIFELINENAMECONTAINERFIGURE0_BACK&#xA;);&#xA;&#xA;lifelineNameContainerFigure0.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(7)&#xA;));&#xA;&#xA;this.add(lifelineNameContainerFigure0, org.eclipse.draw2d.BorderLayout.TOP);&#xA;lifelineNameContainerFigure0.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xA;&#xA;&#xA;fFigureLifelineLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureLifelineLabelFigure.setText(&quot;Lifeline&quot;);&#xA;&#xA;fFigureLifelineLabelFigure.setFont(FFIGURELIFELINELABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;fFigureLifelineLabelFigure.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;&#xA;lifelineNameContainerFigure0.add(fFigureLifelineLabelFigure);&#xA;&#xA;&#xA;&#xA;&#xA;fFigureExecutionsContainerFigure = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureExecutionsContainerFigure.setFill(false);&#xA;fFigureExecutionsContainerFigure.setOutline(false);&#xA;&#xA;this.add(fFigureExecutionsContainerFigure, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;fFigureExecutionsContainerFigure.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xA;&#xA;&#xA;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LifelineDotLineFigure lifelineLineFigure1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LifelineDotLineFigure();&#xA;&#xA;&#xA;&#xA;fFigureExecutionsContainerFigure.add(lifelineLineFigure1);&#xA;&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure executionsContainerFigure1 = new org.eclipse.draw2d.RectangleFigure();&#xA;executionsContainerFigure1.setFill(false);&#xA;executionsContainerFigure1.setOutline(false);&#xA;&#xA;fFigureExecutionsContainerFigure.add(executionsContainerFigure1, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;executionsContainerFigure1.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xA;&#xA;&#xA;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LifelineDotLineFigure lifelineLineFigure2 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LifelineDotLineFigure();&#xA;&#xA;&#xA;&#xA;executionsContainerFigure1.add(lifelineLineFigure2);&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureLifelineLabelFigure() {&#xA;&#x9;&#x9;return fFigureLifelineLabelFigure;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureExecutionsContainerFigure() {&#xA;&#x9;&#x9;return fFigureExecutionsContainerFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Color LIFELINENAMECONTAINERFIGURE0_BACK = new org.eclipse.swt.graphics.Color(null, 253, 253, 221);&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGURELIFELINELABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 10, org.eclipse.swt.SWT.BOLD);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="100"
+ height="250"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Lifeline"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/lifeline"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/lifeline"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.1">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ <labels
+ visualID="4001"
+ editPartClassName="LifelineNameEditPart"
+ itemSemanticEditPolicyClassName="LifelineNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="LifelineNameViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureLifelineLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="{0}: %ADDSTEREOTYPES%"
+ editorPattern="{0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="2003"
+ editPartClassName="BehaviorExecutionSpecificationEditPart"
+ itemSemanticEditPolicyClassName="BehaviorExecutionSpecificationItemSemanticEditPolicy"
+ notationViewFactoryClassName="BehaviorExecutionSpecificationViewFactory"
+ canonicalEditPolicyClassName="BehaviorExecutionSpecificationCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="BehaviorExecutionSpecificationGraphicalNodeEditPolicy"
+ createCommandClassName="BehaviorExecutionSpecificationCreateCommand"
+ containers="/0/@diagram/@childNodes.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="BehaviorExecutionSpecificationEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="BehaviourExecutionFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class BehaviourExecutionFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public BehaviourExecutionFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#x9;this.setBackgroundColor(THIS_BACK&#xA;);&#xA;this.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16)&#xA;, getMapMode().DPtoLP(1000)&#xA;));&#xA;this.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(16)&#xA;, getMapMode().DPtoLP(25)&#xA;));&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Color THIS_BACK = new org.eclipse.swt.graphics.Color(null, 255, 215, 174);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"
+ fixedBackground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="16"
+ height="60"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/BehaviorExecutionSpecification"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/fragment"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/fragment"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.2">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ </childNodes>
+ <childNodes
+ visualID="2004"
+ editPartClassName="CombinedFragmentEditPart"
+ itemSemanticEditPolicyClassName="CombinedFragmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="CombinedFragmentViewFactory"
+ canonicalEditPolicyClassName="CombinedFragmentCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="CombinedFragmentGraphicalNodeEditPolicy"
+ createCommandClassName="CombinedFragmentCreateCommand"
+ containers="/0/@diagram/@compartments.1 /0/@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="CombinedFragmentEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CombinedFragmentFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CombinedFragmentFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCombinedFragmentLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CombinedFragmentFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setFill(false);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure combinedFragmentLabel0 = new org.eclipse.draw2d.RectangleFigure();&#xA;combinedFragmentLabel0.setFill(false);&#xA;combinedFragmentLabel0.setOutline(false);&#xA;&#xA;this.add(combinedFragmentLabel0, org.eclipse.draw2d.BorderLayout.TOP);&#xA;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutCombinedFragmentLabel0 = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;combinedFragmentLabel0.setLayoutManager(layoutCombinedFragmentLabel0);&#xA;&#xA;&#xA;&#xA;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure combinedFragmentLabelContainer1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure();&#xA;&#xA;&#xA;&#xA;combinedFragmentLabelContainer1.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;));&#xA;&#xA;combinedFragmentLabel0.add(combinedFragmentLabelContainer1, org.eclipse.draw2d.BorderLayout.LEFT);&#xA;&#xA;&#x9;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout layoutCombinedFragmentLabelContainer1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout();&#xA;&#xA;&#xA;&#x9;combinedFragmentLabelContainer1.setLayoutManager(layoutCombinedFragmentLabelContainer1);&#xA;&#xA;&#xA;&#xA;fFigureCombinedFragmentLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureCombinedFragmentLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureCombinedFragmentLabelFigure.setFont(FFIGURECOMBINEDFRAGMENTLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;combinedFragmentLabelContainer1.add(fFigureCombinedFragmentLabelFigure);&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCombinedFragmentLabelFigure() {&#xA;&#x9;&#x9;return fFigureCombinedFragmentLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGURECOMBINEDFRAGMENTLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 10, org.eclipse.swt.SWT.BOLD);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="200"
+ height="200"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/CombinedFragment"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/fragment"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/fragment"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.3">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ <labels
+ visualID="4002"
+ editPartClassName="CombinedFragmentInteractionOperatorEditPart"
+ itemSemanticEditPolicyClassName="CombinedFragmentInteractionOperatorItemSemanticEditPolicy"
+ notationViewFactoryClassName="CombinedFragmentInteractionOperatorViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCombinedFragmentLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/CombinedFragment/interactionOperator"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <topLevelNodes
+ visualID="1001"
+ editPartClassName="InteractionEditPart"
+ itemSemanticEditPolicyClassName="InteractionItemSemanticEditPolicy"
+ notationViewFactoryClassName="InteractionViewFactory"
+ canonicalEditPolicyClassName="InteractionCanonicalEditPolicy"
+ compartments="/0/@diagram/@compartments.0"
+ graphicalNodeEditPolicyClassName="InteractionGraphicalNodeEditPolicy"
+ createCommandClassName="InteractionCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="InteractionEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="InteractionRectangleFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class InteractionRectangleFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureInteractionLabelFigure; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureInteractionCompartmentFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public InteractionRectangleFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setFill(false);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure interactionLabel0 = new org.eclipse.draw2d.RectangleFigure();&#xA;interactionLabel0.setFill(false);&#xA;interactionLabel0.setOutline(false);&#xA;&#xA;this.add(interactionLabel0, org.eclipse.draw2d.BorderLayout.TOP);&#xA;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutInteractionLabel0 = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;interactionLabel0.setLayoutManager(layoutInteractionLabel0);&#xA;&#xA;&#xA;&#xA;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure interactionLabelContainer1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure();&#xA;&#xA;&#xA;&#xA;interactionLabelContainer1.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;, getMapMode().DPtoLP(3)&#xA;));&#xA;&#xA;interactionLabel0.add(interactionLabelContainer1, org.eclipse.draw2d.BorderLayout.LEFT);&#xA;&#xA;&#x9;es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout layoutInteractionLabelContainer1 = new es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout();&#xA;&#xA;&#xA;&#x9;interactionLabelContainer1.setLayoutManager(layoutInteractionLabelContainer1);&#xA;&#xA;&#xA;&#xA;fFigureInteractionLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureInteractionLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureInteractionLabelFigure.setFont(FFIGUREINTERACTIONLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;interactionLabelContainer1.add(fFigureInteractionLabelFigure);&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;fFigureInteractionCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureInteractionCompartmentFigure.setFill(false);&#xA;fFigureInteractionCompartmentFigure.setOutline(false);&#xA;fFigureInteractionCompartmentFigure.setLineWidth(0);&#xA;&#x9;fFigureInteractionCompartmentFigure.setForegroundColor(org.eclipse.draw2d.ColorConstants.white);&#xA;&#xA;this.add(fFigureInteractionCompartmentFigure, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureInteractionLabelFigure() {&#xA;&#x9;&#x9;return fFigureInteractionLabelFigure;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureInteractionCompartmentFigure() {&#xA;&#x9;&#x9;return fFigureInteractionCompartmentFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREINTERACTIONLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 10, org.eclipse.swt.SWT.BOLD);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="600"
+ height="400"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.0">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ <labels
+ visualID="4004"
+ editPartClassName="InteractionNameEditPart"
+ itemSemanticEditPolicyClassName="InteractionNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="InteractionNameViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureInteractionLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="sd: {0} "
+ editorPattern="{0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2005"
+ editPartClassName="CommentEditPart"
+ itemSemanticEditPolicyClassName="CommentItemSemanticEditPolicy"
+ notationViewFactoryClassName="CommentViewFactory"
+ canonicalEditPolicyClassName="CommentCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="CommentGraphicalNodeEditPolicy"
+ createCommandClassName="CommentCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="CommentEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CommentFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CommentFigure extends org.eclipse.draw2d.Shape {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCommentBody_label; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CommentFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(90)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(60)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(100)&#xA;, getMapMode().DPtoLP(60)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(100)&#xA;, getMapMode().DPtoLP(10)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(90)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(90)&#xA;, getMapMode().DPtoLP(10)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(100)&#xA;, getMapMode().DPtoLP(10)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(90)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;this.setFill(true);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#x9;this.setBackgroundColor(org.eclipse.draw2d.ColorConstants.white);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureCommentBody_label = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureCommentBody_label.setText(&quot;&quot;);&#xA;&#xA;fFigureCommentBody_label.setFont(FFIGURECOMMENTBODY_LABEL_FONT);&#xA;&#xA;&#xA;&#xA;fFigureCommentBody_label.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(2)&#xA;, getMapMode().DPtoLP(2)&#xA;, getMapMode().DPtoLP(2)&#xA;, getMapMode().DPtoLP(15)&#xA;));&#xA;&#xA;this.add(fFigureCommentBody_label);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private final org.eclipse.draw2d.geometry.PointList myTemplate = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.geometry.Rectangle myTemplateBounds;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public void addPoint(org.eclipse.draw2d.geometry.Point point){&#xA;&#x9;&#x9;myTemplate.addPoint(point);&#xA;&#x9;&#x9;myTemplateBounds = null;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void fillShape(org.eclipse.draw2d.Graphics graphics) {&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.Rectangle bounds = getBounds();&#xA;&#x9;&#x9;graphics.pushState();&#xA;&#x9;&#x9;graphics.translate(bounds.x, bounds.y);&#xA;&#x9;&#x9;graphics.fillPolygon(scalePointList());&#xA;&#x9;&#x9;graphics.popState();&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void outlineShape(org.eclipse.draw2d.Graphics graphics) {&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.Rectangle bounds = getBounds();&#xA;&#x9;&#x9;graphics.pushState();&#xA;&#x9;&#x9;graphics.translate(bounds.x, bounds.y);&#xA;&#x9;&#x9;graphics.drawPolygon(scalePointList());&#xA;&#x9;&#x9;graphics.popState();&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.geometry.Rectangle getTemplateBounds(){&#xA;&#x9;&#x9;if (myTemplateBounds == null){&#xA;&#x9;&#x9;&#x9;myTemplateBounds = myTemplate.getBounds().getCopy().union(0, 0);&#xA;&#x9;&#x9;&#x9;//just safety -- we are going to use this as divider &#xA;&#x9;&#x9;&#x9;if (myTemplateBounds.width &lt; 1){&#xA;&#x9;&#x9;&#x9;&#x9;myTemplateBounds.width = 1;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if (myTemplateBounds.height &lt; 1){&#xA;&#x9;&#x9;&#x9;&#x9;myTemplateBounds.height = 1;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;return myTemplateBounds;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private int[] scalePointList() {&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.Rectangle pointsBounds = getTemplateBounds();&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.Rectangle actualBounds = getBounds();&#xA;&#xA;&#x9;&#x9;float xScale = ((float) actualBounds.width) / pointsBounds.width;&#xA;&#x9;&#x9;float yScale = ((float) actualBounds.height) / pointsBounds.height;&#xA;&#xA;&#x9;&#x9;if (xScale == 1 &amp;&amp; yScale == 1) {&#xA;&#x9;&#x9;&#x9;return myTemplate.toIntArray();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;int[] scaled = (int[]) myTemplate.toIntArray().clone();&#xA;&#x9;&#x9;for (int i = 0; i &lt; scaled.length; i += 2) {&#xA;&#x9;&#x9;&#x9;scaled[i] = (int) Math.floor(scaled[i] * xScale);&#xA;&#x9;&#x9;&#x9;scaled[i + 1] = (int) Math.floor(scaled[i + 1] * yScale);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;return scaled;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCommentBody_label() {&#xA;&#x9;&#x9;return fFigureCommentBody_label;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGURECOMMENTBODY_LABEL_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"
+ fixedBackground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="160"
+ height="75"/>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
+ </modelFacet>
+ <labels
+ visualID="5003"
+ editPartClassName="CommentBodyEditPart"
+ itemSemanticEditPolicyClassName="CommentBodyItemSemanticEditPolicy"
+ notationViewFactoryClassName="CommentBodyViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCommentBody_label"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment/body"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <links
+ visualID="3001"
+ editPartClassName="MessageEditPart"
+ itemSemanticEditPolicyClassName="MessageItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageViewFactory"
+ createCommandClassName="MessageCreateCommand"
+ reorientCommandClassName="MessageReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ displayName="Call (synch.)"
+ editHelperClassName="MessageEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CallSync"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CallSync extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMessageSyncLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CallSync() {&#xA;&#x9;&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureMessageSyncLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureMessageSyncLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureMessageSyncLabelFigure.setFont(FFIGUREMESSAGESYNCLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;this.add(fFigureMessageSyncLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolygonDecoration df = new org.eclipse.draw2d.PolygonDecoration();&#xA;df.setFill(true);&#xA;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#x9;df.setBackgroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(-2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMessageSyncLabelFigure() {&#xA;&#x9;&#x9;return fFigureMessageSyncLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREMESSAGESYNCLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet"
+ modelElementSelector="/0/@expressionProviders/@providers.1/@expressions.0">
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.4">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/owner"/>
+ <targetMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedElement"/>
+ </modelFacet>
+ <labels
+ visualID="4005"
+ editPartClassName="MessageNameEditPart"
+ itemSemanticEditPolicyClassName="MessageNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageNameViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMessageSyncLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ x="1"
+ y="-13"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.1"/>
+ </links>
+ <links
+ visualID="3002"
+ editPartClassName="Message2EditPart"
+ itemSemanticEditPolicyClassName="Message2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Message2ViewFactory"
+ createCommandClassName="Message2CreateCommand"
+ reorientCommandClassName="Message2ReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Call (asynch.)"
+ metamodelType="/0/@diagram/@links.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CallAsync"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CallAsync extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMessageAsyncLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CallAsync() {&#xA;&#x9;&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureMessageAsyncLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureMessageAsyncLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureMessageAsyncLabelFigure.setFont(FFIGUREMESSAGEASYNCLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;this.add(fFigureMessageAsyncLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(-2)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMessageAsyncLabelFigure() {&#xA;&#x9;&#x9;return fFigureMessageAsyncLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREMESSAGEASYNCLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet"
+ modelElementSelector="/0/@expressionProviders/@providers.1/@expressions.2">
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.1/@expressions.3">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message/messageSort"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.5">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/owner"/>
+ <targetMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedElement"/>
+ </modelFacet>
+ <labels
+ visualID="4006"
+ editPartClassName="MessageName2EditPart"
+ itemSemanticEditPolicyClassName="MessageName2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageName2ViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMessageAsyncLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ x="1"
+ y="-13"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.4"/>
+ </links>
+ <links
+ visualID="3003"
+ editPartClassName="Message3EditPart"
+ itemSemanticEditPolicyClassName="Message3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Message3ViewFactory"
+ createCommandClassName="Message3CreateCommand"
+ reorientCommandClassName="Message3ReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Reply"
+ metamodelType="/0/@diagram/@links.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="Reply"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class Reply extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMessageReplyLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public Reply() {&#xA;&#x9;&#x9;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureMessageReplyLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureMessageReplyLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureMessageReplyLabelFigure.setFont(FFIGUREMESSAGEREPLYLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;this.add(fFigureMessageReplyLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(-2)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMessageReplyLabelFigure() {&#xA;&#x9;&#x9;return fFigureMessageReplyLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREMESSAGEREPLYLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet"
+ modelElementSelector="/0/@expressionProviders/@providers.1/@expressions.5">
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.1/@expressions.6">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message/messageSort"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.6">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/owner"/>
+ <targetMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedElement"/>
+ </modelFacet>
+ <labels
+ visualID="4007"
+ editPartClassName="MessageName3EditPart"
+ itemSemanticEditPolicyClassName="MessageName3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageName3ViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMessageReplyLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ x="1"
+ y="-13"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.7"/>
+ </links>
+ <links
+ visualID="3004"
+ editPartClassName="Message4EditPart"
+ itemSemanticEditPolicyClassName="Message4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Message4ViewFactory"
+ createCommandClassName="Message4CreateCommand"
+ reorientCommandClassName="Message4ReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Signal"
+ metamodelType="/0/@diagram/@links.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="Signal"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class Signal extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMessageSignalLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public Signal() {&#xA;&#x9;&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureMessageSignalLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureMessageSignalLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureMessageSignalLabelFigure.setFont(FFIGUREMESSAGESIGNALLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;this.add(fFigureMessageSignalLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(-2)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMessageSignalLabelFigure() {&#xA;&#x9;&#x9;return fFigureMessageSignalLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREMESSAGESIGNALLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet"
+ modelElementSelector="/0/@expressionProviders/@providers.1/@expressions.8">
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.1/@expressions.9">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message/messageSort"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.7">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/owner"/>
+ <targetMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedElement"/>
+ </modelFacet>
+ <labels
+ visualID="4008"
+ editPartClassName="MessageName4EditPart"
+ itemSemanticEditPolicyClassName="MessageName4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageName4ViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMessageSignalLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ x="1"
+ y="-13"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.10"/>
+ </links>
+ <links
+ visualID="3005"
+ editPartClassName="Message5EditPart"
+ itemSemanticEditPolicyClassName="Message5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Message5ViewFactory"
+ createCommandClassName="Message5CreateCommand"
+ reorientCommandClassName="Message5ReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Create"
+ metamodelType="/0/@diagram/@links.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="Creation"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class Creation extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMessageCreationLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public Creation() {&#xA;&#x9;&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureMessageCreationLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureMessageCreationLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureMessageCreationLabelFigure.setFont(FFIGUREMESSAGECREATIONLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;this.add(fFigureMessageCreationLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(-2)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMessageCreationLabelFigure() {&#xA;&#x9;&#x9;return fFigureMessageCreationLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREMESSAGECREATIONLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet"
+ modelElementSelector="/0/@expressionProviders/@providers.1/@expressions.11">
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.1/@expressions.12">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message/messageSort"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.8">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/owner"/>
+ <targetMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedElement"/>
+ </modelFacet>
+ <labels
+ visualID="4009"
+ editPartClassName="MessageName5EditPart"
+ itemSemanticEditPolicyClassName="MessageName5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageName5ViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMessageCreationLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ x="1"
+ y="-13"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.13"/>
+ </links>
+ <links
+ visualID="3006"
+ editPartClassName="Message6EditPart"
+ itemSemanticEditPolicyClassName="Message6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Message6ViewFactory"
+ createCommandClassName="Message6CreateCommand"
+ reorientCommandClassName="Message6ReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Destruction"
+ metamodelType="/0/@diagram/@links.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="Destruction"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class Destruction extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMessageDestructionLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public Destruction() {&#xA;&#x9;&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureMessageDestructionLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureMessageDestructionLabelFigure.setText(&quot;&quot;);&#xA;&#xA;fFigureMessageDestructionLabelFigure.setFont(FFIGUREMESSAGEDESTRUCTIONLABELFIGURE_FONT);&#xA;&#xA;&#xA;&#xA;this.add(fFigureMessageDestructionLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(2)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-2)&#xA;, getMapMode().DPtoLP(-2)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMessageDestructionLabelFigure() {&#xA;&#x9;&#x9;return fFigureMessageDestructionLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREMESSAGEDESTRUCTIONLABELFIGURE_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), &quot;SANS&quot;, 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>es.cv.gvcase.mdt.uml2.diagram.common</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet"
+ modelElementSelector="/0/@expressionProviders/@providers.1/@expressions.14">
+ <metaClass
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message"/>
+ <containmentMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <childMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction/message"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.1/@expressions.15">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Message/messageSort"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ value="/0/@expressionProviders/@providers.0/@expressions.9">
+ <feature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/owner"/>
+ <targetMetaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedElement"/>
+ </modelFacet>
+ <labels
+ visualID="4010"
+ editPartClassName="MessageName6EditPart"
+ itemSemanticEditPolicyClassName="MessageName6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MessageName6ViewFactory"
+ readOnly="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMessageDestructionLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedFont="true"/>
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ x="1"
+ y="-13"/>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
+ </modelFacet>
+ </labels>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.16"/>
+ </links>
+ <links
+ visualID="3007"
+ editPartClassName="ElementOwnedCommentEditPart"
+ itemSemanticEditPolicyClassName="ElementOwnedCommentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ElementOwnedCommentViewFactory"
+ createCommandClassName="ElementOwnedCommentCreateCommand"
+ reorientCommandClassName="ElementOwnedCommentReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Comment"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CommentLinkFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CommentLinkFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CommentLinkFigure() {&#xA;&#x9;&#x9;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASHDOT);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.lightGray);&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLinkModelFacet">
+ <metaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
+ </modelFacet>
+ <creationConstraints
+ targetEnd="/0/@expressionProviders/@providers.1/@expressions.17"/>
+ </links>
+ <links
+ visualID="3008"
+ editPartClassName="CommentAnnotatedElementEditPart"
+ itemSemanticEditPolicyClassName="CommentAnnotatedElementItemSemanticEditPolicy"
+ notationViewFactoryClassName="CommentAnnotatedElementViewFactory"
+ createCommandClassName="CommentAnnotatedElementCreateCommand"
+ reorientCommandClassName="CommentAnnotatedElementReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ displayName="Comment link"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CommentLinkFigure"
+ classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CommentLinkFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CommentLinkFigure() {&#xA;&#x9;&#x9;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASHDOT);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.lightGray);&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLinkModelFacet">
+ <metaFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment/annotatedElement"/>
+ </modelFacet>
+ <creationConstraints
+ sourceEnd="/0/@expressionProviders/@providers.1/@expressions.18"/>
+ </links>
+ <compartments
+ visualID="5001"
+ editPartClassName="InteractionInteractionCompartmentEditPart"
+ itemSemanticEditPolicyClassName="InteractionInteractionCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="InteractionInteractionCompartmentViewFactory"
+ canonicalEditPolicyClassName="InteractionInteractionCompartmentCanonicalEditPolicy"
+ childNodes="/0/@diagram/@childNodes.0 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.3"
+ title="InteractionCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="/0/@diagram/@topLevelNodes.0"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureInteractionCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ </viewmap>
+ </compartments>
+ <compartments
+ visualID="5002"
+ editPartClassName="InteractionInteractionCompartment2EditPart"
+ itemSemanticEditPolicyClassName="InteractionInteractionCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="InteractionInteractionCompartment2ViewFactory"
+ canonicalEditPolicyClassName="InteractionInteractionCompartment2CanonicalEditPolicy"
+ childNodes="/0/@diagram/@childNodes.0 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.3"
+ title="InteractionCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="/0/@diagram/@childNodes.0"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureInteractionCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ </viewmap>
+ </compartments>
+ <palette>
+ <groups
+ title="Interaction"
+ description=""
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Interaction"
+ description="Create an Interaction"
+ genNodes="/0/@diagram/@topLevelNodes.0 /0/@diagram/@childNodes.0"/>
+ </groups>
+ <groups
+ title="Objects"
+ description=""
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Lifeline"
+ description="Create a Lifeline"
+ genNodes="/0/@diagram/@childNodes.1"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Execution Behaviour"
+ description="Create an Execution Behaviour"
+ genNodes="/0/@diagram/@childNodes.2"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="CombinedFragment"
+ description="Create a CombinedFragment block"
+ genNodes="/0/@diagram/@childNodes.3"/>
+ </groups>
+ <groups
+ title="Messages"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Call (synch.)"
+ description="Create a synchronous message call"
+ genLinks="/0/@diagram/@links.0"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Call (asynch.)"
+ description="Create an asynchronous message call"
+ genLinks="/0/@diagram/@links.1"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Reply"
+ description="Create a reply message"
+ genLinks="/0/@diagram/@links.2"/>
+ <entries
+ xsi:type="gmfgen:Separator"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Send Signal"
+ genLinks="/0/@diagram/@links.3"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Creation Event"
+ genLinks="/0/@diagram/@links.4"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Destruction Event"
+ genLinks="/0/@diagram/@links.5"/>
+ </groups>
+ <groups
+ title="Comments"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Comment"
+ description="Create new Comment"
+ genNodes="/0/@diagram/@topLevelNodes.1"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Comment Link"
+ description="Link Comment"
+ genLinks="/0/@diagram/@links.6 /0/@diagram/@links.7"/>
+ </groups>
+ </palette>
+ <preferencePages
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence.general"
+ name="MOSKitt UML Sequence Diagram">
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence.appearance"
+ name="Appearance"
+ kind="Appearance"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence.connections"
+ name="Connections"
+ kind="Connections"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence.printing"
+ name="Printing"
+ kind="Printing"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence.rulersAndGrid"
+ name="Rulers And Grid"
+ kind="RulersAndGrid"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence.pathmaps"
+ name="Pathmaps"
+ kind="Pathmaps"/>
+ </preferencePages>
+ </diagram>
+ <plugin
+ iD="es.cv.gvcase.mdt.uml2.diagram.sequence"
+ name="MOSKitt UML Sequence Diagram Editor"
+ provider="gvCASE Project"
+ version="1.0.0.beta02"
+ printingEnabled="true"/>
+ <editor/>
+ <navigator>
+ <childReferences
+ child="/0/@diagram"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@childNodes.0"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@childNodes.2"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@childNodes.1"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@childNodes.3"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@childNodes.0"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@childNodes.1"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@childNodes.3"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@topLevelNodes.0"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@topLevelNodes.1"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.0"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.0"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.1"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.1"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.2"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.2"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.3"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.3"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.3"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.3"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.3"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.3"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.3"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.3"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.3"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.3"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.3"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.3"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.3"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.3"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.4"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.4"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.4"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.4"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.4"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.4"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.4"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.4"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.4"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.4"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.4"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.4"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.4"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.4"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.5"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.5"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.5"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.5"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.5"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.5"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.5"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.5"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.5"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.5"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.5"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.5"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.5"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.5"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.6"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.6"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.6"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.6"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.6"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.6"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.6"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.6"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.6"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram"
+ child="/0/@diagram/@links.7"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.0"
+ child="/0/@diagram/@links.7"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.7"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.0"
+ child="/0/@diagram/@links.7"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.1"
+ child="/0/@diagram/@links.7"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@childNodes.2"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.2"
+ child="/0/@diagram/@links.7"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@childNodes.3"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@childNodes.3"
+ child="/0/@diagram/@links.7"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@links.7"
+ child="/0/@diagram/@topLevelNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="/0/@diagram/@topLevelNodes.1"
+ child="/0/@diagram/@links.7"
+ 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="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#/"/>
+ <expressionProviders>
+ <providers
+ xsi:type="gmfgen:GenJavaExpressionProvider">
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ body="namedElementInitName"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="// TODO"/>
+ </providers>
+ <providers
+ xsi:type="gmfgen:GenExpressionInterpreter">
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self.messageSort=MessageSort::synchCall"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self.messageSort=MessageSort::asynchCall"/>
+ <expressions
+ body="MessageSort::asynchCall"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self.messageSort=MessageSort::reply"/>
+ <expressions
+ body="MessageSort::reply"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self.messageSort=MessageSort::asynchSignal"/>
+ <expressions
+ body="MessageSort::asynchSignal"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self.messageSort=MessageSort::createMessage"/>
+ <expressions
+ body="MessageSort::createMessage"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self.messageSort=MessageSort::deleteMessage"/>
+ <expressions
+ body="MessageSort::deleteMessage"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="not(self.annotatedElement->includes(oppositeEnd))"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="not(self.annotatedElement->includes(oppositeEnd))"/>
+ </providers>
+ </expressionProviders>
+ </gmfgen:GenEditorGenerator>
+ <mutating:MutatingCanvas>
+ <alternateCanvases
+ diagram="/0/@diagram">
+ <domainDiagramElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Interaction"/>
+ </alternateCanvases>
+ </mutating:MutatingCanvas>
+</xmi:XMI>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgraph b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgraph
new file mode 100644
index 00000000000..d26e4c8c6cc
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfgraph
@@ -0,0 +1,564 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="Sequence Diagram">
+ <figures
+ name="Sequence Gallery"
+ implementationBundle="es.cv.gvcase.mdt.uml2.diagram.common">
+ <figures
+ xsi:type="gmfgraph:PolylineDecoration"
+ name="OpenArrow">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <template
+ x="-2"
+ y="2"/>
+ <template/>
+ <template
+ x="-2"
+ y="-2"/>
+ </figures>
+ <figures
+ xsi:type="gmfgraph:PolygonDecoration"
+ name="ClosedArrow">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <backgroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <template
+ x="-2"
+ y="2"/>
+ <template/>
+ <template
+ x="-2"
+ y="-2"/>
+ <template
+ x="-2"
+ y="2"/>
+ </figures>
+ <descriptors
+ name="InteractionRectangleFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Rectangle"
+ name="InteractionRectangleFigure"
+ fill="false">
+ <layout
+ xsi:type="gmfgraph:BorderLayout"/>
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="-2"
+ left="3"
+ bottom="3"
+ right="3"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="InteractionLabel"
+ outline="false"
+ fill="false">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ alignment="BEGINNING"
+ vertical="true"/>
+ <layout
+ xsi:type="gmfgraph:BorderLayout"/>
+ <children
+ xsi:type="gmfgraph:CustomFigure"
+ name="InteractionLabelContainer"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ alignment="BEGINNING"/>
+ <layout
+ xsi:type="gmfgraph:CustomLayout"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout"/>
+ <insets
+ top="3"
+ left="3"
+ bottom="3"
+ right="3"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="InteractionLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"
+ height="10"
+ style="BOLD"/>
+ </children>
+ </children>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="InteractionCompartmentFigure"
+ outline="false"
+ fill="false"
+ lineWidth="0">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ vertical="true"/>
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.0/@actualFigure/@children.0/@children.0/@children.0"/>
+ <accessors
+ figure="//@figures.0/@descriptors.0/@actualFigure/@children.1"/>
+ </descriptors>
+ <descriptors
+ name="LifelineFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Rectangle"
+ name="LifelineFigure"
+ outline="false"
+ fill="false">
+ <layout
+ xsi:type="gmfgraph:BorderLayout"/>
+ <preferredSize
+ dx="100"
+ dy="200"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="LifelineNameContainerFigure">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ alignment="BEGINNING"
+ vertical="true"/>
+ <layout
+ xsi:type="gmfgraph:StackLayout"/>
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <backgroundColor
+ xsi:type="gmfgraph:RGBColor"
+ red="253"
+ green="253"
+ blue="221"/>
+ <insets
+ top="7"
+ left="7"
+ bottom="7"
+ right="7"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="LifelineLabelFigure"
+ text="Lifeline">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"
+ height="10"
+ style="BOLD"/>
+ <insets
+ top="3"
+ bottom="3"/>
+ </children>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ExecutionsContainerFigure"
+ outline="false"
+ fill="false">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ vertical="true"/>
+ <layout
+ xsi:type="gmfgraph:StackLayout"/>
+ <children
+ xsi:type="gmfgraph:CustomFigure"
+ name="LifelineLineFigure"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LifelineDotLineFigure"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ExecutionsContainerFigure"
+ outline="false"
+ fill="false">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ vertical="true"/>
+ <layout
+ xsi:type="gmfgraph:StackLayout"/>
+ <children
+ xsi:type="gmfgraph:CustomFigure"
+ name="LifelineLineFigure"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LifelineDotLineFigure"/>
+ </children>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.1/@actualFigure/@children.0/@children.0"/>
+ <accessors
+ figure="//@figures.0/@descriptors.1/@actualFigure/@children.1"/>
+ </descriptors>
+ <descriptors
+ name="BehaviourExecutionFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Rectangle"
+ name="BehaviourExecutionFigure">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <backgroundColor
+ xsi:type="gmfgraph:RGBColor"
+ red="255"
+ green="215"
+ blue="174"/>
+ <maximumSize
+ dx="16"
+ dy="1000"/>
+ <minimumSize
+ dx="16"
+ dy="25"/>
+ </actualFigure>
+ </descriptors>
+ <descriptors
+ name="CallSync">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="CallSync"
+ targetDecoration="//@figures.0/@figures.1">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MessageSyncLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.3/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="CallAsync">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="CallAsync"
+ targetDecoration="//@figures.0/@figures.0">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MessageAsyncLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.4/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="Reply">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="Reply"
+ lineKind="LINE_DASH"
+ targetDecoration="//@figures.0/@figures.0">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MessageReplyLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.5/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="Signal">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="Signal"
+ targetDecoration="//@figures.0/@figures.0">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MessageSignalLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.6/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="Creation">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="Creation"
+ targetDecoration="//@figures.0/@figures.0">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MessageCreationLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.7/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="Destruction">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="Destruction"
+ targetDecoration="//@figures.0/@figures.0">
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MessageDestructionLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"/>
+ </children>
+ </actualFigure>
+ <accessors
+ figure="//@figures.0/@descriptors.8/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="CombinedFragmentFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Rectangle"
+ name="CombinedFragmentRectangleFigure"
+ fill="false">
+ <layout
+ xsi:type="gmfgraph:BorderLayout"/>
+ <foregroundColor
+ xsi:type="gmfgraph:ConstantColor"
+ value="black"/>
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="-2"
+ left="3"
+ bottom="3"
+ right="3"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="CombinedFragmentLabel"
+ outline="false"
+ fill="false">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ alignment="BEGINNING"
+ vertical="true"/>
+ <layout
+ xsi:type="gmfgraph:BorderLayout"/>
+ <children
+ xsi:type="gmfgraph:CustomFigure"
+ name="CombinedFragmentLabelContainer"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.InteractionFigure">
+ <layoutData
+ xsi:type="gmfgraph:BorderLayoutData"
+ alignment="BEGINNING"/>
+ <layout
+ xsi:type="gmfgraph:CustomLayout"
+ qualifiedClassName="es.cv.gvcase.mdt.uml2.diagram.common.draw2d.LeftToolbarLayout"/>
+ <insets
+ top="3"
+ left="3"
+ bottom="3"
+ right="3"/>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="CombinedFragmentLabelFigure">
+ <font
+ xsi:type="gmfgraph:BasicFont"
+ faceName="SANS"
+ height="10"
+ style="BOLD"/>
+ </children>
+ </children>
+ </children>
+ </actualFigure>
+ <accessors
+ accessor="getFigureCombinedFragmentLabelFigure"
+ figure="//@figures.0/@descriptors.9/@actualFigure/@children.0/@children.0/@children.0"/>
+ </descriptors>
+ </figures>
+ <nodes
+ name="InteractionNode"
+ figure="InteractionRectangleFigure">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="600"
+ dy="400"/>
+ </facets>
+ </nodes>
+ <nodes
+ name="LifelineNode"
+ figure="LifelineFigure">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="100"
+ dy="250"/>
+ </facets>
+ </nodes>
+ <nodes
+ name="BehaviourExecutionNode"
+ figure="BehaviourExecutionFigure">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="16"
+ dy="60"/>
+ </facets>
+ </nodes>
+ <nodes
+ name="CombinedFragmentNode"
+ figure="CombinedFragmentFigure">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="200"
+ dy="200"/>
+ </facets>
+ </nodes>
+ <connections
+ name="CallSyncLink"
+ figure="CallSync"/>
+ <connections
+ name="CallAsyncLink"
+ figure="CallAsync"/>
+ <connections
+ name="ReplyLink"
+ figure="Reply"/>
+ <connections
+ name="SignalLink"
+ figure="Signal"/>
+ <connections
+ name="CreateLink"
+ figure="Creation"/>
+ <connections
+ name="DestructionLink"
+ figure="Destruction"/>
+ <compartments
+ name="InteractionCompartment"
+ figure="InteractionRectangleFigure"
+ accessor="//@figures.0/@descriptors.0/@accessors.1"/>
+ <compartments
+ name="ExcecutionCompartment"
+ figure="LifelineFigure"
+ accessor="//@figures.0/@descriptors.1/@accessors.1"/>
+ <labels
+ name="InteractionLabel"
+ figure="InteractionRectangleFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.0/@accessors.0"/>
+ <labels
+ name="LifelineLabel"
+ figure="LifelineFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.1/@accessors.0"/>
+ <labels
+ name="CombinedFragmentLabel"
+ figure="CombinedFragmentFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.9/@accessors.0"/>
+ <labels
+ name="MessageSyncLabel"
+ figure="CallSync"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.3/@accessors.0">
+ <facets
+ xsi:type="gmfgraph:AlignmentFacet"
+ alignment="CENTER"/>
+ <facets
+ xsi:type="gmfgraph:LabelOffsetFacet"
+ x="1"
+ y="-13"/>
+ </labels>
+ <labels
+ name="MessageAsyncLabel"
+ figure="CallAsync"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.4/@accessors.0">
+ <facets
+ xsi:type="gmfgraph:AlignmentFacet"
+ alignment="CENTER"/>
+ <facets
+ xsi:type="gmfgraph:LabelOffsetFacet"
+ x="1"
+ y="-13"/>
+ </labels>
+ <labels
+ name="MessageReplyLabel"
+ figure="Reply"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.5/@accessors.0">
+ <facets
+ xsi:type="gmfgraph:AlignmentFacet"
+ alignment="CENTER"/>
+ <facets
+ xsi:type="gmfgraph:LabelOffsetFacet"
+ x="1"
+ y="-13"/>
+ </labels>
+ <labels
+ name="MessageSignalLabel"
+ figure="Signal"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.6/@accessors.0">
+ <facets
+ xsi:type="gmfgraph:AlignmentFacet"
+ alignment="CENTER"/>
+ <facets
+ xsi:type="gmfgraph:LabelOffsetFacet"
+ x="1"
+ y="-13"/>
+ </labels>
+ <labels
+ name="MessageCreationLabel"
+ figure="Creation"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.7/@accessors.0">
+ <facets
+ xsi:type="gmfgraph:AlignmentFacet"
+ alignment="CENTER"/>
+ <facets
+ xsi:type="gmfgraph:LabelOffsetFacet"
+ x="1"
+ y="-13"/>
+ </labels>
+ <labels
+ name="MessageDestructionLabel"
+ figure="Destruction"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.8/@accessors.0">
+ <facets
+ xsi:type="gmfgraph:AlignmentFacet"
+ alignment="CENTER"/>
+ <facets
+ xsi:type="gmfgraph:LabelOffsetFacet"
+ x="1"
+ y="-13"/>
+ </labels>
+</gmfgraph:Canvas>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfmap b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfmap
new file mode 100644
index 00000000000..69ed6687c77
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmfmap
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
+ <ownedChild>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="sd: {0} "
+ editorPattern="{0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#InteractionLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.0"/>
+ <diagramNode
+ href="sequenceDiagram.gmfgraph#InteractionNode"/>
+ <children
+ compartment="//@nodes.0/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
+ </children>
+ <children
+ compartment="//@nodes.0/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/lifeline"/>
+ <ownedChild>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}: %ADDSTEREOTYPES%"
+ editorPattern="{0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#LifelineLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
+ <diagramNode
+ href="sequenceDiagram.gmfgraph#LifelineNode"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
+ <ownedChild>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehaviorExecutionSpecification"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
+ <diagramNode
+ href="sequenceDiagram.gmfgraph#BehaviourExecutionNode"/>
+ </ownedChild>
+ </children>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.0/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
+ <ownedChild>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#CombinedFragmentLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment/interactionOperator"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.1/@tools.2"/>
+ <diagramNode
+ href="sequenceDiagram.gmfgraph#CombinedFragmentNode"/>
+ </ownedChild>
+ </children>
+ <compartments
+ children="//@nodes.0/@ownedChild/@children.0 //@nodes.0/@ownedChild/@children.1 //@nodes.0/@ownedChild/@children.2">
+ <compartment
+ href="sequenceDiagram.gmfgraph#InteractionCompartment"/>
+ </compartments>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedComment"/>
+ <ownedChild>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping">
+ <diagramLabel
+ href="classDiagram_constraints.gmfgraph#CommentBodyLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment/body"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.3/@tools.0"/>
+ <diagramNode
+ href="classDiagram_constraints.gmfgraph#CommentNode"/>
+ </ownedChild>
+ </nodes>
+ <links>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
+ <domainSpecialization
+ body="self.messageSort=MessageSort::synchCall"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#MessageSyncLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.2/@tools.0"/>
+ <diagramLink
+ href="sequenceDiagram.gmfgraph#CallSyncLink"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/owner"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedElement"/>
+ <creationConstraints>
+ <targetEnd
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
+ <domainSpecialization
+ body="self.messageSort=MessageSort::asynchCall"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message/messageSort"/>
+ <value
+ body="MessageSort::asynchCall"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#MessageAsyncLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.2/@tools.1"/>
+ <diagramLink
+ href="sequenceDiagram.gmfgraph#CallAsyncLink"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/owner"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedElement"/>
+ <creationConstraints>
+ <targetEnd
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
+ <domainSpecialization
+ body="self.messageSort=MessageSort::reply"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message/messageSort"/>
+ <value
+ body="MessageSort::reply"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#MessageReplyLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.2/@tools.2"/>
+ <diagramLink
+ href="sequenceDiagram.gmfgraph#ReplyLink"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/owner"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedElement"/>
+ <creationConstraints>
+ <targetEnd
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
+ <domainSpecialization
+ body="self.messageSort=MessageSort::asynchSignal"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message/messageSort"/>
+ <value
+ body="MessageSort::asynchSignal"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#MessageSignalLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.2/@tools.4"/>
+ <diagramLink
+ href="sequenceDiagram.gmfgraph#SignalLink"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/owner"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedElement"/>
+ <creationConstraints>
+ <targetEnd
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
+ <domainSpecialization
+ body="self.messageSort=MessageSort::createMessage"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message/messageSort"/>
+ <value
+ body="MessageSort::createMessage"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#MessageCreationLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.2/@tools.5"/>
+ <diagramLink
+ href="sequenceDiagram.gmfgraph#CreateLink"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/owner"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedElement"/>
+ <creationConstraints>
+ <targetEnd
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
+ <domainSpecialization
+ body="self.messageSort=MessageSort::deleteMessage"/>
+ <domainInitializer
+ xsi:type="gmfmap:FeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message/messageSort"/>
+ <value
+ body="MessageSort::deleteMessage"/>
+ </initializers>
+ <initializers
+ xsi:type="gmfmap:FeatureValueSpec">
+ <feature
+ xsi:type="ecore:EAttribute"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ <value
+ body="namedElementInitName"
+ language="java"/>
+ </initializers>
+ </domainInitializer>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ readOnly="true"
+ viewPattern="%ADDSTEREOTYPES% {0}"
+ editPattern="{0}">
+ <diagramLabel
+ href="sequenceDiagram.gmfgraph#MessageDestructionLabel"/>
+ <features
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
+ </labelMappings>
+ <containmentFeature
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.2/@tools.6"/>
+ <diagramLink
+ href="sequenceDiagram.gmfgraph#DestructionLink"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/owner"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedElement"/>
+ <creationConstraints>
+ <targetEnd
+ body="((self.oclIsKindOf(uml::ExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)) and (oppositeEnd.oclIsKindOf(uml::ExecutionSpecification) or oppositeEnd.oclIsKindOf(uml::Lifeline))) and (self.eContainer() = oppositeEnd.eContainer())"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.3/@tools.1"/>
+ <diagramLink
+ href="classDiagram_constraints.gmfgraph#CommentLink"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Element/ownedComment"/>
+ <creationConstraints>
+ <targetEnd
+ body="not(self.annotatedElement->includes(oppositeEnd))"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="sequenceDiagram.gmftool#//@palette/@tools.3/@tools.1"/>
+ <diagramLink
+ href="classDiagram_constraints.gmfgraph#CommentLink"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Comment/annotatedElement"/>
+ <creationConstraints>
+ <sourceEnd
+ body="not(self.annotatedElement->includes(oppositeEnd))"/>
+ </creationConstraints>
+ </links>
+ <diagram>
+ <diagramCanvas
+ href="sequenceDiagram.gmfgraph#Sequence Diagram"/>
+ <domainModel
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/>
+ <domainMetaElement
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ <palette
+ href="sequenceDiagram.gmftool#//@palette"/>
+ </diagram>
+ <audits
+ id="MOSKItt_Sequence_diagram_constraints"
+ name="MOSKitt Sequence diagram constraints"
+ description="UML2 sequence diagram constraints">
+ <childContainers
+ id="MOSKitt_Sequence_diagram_constraints_LIVE"
+ name="MOSKitt Sequence diagram constraints LIVE"
+ description="UML2 Sequence diagram constraints.">
+ <audits
+ name="Unique name in model container"
+ description="Checks an element's name to be unique in its model container."
+ id="unique_name_in_model_container"
+ useInLiveMode="true"
+ message="Another element exists qith that name.">
+ <rule
+ body="// TODO"
+ language="java"/>
+ <target
+ xsi:type="gmfmap:DomainElementTarget">
+ <element
+ href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+ </target>
+ </audits>
+ </childContainers>
+ </audits>
+</gmfmap:Mapping>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmftool b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmftool
new file mode 100644
index 00000000000..d4299ea3e34
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.gmftool
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="Sequence Diagram"
+ description="Sequence Diagram Palette">
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Interaction"
+ description=""
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Interaction"
+ description="Create an Interaction"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Objects"
+ description=""
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Lifeline"
+ description="Create a Lifeline"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Execution Behaviour"
+ description="Create an Execution Behaviour"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="CombinedFragment"
+ description="Create a CombinedFragment block"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Messages"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Call (synch.)"
+ description="Create a synchronous message call"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Call (asynch.)"
+ description="Create an asynchronous message call"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Reply"
+ description="Create a reply message"/>
+ <tools
+ xsi:type="gmftool:PaletteSeparator"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Send Signal"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Creation Event"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Destruction Event"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Comments"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Comment"
+ description="Create new Comment"/>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="Comment Link"
+ description="Link Comment"/>
+ </tools>
+ </palette>
+</gmftool:ToolRegistry>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.trace b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.trace
new file mode 100644
index 00000000000..8d6eac1a2d8
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/model/sequenceDiagram.trace
@@ -0,0 +1,97 @@
+<?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="1001"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Interaction') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Package') and _containmentMF_.name = 'packagedElement')">
+ <nodeLabelTraces
+ visualID="4004"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="5001"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2005"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Comment') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Element') and _containmentMF_.name = 'ownedComment')">
+ <nodeLabelTraces
+ visualID="5003"
+ queryText="true"/>
+ </nodeTraces>
+ <childNodeTraces
+ visualID="2001"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Interaction') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Interaction') and _containmentMF_.name = 'fragment')">
+ <nodeLabelTraces
+ visualID="4003"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="5002"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="2002"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Lifeline') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Interaction') and _containmentMF_.name = 'lifeline')">
+ <nodeLabelTraces
+ visualID="4001"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="2003"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'BehaviorExecutionSpecification') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Interaction') and _containmentMF_.name = 'fragment')"/>
+ <childNodeTraces
+ visualID="2004"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'CombinedFragment') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Interaction') and _containmentMF_.name = 'fragment')">
+ <nodeLabelTraces
+ visualID="4002"
+ queryText="true"/>
+ </childNodeTraces>
+ <linkTraces
+ visualID="3001"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Message')">
+ <linkLabelTraces
+ visualID="4005"
+ queryText="true"/>
+ </linkTraces>
+ <linkTraces
+ visualID="3002"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Message')">
+ <linkLabelTraces
+ visualID="4006"
+ queryText="true"/>
+ </linkTraces>
+ <linkTraces
+ visualID="3003"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Message')">
+ <linkLabelTraces
+ visualID="4007"
+ queryText="true"/>
+ </linkTraces>
+ <linkTraces
+ visualID="3004"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Message')">
+ <linkLabelTraces
+ visualID="4008"
+ queryText="true"/>
+ </linkTraces>
+ <linkTraces
+ visualID="3005"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Message')">
+ <linkLabelTraces
+ visualID="4009"
+ queryText="true"/>
+ </linkTraces>
+ <linkTraces
+ visualID="3006"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Message')">
+ <linkLabelTraces
+ visualID="4010"
+ queryText="true"/>
+ </linkTraces>
+ <linkTraces
+ visualID="3007"
+ queryText="modelFacet.oclIsKindOf(gmfgen::FeatureLinkModelFacet) and (let _feature_:ecore::EStructuralFeature = modelFacet.oclAsType(gmfgen::FeatureLinkModelFacet).metaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _feature_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Element') and _feature_.name = 'ownedComment')"/>
+ <linkTraces
+ visualID="3008"
+ queryText="modelFacet.oclIsKindOf(gmfgen::FeatureLinkModelFacet) and (let _feature_:ecore::EStructuralFeature = modelFacet.oclAsType(gmfgen::FeatureLinkModelFacet).metaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _feature_.eContainingClass in _eClass_.ePackage.nsURI = 'http://www.eclipse.org/uml2/2.1.0/UML' and _eClass_.name = 'Comment') and _feature_.name = 'annotatedElement')"/>
+</trace:TraceModel>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.properties b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.properties
new file mode 100644
index 00000000000..2c607f0576d
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.properties
@@ -0,0 +1,94 @@
+##########################################################################################
+# Copyright (c) 2008 Conselleria de Infraestructuras y Transporte, Generalitat
+# de la Comunitat Valenciana . All rights reserved. This program
+# and the accompanying materials are made available under the terms of the
+# Eclipse Public License v1.0 which accompanies this distribution, and is
+# available at http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors: Francisco Javier Cano Munoz (Prodevelop) - initial API implementation
+#
+########################################################################################
+pluginName=Papyrus Sequence Diagram (Incubation)
+providerName=Eclipse.org
+
+
+preferences.general=Papyrus Sequence Diagram (Incubation)
+preferences.appearance=Appearance
+preferences.connections=Connections
+preferences.printing=Printing
+preferences.rulersAndGrid=Rulers & Grid
+preferences.pathmaps=Path Maps
+
+editorName=Papyrus Sequence Diagram (Incubation)
+context.description=UMLSequence Diagram Editor
+context.name=In UMLSequence Diagram Editor
+newWizardName=UMLSequence Diagram
+newWizardDesc=Creates UMLSequence diagram.
+
+initDiagramActionLabel=Initialize umlsequence_diagram diagram file
+createShortcutActionLabel=Create Shortcut...
+loadResourceActionLabel=Load Resource...
+
+
+navigatorContentName=*.umlsequence_diagram diagram contents
+domainNavigatorContentName=*.uml model contents
+update.diagram.name=Update UMLSequence diagram
+update.diagram.description=Perform UMLSequence diagram update
+
+
+# Property Sheet
+tab.appearance=Appearance
+tab.diagram=Rulers & Grid
+tab.domain=Core
+
+# Providers
+metatype.name.Package_79=Undefined
+metatype.name.Interaction_1001=Interaction
+metatype.name.Interaction_2001=Interaction
+metatype.name.Lifeline_2002=Lifeline
+metatype.name.BehaviorExecutionSpecification_2003=Behavior Execution Specification
+metatype.name.Message_3001=Message
+metatype.name.Message_3002=Message
+metatype.name.Message_3003=Message
+metatype.name.Message_3004=Message
+metatype.name.Message_3005=Message
+metatype.name.Message_3006=Message
+
+metatype.name.CombinedFragment_2004=Combined Fragment
+preference.page.title.org.eclipse.uml2.uml.diagram.general=UML Diagram
+preference.page.title.org.eclipse.uml2.uml.diagram.appearance=Appearance
+preference.page.title.org.eclipse.uml2.uml.diagram.connections=Connections
+preference.page.title.org.eclipse.uml2.uml.diagram.printing=Printing
+preference.page.title.org.eclipse.uml2.uml.diagram.rulersAndGrid=Rulers And Grid
+preference.page.title.org.eclipse.uml2.uml.diagram.pathmaps=Pathmaps
+metatype.name.Package_1000=Undefined
+metatype.name.Comment_2005=Comment
+metatype.name.ElementOwnedComment_3007=Undefined
+metatype.name.CommentAnnotatedElement_3008=Undefined
+preferences.icons=Icon Style
+viewInfo.79=Undefined
+viewInfo.1001=Interaction
+viewInfo.4004=name from Interaction
+viewInfo.2005=Comment
+viewInfo.5003=body from Comment
+viewInfo.2001=Interaction
+viewInfo.4003=name from Interaction
+viewInfo.2002=Lifeline
+viewInfo.2003=BehaviorExecutionSpecification
+viewInfo.4001=name from Lifeline
+viewInfo.2004=CombinedFragment
+viewInfo.4002=interactionOperator from CombinedFragment
+viewInfo.3001=Call (synch.)
+viewInfo.4005=name from Call (synch.)
+viewInfo.3002=Call (asynch.)
+viewInfo.4006=name from Call (asynch.)
+viewInfo.3003=Reply
+viewInfo.4007=name from Reply
+viewInfo.3004=Signal
+viewInfo.4008=name from Signal
+viewInfo.3005=Create
+viewInfo.4009=name from Create
+viewInfo.3006=Destruction
+viewInfo.4010=name from Destruction
+viewInfo.3007=Comment
+viewInfo.3008=Comment link
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.xml b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.xml
new file mode 100644
index 00000000000..b0ef657c16e
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/plugin.xml
@@ -0,0 +1,1160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Create a new UML2 Sequence diagram"
+ id="org.eclipse.papyrus.diagram.sequence.CreateSequenceDiagramCommand"
+ name="New UML2 Sequence Diagram">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.diagram.sequence.CreateSequenceDiagramCommand"
+ commandId="org.eclipse.papyrus.diagram.sequence.CreateSequenceDiagramCommand">
+ <activeWhen>
+ <or>
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </or>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="menu:org.eclipse.papyrus.ui.menu">
+ <menu
+ id="org.eclipse.papyrus.diagram.ui.menu.diagrams"
+ label="Diagrams">
+ <command
+ commandId="org.eclipse.papyrus.diagram.sequence.CreateSequenceDiagramCommand"
+ icon="icons/SequenceDiagram.gif"
+ label="Create a new Sequence Diagram"
+ style="push"
+ tooltip="Create a new Sequence Diagram">
+ <visibleWhen>
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.diagram.ui.toolbar">
+ <command
+ commandId="org.eclipse.papyrus.diagram.sequence.CreateSequenceDiagramCommand"
+ icon="icons/SequenceDiagram.gif"
+ label="Create a new Sequence Diagram"
+ style="push"
+ tooltip="Create a new Sequence Diagram">
+ <visibleWhen>
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </toolbar>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.core.papyrusDiagram">
+ <editorDiagram
+ contextId="com.cea.papyrus.gmf.editor.context"
+ factoryClass="org.eclipse.papyrus.diagram.sequence.part.SequenceDiagramEditorFactory"
+ icon="icons/SequenceDiagram.gif">
+ </editorDiagram>
+ <creationCommand
+ creationCommandClass="org.eclipse.papyrus.diagram.sequence.CreateSequenceDiagramCommand"
+ icon="icons/SequenceDiagram.gif"
+ id="org.eclipse.papyrus.diagram.sequence.actions.CreationCommand"
+ label="UML Sequence Diagram">
+ </creationCommand>
+ </extension>
+
+
+ <extension point="org.eclipse.team.core.fileTypes">
+ <?gmfgen generated="true"?>
+
+ <fileTypes
+ type="text"
+ extension="sequenceuml_diagram">
+ </fileTypes>
+
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <?gmfgen generated="true"?>
+
+ <parser
+ type="sequenceuml_diagram"
+ class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory">
+ </parser>
+
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders">
+ <?gmfgen generated="false"?>
+ <GlobalActionHandlerProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
+ id="MOSKitt UMLSequencePresentation">
+ <Priority name="Lowest"/>
+ <ViewId id="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID">
+ <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="MOSKitt UMLSequencePresentationPrint">
+ <Priority name="Lowest"/>
+ <ViewId id="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID">
+ <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="MOSKitt UMLSequencePresentationIDE">
+ <Priority name="Lowest"/>
+ <ViewId id="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID">
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
+ <GlobalActionId actionId="bookmark"/>
+ </ElementType>
+ </ViewId>
+ </GlobalActionHandlerProvider>
+ <GlobalActionHandlerProvider
+ class="org.eclipse.papyrus.diagram.common.actions.handlers.ClipboardActionHandlerProvider"
+ id="MOSKitt UMLSequenceRender">
+ <Priority name="Lowest"/>
+ <ViewId id="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID">
+ <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.action.contributionItemProviders">
+ <?gmfgen generated="false"?>
+ <contributionItemProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLContributionItemProvider">
+ <Priority name="Low"/>
+ <partContribution id="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID">
+ <partAction menubarPath="/file/print" id="printPreviewAction"/>
+ </partContribution>
+ </contributionItemProvider>
+ <contributionItemProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContributionItemProvider"
+ checkPluginLoaded="false">
+ <Priority name="Low"/>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.InteractionEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.InteractionNameEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.CommentEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.CommentBodyEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Interaction2EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.InteractionName2EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="flase"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.LifelineNameEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.CombinedFragmentEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.CombinedFragmentInteractionOperatorEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageNameEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message2EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message2EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageName2EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message3EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message3EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageName3EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message4EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message4EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageName4EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message5EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message5EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageName5EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message6EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.Message6EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.MessageName6EditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.ElementOwnedCommentEditPart"/>
+ <popupAction path="/editGroup" id="deleteFromModelAction"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.ElementOwnedCommentEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.CommentAnnotatedElementEditPart"/>
+ <popupAction path="/editGroup" id="deleteFromModelAction"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ </popupContribution>
+
+<popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
+ <popupStructuredContributionCriteria objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.CommentAnnotatedElementEditPart"/>
+ <popupPredefinedItem id="deleteFromDiagramAction" remove="false"/>
+ <popupPredefinedItem id="deleteFromModelAction" remove="false"/>
+ </popupContribution>
+ </contributionItemProvider>
+</extension>
+
+ <extension point="org.eclipse.core.runtime.preferences">
+ <?gmfgen generated="true"?>
+ <initializer class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramPreferenceInitializer"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.preferencePages">
+ <?gmfgen generated="true"?>
+ <page
+ id="org.eclipse.papyrus.diagram.sequence.general"
+ name="%preference.page.title.org.eclipse.papyrus.diagram.sequence.general"
+ category="org.eclipse.uml2.uml.diagram"
+ class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramGeneralPreferencePage">
+ </page>
+ <page
+ id="org.eclipse.papyrus.diagram.sequence.appearance"
+ name="%preference.page.title.org.eclipse.papyrus.diagram.sequence.appearance"
+ category="org.eclipse.papyrus.diagram.sequence.general"
+ class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramAppearancePreferencePage">
+ </page>
+ <page
+ id="org.eclipse.papyrus.diagram.sequence.connections"
+ name="%preference.page.title.org.eclipse.papyrus.diagram.sequence.connections"
+ category="org.eclipse.papyrus.diagram.sequence.general"
+ class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramConnectionsPreferencePage">
+ </page>
+ <page
+ id="org.eclipse.papyrus.diagram.sequence.printing"
+ name="%preference.page.title.org.eclipse.papyrus.diagram.sequence.printing"
+ category="org.eclipse.papyrus.diagram.sequence.general"
+ class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramPrintingPreferencePage">
+ </page>
+ <page
+ id="org.eclipse.papyrus.diagram.sequence.rulersAndGrid"
+ name="%preference.page.title.org.eclipse.papyrus.diagram.sequence.rulersAndGrid"
+ category="org.eclipse.papyrus.diagram.sequence.general"
+ class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramRulersAndGridPreferencePage">
+ </page>
+ <page
+ id="org.eclipse.papyrus.diagram.sequence.pathmaps"
+ name="%preference.page.title.org.eclipse.papyrus.diagram.sequence.pathmaps"
+ category="org.eclipse.papyrus.diagram.sequence.general"
+ class="org.eclipse.gmf.runtime.emf.ui.preferences.PathmapsPreferencePage">
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
+ <?gmfgen generated="true"?>
+ <propertyContributor
+ contributorId="org.eclipse.papyrus.diagram.sequence"
+ labelProvider="org.eclipse.papyrus.diagram.sequence.sheet.UMLSheetLabelProvider">
+ <propertyCategory category="domain"/>
+ <propertyCategory category="visual"/>
+ <propertyCategory category="extra"/>
+ </propertyContributor>
+ </extension>
+
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
+ <?gmfgen generated="true"?>
+ <propertyTabs contributorId="org.eclipse.papyrus.diagram.sequence">
+ <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">
+ <?gmfgen generated="true"?>
+ <propertySections contributorId="org.eclipse.papyrus.diagram.sequence">
+ <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="org.eclipse.papyrus.diagram.sequence.sheet.UMLPropertySection">
+ <input type="org.eclipse.gmf.runtime.notation.View"/>
+ <input type="org.eclipse.gef.EditPart"/>
+ <input type="org.eclipse.papyrus.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ </propertySection>
+ </propertySections>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders">
+ <?gmfgen generated="true"?>
+ <viewProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLViewProvider">
+ <Priority name="Lowest"/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="MOSKitt UMLSequence"/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints=""/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints=""/>
+ </viewProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders">
+ <?gmfgen generated="true"?>
+ <editpartProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLEditPartProvider">
+ <Priority name="Lowest"/>
+ </editpartProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders">
+ <?gmfgen generated="true"?>
+ <modelingAssistantProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLModelingAssistantProvider">
+ <Priority name="Lowest"/>
+ </modelingAssistantProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders">
+ <?gmfgen generated="true"?>
+ <IconProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLIconProvider">
+ <Priority name="Low"/>
+ </IconProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders">
+ <?gmfgen generated="true"?>
+ <ParserProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLParserProvider">
+ <Priority name="Lowest"/>
+ </ParserProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
+ <?gmfgen generated="true"?>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.Package_79"
+ name="%metatype.name.Package_79"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="Package"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.PackageEditHelper">
+ <param name="semanticHint" value="79"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.Interaction_1001"
+ name="%metatype.name.Interaction_1001"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="Interaction"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.InteractionEditHelper">
+ <param name="semanticHint" value="1001"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.Comment_2005"
+ name="%metatype.name.Comment_2005"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="Comment"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.CommentEditHelper">
+ <param name="semanticHint" value="2005"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.Interaction_2001"
+ name="%metatype.name.Interaction_2001"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.papyrus.diagram.sequence.Interaction_1001"/>
+ <param name="semanticHint" value="2001"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.Lifeline_2002"
+ name="%metatype.name.Lifeline_2002"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="Lifeline"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.LifelineEditHelper">
+ <param name="semanticHint" value="2002"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.BehaviorExecutionSpecification_2003"
+ name="%metatype.name.BehaviorExecutionSpecification_2003"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="BehaviorExecutionSpecification"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.BehaviorExecutionSpecificationEditHelper">
+ <param name="semanticHint" value="2003"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.CombinedFragment_2004"
+ name="%metatype.name.CombinedFragment_2004"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="CombinedFragment"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.CombinedFragmentEditHelper">
+ <param name="semanticHint" value="2004"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <metamodelType
+ id="org.eclipse.papyrus.diagram.sequence.Message_3001"
+ name="%metatype.name.Message_3001"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="Message"
+ edithelper="org.eclipse.papyrus.diagram.sequence.edit.helpers.MessageEditHelper">
+ <param name="semanticHint" value="3001"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.Message_3002"
+ name="%metatype.name.Message_3002"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.papyrus.diagram.sequence.Message_3001"/>
+ <param name="semanticHint" value="3002"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.Message_3003"
+ name="%metatype.name.Message_3003"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.papyrus.diagram.sequence.Message_3001"/>
+ <param name="semanticHint" value="3003"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.Message_3004"
+ name="%metatype.name.Message_3004"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.papyrus.diagram.sequence.Message_3001"/>
+ <param name="semanticHint" value="3004"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.Message_3005"
+ name="%metatype.name.Message_3005"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.papyrus.diagram.sequence.Message_3001"/>
+ <param name="semanticHint" value="3005"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.Message_3006"
+ name="%metatype.name.Message_3006"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.papyrus.diagram.sequence.Message_3001"/>
+ <param name="semanticHint" value="3006"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.ElementOwnedComment_3007"
+ name="%metatype.name.ElementOwnedComment_3007"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
+ <param name="semanticHint" value="3007"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://www.eclipse.org/uml2/2.1.0/UML">
+ <specializationType
+ id="org.eclipse.papyrus.diagram.sequence.CommentAnnotatedElement_3008"
+ name="%metatype.name.CommentAnnotatedElement_3008"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
+ <param name="semanticHint" value="3008"/>
+ </specializationType>
+ </metamodel>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
+ <?gmfgen generated="true"?>
+ <binding context="com.cea.papyrus.gmf.editor.context">
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Package_79"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Interaction_1001"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Comment_2005"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Interaction_2001"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Lifeline_2002"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.BehaviorExecutionSpecification_2003"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.CombinedFragment_2004"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Message_3001"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Message_3002"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Message_3003"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Message_3004"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Message_3005"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.Message_3006"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.ElementOwnedComment_3007"/>
+ <elementType ref="org.eclipse.papyrus.diagram.sequence.CommentAnnotatedElement_3008"/>
+ <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
+ </binding>
+ </extension>
+ <extension point="org.eclipse.core.expressions.propertyTesters">
+ <?gmfgen generated="true"?>
+ <propertyTester
+ id="org.eclipse.papyrus.diagram.sequence.URIEditorInputPropertyTester"
+ type="org.eclipse.emf.common.ui.URIEditorInput"
+ namespace="org.eclipse.papyrus.diagram.sequence"
+ properties="isURIEditorInput"
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLUriEditorInputTester">
+ </propertyTester>
+ </extension>
+
+ <extension point="org.eclipse.core.expressions.propertyTesters">
+ <?gmfgen generated="true"?>
+ <propertyTester
+ id="org.eclipse.papyrus.diagram.sequence.DomainModelElementPropertyTester"
+ type="org.eclipse.emf.ecore.EObject"
+ namespace="org.eclipse.papyrus.diagram.sequence"
+ properties="isDomainModelElement"
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLDomainModelElementTester">
+ </propertyTester>
+ </extension>
+
+ <extension point="org.eclipse.ui.navigator.viewer">
+ <?gmfgen generated="true"?>
+ <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
+ <includes>
+ <contentExtension pattern="org.eclipse.papyrus.diagram.sequence.resourceContent"/>
+ <contentExtension pattern="org.eclipse.papyrus.diagram.sequence.domainResourceContent"/>
+ <contentExtension pattern="org.eclipse.papyrus.diagram.sequence.navigatorLinkHelper"/>
+ </includes>
+ </viewerContentBinding>
+ <viewerActionBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
+ <includes>
+ <actionExtension pattern="org.eclipse.papyrus.diagram.sequence.navigatorActionProvider"/>
+ </includes>
+ </viewerActionBinding>
+ </extension>
+
+ <extension point="org.eclipse.ui.navigator.navigatorContent">
+ <?gmfgen generated="true"?>
+ <navigatorContent
+ id="org.eclipse.papyrus.diagram.sequence.resourceContent"
+ name="%navigatorContentName"
+ priority="normal"
+ contentProvider="org.eclipse.papyrus.diagram.sequence.navigator.UMLNavigatorContentProvider"
+ labelProvider="org.eclipse.papyrus.diagram.sequence.navigator.UMLNavigatorLabelProvider"
+ icon="icons/obj16/UMLDiagramFile.gif"
+ activeByDefault="true">
+ <triggerPoints>
+ <or>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="sequenceuml_diagram"/>
+ </and>
+ <instanceof value="org.eclipse.papyrus.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ </or>
+ </triggerPoints>
+ <possibleChildren>
+ <or>
+ <instanceof value="org.eclipse.papyrus.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ </or>
+ </possibleChildren>
+ <commonSorter
+ id="org.eclipse.papyrus.diagram.sequence.navigatorSorter"
+ class="org.eclipse.papyrus.diagram.sequence.navigator.UMLNavigatorSorter">
+ <parentExpression>
+ <or>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="sequenceuml_diagram"/>
+ </and>
+ <instanceof value="org.eclipse.papyrus.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ </or>
+ </parentExpression>
+ </commonSorter>
+ </navigatorContent>
+ <navigatorContent
+ id="org.eclipse.papyrus.diagram.sequence.domainResourceContent"
+ name="%domainNavigatorContentName"
+ priority="normal"
+ contentProvider="org.eclipse.papyrus.diagram.sequence.navigator.UMLDomainNavigatorContentProvider"
+ labelProvider="org.eclipse.papyrus.diagram.sequence.navigator.UMLDomainNavigatorLabelProvider"
+ icon="icons/obj16/UMLDiagramFile.gif"
+ activeByDefault="true">
+ <triggerPoints>
+ <or>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="uml"/>
+ </and>
+ <and>
+ <instanceof value="org.eclipse.emf.ecore.EObject"/>
+ <test property="org.eclipse.papyrus.diagram.sequence.isDomainModelElement"/>
+ </and>
+ </or>
+ </triggerPoints>
+ <possibleChildren>
+ <and>
+ <instanceof value="org.eclipse.emf.ecore.EObject"/>
+ <test property="org.eclipse.papyrus.diagram.sequence.isDomainModelElement"/>
+ </and>
+ </possibleChildren>
+ </navigatorContent>
+ <actionProvider
+ id="org.eclipse.papyrus.diagram.sequence.navigatorActionProvider"
+ class="org.eclipse.papyrus.diagram.sequence.navigator.UMLNavigatorActionProvider">
+ <enablement>
+ <or>
+ <instanceof value="org.eclipse.papyrus.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ </or>
+ </enablement>
+ </actionProvider>
+ </extension>
+
+ <extension point="org.eclipse.ui.navigator.linkHelper">
+ <?gmfgen generated="true"?>
+ <linkHelper
+ id="org.eclipse.papyrus.diagram.sequence.navigatorLinkHelper"
+ class="org.eclipse.papyrus.diagram.sequence.navigator.UMLNavigatorLinkHelper">
+ <editorInputEnablement>
+ <and>
+ <instanceof value="org.eclipse.emf.common.ui.URIEditorInput"/>
+ <test property="org.eclipse.papyrus.diagram.sequence.isURIEditorInput"/>
+ </and>
+ </editorInputEnablement>
+ <selectionEnablement>
+ <instanceof value="org.eclipse.papyrus.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ </selectionEnablement>
+ </linkHelper>
+ </extension>
+ <extension point="org.eclipse.ui.commands">
+ <?gmfgen generated="true"?>
+ <command
+ categoryId="org.eclipse.ui.category.edit"
+ defaultHandler="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramUpdateCommand"
+ description="%update.diagram.description"
+ id="org.eclipse.papyrus.diagram.sequence.updateDiagram"
+ name="%update.diagram.name"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.bindings">
+ <?gmfgen generated="true"?>
+ <key
+ commandId="org.eclipse.papyrus.diagram.sequence.updateDiagram"
+ contextId="org.eclipse.papyrus.diagram.sequence.ui.diagramContext"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="F5"/>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.diagram.common.modelToEditorMap">
+ <modelToEditor
+ editorID="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID"
+ label="UML Sequence"
+ modelID="MOSKitt UMLSequence">
+ </modelToEditor>
+ </extension><extension point="org.eclipse.ui.editors">
+ <?gmfgen generated="true"?>
+ <editor
+ id="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID"
+ name="%editorName"
+ icon="icons/SequenceDiagram.gif"
+ extensions="sequenceuml_diagram"
+ default="true"
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditor"
+ matchingStrategy="org.eclipse.papyrus.diagram.sequence.part.UMLMatchingStrategy"
+ contributorClass="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramActionBarContributor">
+ </editor>
+ </extension>
+<extension point="org.eclipse.ui.contexts">
+ <?gmfgen generated="true"?>
+ <context
+ description="%context.description"
+ id="org.eclipse.papyrus.diagram.sequence.ui.diagramContext"
+ name="%context.name"
+ parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
+ </context>
+ </extension>
+<extension point="org.eclipse.ui.popupMenus">
+ <?gmfgen generated="true"?>
+ <objectContribution
+ adaptable="false"
+ id="org.eclipse.papyrus.diagram.sequence.PackageEditPart.CreateShortcut"
+ objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.PackageEditPart">
+ <action
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLCreateShortcutAction"
+ enablesFor="1"
+ id="org.eclipse.papyrus.diagram.sequence.CreateShortcutAction"
+ label="%createShortcutActionLabel"
+ menubarPath="additions">
+ </action>
+ </objectContribution>
+
+ <objectContribution
+ adaptable="false"
+ id="org.eclipse.papyrus.diagram.sequence.InteractionInteractionCompartmentEditPart.CreateShortcut"
+ objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.InteractionInteractionCompartmentEditPart">
+ <action
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLCreateShortcutAction"
+ enablesFor="1"
+ id="org.eclipse.papyrus.diagram.sequence.CreateShortcutAction"
+ label="%createShortcutActionLabel"
+ menubarPath="additions">
+ </action>
+ </objectContribution>
+ <objectContribution
+ adaptable="false"
+ id="org.eclipse.papyrus.diagram.sequence.InteractionInteractionCompartment2EditPart.CreateShortcut"
+ objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.InteractionInteractionCompartment2EditPart">
+ <action
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLCreateShortcutAction"
+ enablesFor="1"
+ id="org.eclipse.papyrus.diagram.sequence.CreateShortcutAction"
+ label="%createShortcutActionLabel"
+ menubarPath="additions">
+ </action>
+ </objectContribution>
+ <objectContribution
+ adaptable="false"
+ id="org.eclipse.papyrus.diagram.sequence.LoadResource"
+ objectClass="org.eclipse.papyrus.diagram.sequence.edit.parts.PackageEditPart">
+ <action
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLLoadResourceAction"
+ enablesFor="1"
+ id="org.eclipse.papyrus.diagram.sequence.LoadResourceAction"
+ label="%loadResourceActionLabel"
+ menubarPath="additions">
+ </action>
+ </objectContribution>
+ </extension><extension point="org.eclipse.ui.preferencePages">
+ <?gmfgen generated="true"?>
+ <page
+ name="%preferences.icons"
+ class="org.eclipse.papyrus.diagram.sequence.preferences.DiagramIconStylePreferencePage"
+ category="org.eclipse.uml2.uml.diagram.sequence.general"
+ id="org.eclipse.papyrus.diagram.sequence.icons">
+ </page>
+ </extension><extension point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
+ <?gmfgen generated="true"?>
+ <decoratorProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLShortcutsDecoratorProvider">
+ <Priority name="Lowest"/>
+ </decoratorProvider>
+ </extension>
+<extension point="org.eclipse.core.expressions.propertyTesters">
+ <?gmfgen generated="true"?>
+ <propertyTester
+ id="org.eclipse.papyrus.diagram.sequence.DomainModelElementPropertyTester"
+ type="org.eclipse.emf.ecore.EObject"
+ namespace="org.eclipse.papyrus.diagram.sequence"
+ properties="isDomainModelElement"
+ class="org.eclipse.papyrus.diagram.sequence.part.UMLDomainModelElementTester">
+ </propertyTester>
+ </extension><extension point="org.eclipse.gmf.runtime.common.ui.services.markerNavigationProviders">
+ <?gmfgen generated="true"?>
+ <MarkerNavigationProvider class="org.eclipse.papyrus.diagram.sequence.providers.UMLMarkerNavigationProvider">
+ <MarkerType name="org.eclipse.papyrus.diagram.sequence.diagnostic"/>
+ <Priority name="Lowest"/>
+ </MarkerNavigationProvider>
+ </extension>
+<extension id="diagnostic" name="MOSKitt UML Sequence Diagram Editor 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 point="org.eclipse.emf.validation.constraintProviders">
+ <?gmfgen generated="true"?>
+ <category id="MOSKItt_Sequence_diagram_constraints" mandatory="false" name="MOSKitt Sequence diagram constraints">
+ <![CDATA[UML2 sequence diagram constraints]]>
+ </category>
+ <category id="MOSKItt_Sequence_diagram_constraints/MOSKitt_Sequence_diagram_constraints_LIVE" mandatory="false" name="MOSKitt Sequence diagram constraints LIVE">
+ <![CDATA[UML2 Sequence diagram constraints.]]>
+ </category>
+ <constraintProvider cache="true">
+ <package namespaceUri="http://www.eclipse.org/uml2/2.1.0/UML"/>
+ <constraints categories="MOSKItt_Sequence_diagram_constraints">
+ </constraints>
+ <constraints categories="MOSKItt_Sequence_diagram_constraints/MOSKitt_Sequence_diagram_constraints_LIVE">
+ <constraint id="unique_name_in_model_container"
+ lang="Java" class="org.eclipse.papyrus.diagram.sequence.providers.UMLValidationProvider$Adapter1"
+ name="Unique name in model container"
+ mode="Live"
+ severity="ERROR" statusCode="200">
+
+ <description><![CDATA[Checks an element's name to be unique in its model container.]]></description>
+ <message><![CDATA[Another element exists qith that name.]]></message>
+ <target class="uml.NamedElement"/>
+ </constraint>
+ </constraints>
+ </constraintProvider>
+ </extension>
+<extension point="org.eclipse.emf.validation.constraintBindings">
+ <?gmfgen generated="true"?>
+ <clientContext default="false" id="org.eclipse.papyrus.diagram.sequenceDefaultCtx">
+ <selector class="org.eclipse.papyrus.diagram.sequence.providers.UMLValidationProvider$DefaultCtx"/>
+ </clientContext>
+ <binding context="org.eclipse.papyrus.diagram.sequenceDefaultCtx">
+ <constraint ref="org.eclipse.papyrus.diagram.sequence.unique_name_in_model_container"/>
+ </binding>
+
+ </extension><extension point="org.eclipse.papyrus.diagram.common.viewInfo">
+ <?gmfgen generated="true"?>
+ <RootViewInfo
+ editorID="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID"
+ modelTypes="es.cv.gvcase.mdt.common.provider.ModelTypesProviderFactory">
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Package_79"
+ label="%viewInfo.79"
+ type="Head"
+ visualID="79">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Interaction_1001"
+ label="%viewInfo.1001"
+ parent="79"
+ type="Node"
+ visualID="1001">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Comment_2005"
+ label="%viewInfo.2005"
+ parent="79"
+ type="Node"
+ visualID="2005">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Interaction_2001"
+ label="%viewInfo.2001"
+ parent="2001"
+ type="Node"
+ visualID="2001">
+ </BaseViewInfo>
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Interaction_2001"
+ label="%viewInfo.2001"
+ parent="1001"
+ type="Node"
+ visualID="2001">
+ </BaseViewInfo>
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Lifeline_2002"
+ label="%viewInfo.2002"
+ parent="2001"
+ type="Node"
+ visualID="2002">
+ </BaseViewInfo>
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Lifeline_2002"
+ label="%viewInfo.2002"
+ parent="1001"
+ type="Node"
+ visualID="2002">
+ </BaseViewInfo>
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.BehaviorExecutionSpecification_2003"
+ label="%viewInfo.2003"
+ parent="2002"
+ type="Node"
+ visualID="2003">
+ </BaseViewInfo>
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.CombinedFragment_2004"
+ label="%viewInfo.2004"
+ parent="2001"
+ type="Node"
+ visualID="2004">
+ </BaseViewInfo>
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.CombinedFragment_2004"
+ label="%viewInfo.2004"
+ parent="1001"
+ type="Node"
+ visualID="2004">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3001"
+ label="%viewInfo.3001"
+ parent="79"
+ type="Edge"
+ visualID="3001">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3001"
+ label="%viewInfo.4005"
+ parent="3001"
+ type="Label"
+ visualID="4005">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3002"
+ label="%viewInfo.3002"
+ parent="79"
+ type="Edge"
+ visualID="3002">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3002"
+ label="%viewInfo.4006"
+ parent="3002"
+ type="Label"
+ visualID="4006">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3003"
+ label="%viewInfo.3003"
+ parent="79"
+ type="Edge"
+ visualID="3003">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3003"
+ label="%viewInfo.4007"
+ parent="3003"
+ type="Label"
+ visualID="4007">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3004"
+ label="%viewInfo.3004"
+ parent="79"
+ type="Edge"
+ visualID="3004">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3004"
+ label="%viewInfo.4008"
+ parent="3004"
+ type="Label"
+ visualID="4008">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3005"
+ label="%viewInfo.3005"
+ parent="79"
+ type="Edge"
+ visualID="3005">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3005"
+ label="%viewInfo.4009"
+ parent="3005"
+ type="Label"
+ visualID="4009">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3006"
+ label="%viewInfo.3006"
+ parent="79"
+ type="Edge"
+ visualID="3006">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.Message_3006"
+ label="%viewInfo.4010"
+ parent="3006"
+ type="Label"
+ visualID="4010">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.ElementOwnedComment_3007"
+ label="%viewInfo.3007"
+ parent="79"
+ type="Edge"
+ visualID="3007">
+ </BaseViewInfo>
+
+ <BaseViewInfo
+ elementType="org.eclipse.papyrus.diagram.sequence.CommentAnnotatedElement_3008"
+ label="%viewInfo.3008"
+ parent="79"
+ type="Edge"
+ visualID="3008">
+ </BaseViewInfo>
+ </RootViewInfo>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.diagram.common.moskittEditorFactory">
+ <MOSKittEditorFactory
+ diagramType="MOSKitt UMLSequence"
+ editorID="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorID"
+ factory="org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorUtil">
+ </MOSKittEditorFactory>
+ </extension>
+</plugin>
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/Activator.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/Activator.java
new file mode 100644
index 00000000000..aa266705618
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/Activator.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana .
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ /** The Constant PLUGIN_ID. */
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.diagram.sequence.papyrus";
+
+ // The shared instance
+ /** The plugin. */
+ private static Activator plugin;
+
+ /**
+ * The constructor.
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ 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)
+ */
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/CreateSequenceDiagramCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/CreateSequenceDiagramCommand.java
new file mode 100644
index 00000000000..de777cc3326
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/CreateSequenceDiagramCommand.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte, Generalitat
+ * de la Comunitat Valenciana.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation
+ * Obeo
+ *******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence;
+
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.papyrus.core.adaptor.gmf.AbstractPapyrusGmfCreateDiagramCommandHandler;
+import org.eclipse.papyrus.diagram.sequence.edit.parts.PackageEditPart;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+
+/**
+ * Define a command to create a new Sequence Diagram. This command is used by all UI (toolbar, outline, creation wizards) to create a new Sequence Diagram.
+ *
+ * @author <a href="mailto:fjcano@prodevelop.es">Francisco Javier Cano Muñoz</a>
+ * @author <a href="mailto:jerome.benois@obeo.fr">Jerome Benois</a>
+ */
+public class CreateSequenceDiagramCommand extends AbstractPapyrusGmfCreateDiagramCommandHandler {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected String getDiagramNotationID() {
+ return PackageEditPart.MODEL_ID;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected PreferencesHint getPreferenceHint() {
+ return UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT;
+ }
+
+ @Override
+ protected String getDiagramName() {
+ return super.openDiagramNameDialog("SequenceDiagram");
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/BehaviorExecutionSpecificationCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/BehaviorExecutionSpecificationCreateCommand.java
new file mode 100644
index 00000000000..9df13cb9862
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/BehaviorExecutionSpecificationCreateCommand.java
@@ -0,0 +1,144 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+/**
+ * @generated
+ */
+public class BehaviorExecutionSpecificationCreateCommand extends
+ CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ private EClass eClass = null;
+ /**
+ * @generated
+ */
+ private EObject eObject = null;
+
+ /**
+ * @generated
+ */
+ public BehaviorExecutionSpecificationCreateCommand(
+ CreateElementRequest req, EObject eObject) {
+ super(req);
+ this.eObject = eObject;
+ this.eClass = eObject != null ? eObject.eClass() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static BehaviorExecutionSpecificationCreateCommand create(
+ CreateElementRequest req, EObject eObject) {
+ return new BehaviorExecutionSpecificationCreateCommand(req, eObject);
+ }
+
+ /**
+ * @generated
+ */
+ public BehaviorExecutionSpecificationCreateCommand(CreateElementRequest req) {
+ super(req);
+ }
+
+ /**
+ * @generated NOT
+ */
+ @Override
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+
+ // Added to contain the BehaviourExecutionSpecification inside the
+ // Interaction, not in the Lifeline (where it is shown)
+ if (container instanceof Lifeline)
+ return ((Lifeline) container).getInteraction();
+
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+
+ EObject eObject = getElementToEdit();
+ if (eObject != null) {
+ return eObject.eClass();
+ }
+ if (eClass != null) {
+ return eClass;
+ }
+ return UMLPackage.eINSTANCE.getInteraction();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramFromRequest() {
+
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ BehaviorExecutionSpecification newElement = (BehaviorExecutionSpecification) super
+ .doDefaultElementCreation();
+ if (newElement != null) {
+ Interaction owner = (Interaction) getElementToEdit();
+ owner.getFragments().add(newElement);
+
+ UMLElementTypes
+ .init_BehaviorExecutionSpecification_2003(newElement);
+
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newElement);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newElement);
+ }
+ }
+ return newElement;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCreateCommand.java
new file mode 100644
index 00000000000..37eb557002d
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CombinedFragmentCreateCommand.java
@@ -0,0 +1,139 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.CombinedFragment;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+/**
+ * @generated
+ */
+public class CombinedFragmentCreateCommand extends CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ private EClass eClass = null;
+ /**
+ * @generated
+ */
+ private EObject eObject = null;
+
+ /**
+ * @generated
+ */
+ public CombinedFragmentCreateCommand(CreateElementRequest req,
+ EObject eObject) {
+ super(req);
+ this.eObject = eObject;
+ this.eClass = eObject != null ? eObject.eClass() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static CombinedFragmentCreateCommand create(
+ CreateElementRequest req, EObject eObject) {
+ return new CombinedFragmentCreateCommand(req, eObject);
+ }
+
+ /**
+ * @generated
+ */
+ public CombinedFragmentCreateCommand(CreateElementRequest req) {
+ super(req);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject getElementToEdit() {
+
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ if (container != null) {
+ return container;
+ }
+ return eObject;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+
+ EObject eObject = getElementToEdit();
+ if (eObject != null) {
+ return eObject.eClass();
+ }
+ if (eClass != null) {
+ return eClass;
+ }
+ return UMLPackage.eINSTANCE.getInteraction();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramFromRequest() {
+
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ CombinedFragment newElement = (CombinedFragment) super
+ .doDefaultElementCreation();
+ if (newElement != null) {
+ Interaction owner = (Interaction) getElementToEdit();
+ owner.getFragments().add(newElement);
+
+ UMLElementTypes.init_CombinedFragment_2004(newElement);
+
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newElement);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newElement);
+ }
+ }
+ return newElement;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementCreateCommand.java
new file mode 100644
index 00000000000..c9a9223b8cc
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementCreateCommand.java
@@ -0,0 +1,103 @@
+package org.eclipse.papyrus.diagram.sequence.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.CreateRelationshipRequest;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class CommentAnnotatedElementCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ public CommentAnnotatedElementCreateCommand(
+ CreateRelationshipRequest request, EObject source, EObject target) {
+ super(request.getLabel(), null, request);
+ this.source = source;
+ this.target = target;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != null && false == source instanceof Comment) {
+ return false;
+ }
+ if (target != null && false == target instanceof Element) {
+ 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
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canCreateCommentAnnotatedElement_3008(getSource(), getTarget());
+ }
+
+ /**
+ * @generated not
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in create link command"); //$NON-NLS-1$
+ }
+ if (getSource() != null && getTarget() != null) {
+ getSource().getAnnotatedElements().add(getTarget());
+
+ // check the parent of the comment. If has not elements in
+ // annotatedElement relation, the parent will be this Element; if
+ // has more than one element, the parent will be the model
+ if (getSource().getAnnotatedElements().size() == 1) {
+ getTarget().getOwnedComments().add(getSource());
+ } else if (getSource().getAnnotatedElements().size() > 1) {
+ Model root = (Model) getTarget().eResource().getContents().get(
+ 0);
+ root.getOwnedComments().add(getSource());
+ }
+ }
+ return CommandResult.newOKCommandResult();
+ }
+
+ /**
+ * @generated
+ */
+ protected Comment getSource() {
+ return (Comment) source;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getTarget() {
+ return (Element) target;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementReorientCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementReorientCommand.java
new file mode 100644
index 00000000000..d1916c57120
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentAnnotatedElementReorientCommand.java
@@ -0,0 +1,191 @@
+package org.eclipse.papyrus.diagram.sequence.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.ReorientReferenceRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class CommentAnnotatedElementReorientCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final int reorientDirection;
+
+ /**
+ * @generated
+ */
+ private final EObject referenceOwner;
+
+ /**
+ * @generated
+ */
+ private final EObject oldEnd;
+
+ /**
+ * @generated
+ */
+ private final EObject newEnd;
+
+ /**
+ * @generated
+ */
+ public CommentAnnotatedElementReorientCommand(
+ ReorientReferenceRelationshipRequest request) {
+ super(request.getLabel(), null, request);
+ reorientDirection = request.getDirection();
+ referenceOwner = request.getReferenceOwner();
+ oldEnd = request.getOldRelationshipEnd();
+ newEnd = request.getNewRelationshipEnd();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (false == referenceOwner instanceof Comment) {
+ 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 Element && newEnd instanceof Comment)) {
+ return false;
+ }
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canExistCommentAnnotatedElement_3008(getNewSource(),
+ getOldTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientTarget() {
+ if (!(oldEnd instanceof Element && newEnd instanceof Element)) {
+ return false;
+ }
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canExistCommentAnnotatedElement_3008(getOldSource(),
+ getNewTarget());
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ 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 not
+ */
+ protected CommandResult reorientSource() throws ExecutionException {
+ getOldSource().getAnnotatedElements().remove(getOldTarget());
+ getNewSource().getAnnotatedElements().add(getOldTarget());
+
+ // modify the parent of the old Comment?
+ // if now it has only one annotated Element
+ if (getOldSource().getAnnotatedElements().size() == 1) {
+ getOldSource().getAnnotatedElements().get(0).getOwnedComments()
+ .add(getOldSource());
+ }
+ // if now it has no annotated Elements
+ if (getOldSource().getAnnotatedElements().size() == 0) {
+ ((Model) getOldSource().eResource().getContents().get(0))
+ .getOwnedComments().add(getOldSource());
+ }
+
+ // modify the parent of the new Comment?
+ // if now it has only one annotated Element
+ if (getNewSource().getAnnotatedElements().size() == 1) {
+ getNewSource().getAnnotatedElements().get(0).getOwnedComments()
+ .add(getNewSource());
+ }
+ // if now it has more than one annotated Element
+ if (getNewSource().getAnnotatedElements().size() > 1) {
+ ((Model) getNewSource().eResource().getContents().get(0))
+ .getOwnedComments().add(getNewSource());
+ }
+
+ return CommandResult.newOKCommandResult(referenceOwner);
+ }
+
+ /**
+ * @generated not
+ */
+ protected CommandResult reorientTarget() throws ExecutionException {
+ getOldSource().getAnnotatedElements().remove(getOldTarget());
+ getOldSource().getAnnotatedElements().add(getNewTarget());
+
+ // if the number of annotatedElements of the Comment is 1, change the
+ // container of the Comment
+ if (getOldSource().getAnnotatedElements().size() == 1) {
+ getNewTarget().getOwnedComments().add(getOldSource());
+ }
+
+ return CommandResult.newOKCommandResult(referenceOwner);
+ }
+
+ /**
+ * @generated
+ */
+ protected Comment getOldSource() {
+ return (Comment) referenceOwner;
+ }
+
+ /**
+ * @generated
+ */
+ protected Comment getNewSource() {
+ return (Comment) newEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getOldTarget() {
+ return (Element) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getNewTarget() {
+ return (Element) newEnd;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java
new file mode 100644
index 00000000000..910d6e685c9
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/CommentCreateCommand.java
@@ -0,0 +1,120 @@
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class CommentCreateCommand extends CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ private EClass eClass = null;
+ /**
+ * @generated
+ */
+ private EObject eObject = null;
+
+ /**
+ * @generated
+ */
+ public CommentCreateCommand(CreateElementRequest req, EObject eObject) {
+ super(req);
+ this.eObject = eObject;
+ this.eClass = eObject != null ? eObject.eClass() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static CommentCreateCommand create(CreateElementRequest req,
+ EObject eObject) {
+ return new CommentCreateCommand(req, eObject);
+ }
+
+ /**
+ * @generated
+ */
+ public CommentCreateCommand(CreateElementRequest req) {
+ super(req);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject getElementToEdit() {
+
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ if (container != null) {
+ return container;
+ }
+ return eObject;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+
+ EObject eObject = getElementToEdit();
+ if (eObject != null) {
+ return eObject.eClass();
+ }
+ if (eClass != null) {
+ return eClass;
+ }
+ return UMLPackage.eINSTANCE.getElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramFromRequest() {
+
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated NOT
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ Comment newElement = (Comment) super.doDefaultElementCreation();
+ if (newElement != null) {
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newElement);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newElement);
+ }
+ }
+ return newElement;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentCreateCommand.java
new file mode 100644
index 00000000000..9d7273d1795
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentCreateCommand.java
@@ -0,0 +1,104 @@
+package org.eclipse.papyrus.diagram.sequence.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.CreateRelationshipRequest;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Model;
+
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class ElementOwnedCommentCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ public ElementOwnedCommentCreateCommand(CreateRelationshipRequest request,
+ EObject source, EObject target) {
+ super(request.getLabel(), null, request);
+ this.source = source;
+ this.target = target;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != null && false == source instanceof Element) {
+ return false;
+ }
+ if (target != null && false == target instanceof Comment) {
+ 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
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canCreateElementOwnedComment_3007(getSource(), getTarget());
+ }
+
+ /**
+ * @generated not
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in create link command"); //$NON-NLS-1$
+ }
+ if (getSource() != null && getTarget() != null) {
+ getSource().getOwnedComments().add(getTarget());
+
+ // add the Element to the annotatedElement relation of the Comment
+ getTarget().getAnnotatedElements().add(getSource());
+
+ // check the parent of the comment. If has not elements in
+ // annotatedElement relation, the parent will be this Element; if
+ // has more than one element, the parent will be the model
+ if (getTarget().getAnnotatedElements().size() > 1) {
+ Model root = (Model) getSource().eResource().getContents().get(
+ 0);
+ root.getOwnedComments().add(getTarget());
+ }
+ }
+ return CommandResult.newOKCommandResult();
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getSource() {
+ return (Element) source;
+ }
+
+ /**
+ * @generated
+ */
+ protected Comment getTarget() {
+ return (Comment) target;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentReorientCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentReorientCommand.java
new file mode 100644
index 00000000000..d5ead9836d5
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/ElementOwnedCommentReorientCommand.java
@@ -0,0 +1,158 @@
+package org.eclipse.papyrus.diagram.sequence.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.ReorientReferenceRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class ElementOwnedCommentReorientCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final int reorientDirection;
+
+ /**
+ * @generated
+ */
+ private final EObject referenceOwner;
+
+ /**
+ * @generated
+ */
+ private final EObject oldEnd;
+
+ /**
+ * @generated
+ */
+ private final EObject newEnd;
+
+ /**
+ * @generated
+ */
+ public ElementOwnedCommentReorientCommand(
+ ReorientReferenceRelationshipRequest request) {
+ super(request.getLabel(), null, request);
+ reorientDirection = request.getDirection();
+ referenceOwner = request.getReferenceOwner();
+ oldEnd = request.getOldRelationshipEnd();
+ newEnd = request.getNewRelationshipEnd();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (false == referenceOwner instanceof Element) {
+ 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 Comment && newEnd instanceof Element)) {
+ return false;
+ }
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canExistElementOwnedComment_3007(getNewSource(),
+ getOldTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientTarget() {
+ if (!(oldEnd instanceof Comment && newEnd instanceof Comment)) {
+ return false;
+ }
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canExistElementOwnedComment_3007(getOldSource(),
+ getNewTarget());
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ 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 {
+ getOldSource().getOwnedComments().remove(getOldTarget());
+ getNewSource().getOwnedComments().add(getOldTarget());
+ return CommandResult.newOKCommandResult(referenceOwner);
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientTarget() throws ExecutionException {
+ getOldSource().getOwnedComments().remove(getOldTarget());
+ getOldSource().getOwnedComments().add(getNewTarget());
+ return CommandResult.newOKCommandResult(referenceOwner);
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getOldSource() {
+ return (Element) referenceOwner;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getNewSource() {
+ return (Element) newEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Comment getOldTarget() {
+ return (Comment) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Comment getNewTarget() {
+ return (Comment) newEnd;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Interaction2CreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Interaction2CreateCommand.java
new file mode 100644
index 00000000000..4ac629de2a6
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Interaction2CreateCommand.java
@@ -0,0 +1,136 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+/**
+ * @generated
+ */
+public class Interaction2CreateCommand extends CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ private EClass eClass = null;
+ /**
+ * @generated
+ */
+ private EObject eObject = null;
+
+ /**
+ * @generated
+ */
+ public Interaction2CreateCommand(CreateElementRequest req, EObject eObject) {
+ super(req);
+ this.eObject = eObject;
+ this.eClass = eObject != null ? eObject.eClass() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static Interaction2CreateCommand create(CreateElementRequest req,
+ EObject eObject) {
+ return new Interaction2CreateCommand(req, eObject);
+ }
+
+ /**
+ * @generated
+ */
+ public Interaction2CreateCommand(CreateElementRequest req) {
+ super(req);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject getElementToEdit() {
+
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ if (container != null) {
+ return container;
+ }
+ return eObject;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+
+ EObject eObject = getElementToEdit();
+ if (eObject != null) {
+ return eObject.eClass();
+ }
+ if (eClass != null) {
+ return eClass;
+ }
+ return UMLPackage.eINSTANCE.getInteraction();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramFromRequest() {
+
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ Interaction newElement = (Interaction) super.doDefaultElementCreation();
+ if (newElement != null) {
+ Interaction owner = (Interaction) getElementToEdit();
+ owner.getFragments().add(newElement);
+
+ UMLElementTypes.init_Interaction_2001(newElement);
+
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newElement);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newElement);
+ }
+ }
+ return newElement;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/InteractionCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/InteractionCreateCommand.java
new file mode 100644
index 00000000000..743225546d7
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/InteractionCreateCommand.java
@@ -0,0 +1,137 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+/**
+ * @generated
+ */
+public class InteractionCreateCommand extends CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ private EClass eClass = null;
+ /**
+ * @generated
+ */
+ private EObject eObject = null;
+
+ /**
+ * @generated
+ */
+ public InteractionCreateCommand(CreateElementRequest req, EObject eObject) {
+ super(req);
+ this.eObject = eObject;
+ this.eClass = eObject != null ? eObject.eClass() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static InteractionCreateCommand create(CreateElementRequest req,
+ EObject eObject) {
+ return new InteractionCreateCommand(req, eObject);
+ }
+
+ /**
+ * @generated
+ */
+ public InteractionCreateCommand(CreateElementRequest req) {
+ super(req);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject getElementToEdit() {
+
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ if (container != null) {
+ return container;
+ }
+ return eObject;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+
+ EObject eObject = getElementToEdit();
+ if (eObject != null) {
+ return eObject.eClass();
+ }
+ if (eClass != null) {
+ return eClass;
+ }
+ return UMLPackage.eINSTANCE.getPackage();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramFromRequest() {
+
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ Interaction newElement = (Interaction) super.doDefaultElementCreation();
+ if (newElement != null) {
+ Package owner = (Package) getElementToEdit();
+ owner.getPackagedElements().add(newElement);
+
+ UMLElementTypes.init_Interaction_1001(newElement);
+
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newElement);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newElement);
+ }
+ }
+ return newElement;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/LifelineCreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/LifelineCreateCommand.java
new file mode 100644
index 00000000000..0ff34ee2271
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/LifelineCreateCommand.java
@@ -0,0 +1,137 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.edit.commands;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.UMLElementTypes;
+
+/**
+ * @generated
+ */
+public class LifelineCreateCommand extends CreateElementCommand {
+
+ /**
+ * @generated
+ */
+ private EClass eClass = null;
+ /**
+ * @generated
+ */
+ private EObject eObject = null;
+
+ /**
+ * @generated
+ */
+ public LifelineCreateCommand(CreateElementRequest req, EObject eObject) {
+ super(req);
+ this.eObject = eObject;
+ this.eClass = eObject != null ? eObject.eClass() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static LifelineCreateCommand create(CreateElementRequest req,
+ EObject eObject) {
+ return new LifelineCreateCommand(req, eObject);
+ }
+
+ /**
+ * @generated
+ */
+ public LifelineCreateCommand(CreateElementRequest req) {
+ super(req);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject getElementToEdit() {
+
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ if (container != null) {
+ return container;
+ }
+ return eObject;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+
+ EObject eObject = getElementToEdit();
+ if (eObject != null) {
+ return eObject.eClass();
+ }
+ if (eClass != null) {
+ return eClass;
+ }
+ return UMLPackage.eINSTANCE.getInteraction();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramFromRequest() {
+
+ if (getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource) != null) {
+ Object parameter = getRequest().getParameters().get(
+ MultiDiagramUtil.BelongToDiagramSource);
+ if (parameter instanceof Diagram) {
+ return (Diagram) parameter;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ Lifeline newElement = (Lifeline) super.doDefaultElementCreation();
+ if (newElement != null) {
+ Interaction owner = (Interaction) getElementToEdit();
+ owner.getLifelines().add(newElement);
+
+ UMLElementTypes.init_Lifeline_2002(newElement);
+
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newElement);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newElement);
+ }
+ }
+ return newElement;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2CreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2CreateCommand.java
new file mode 100644
index 00000000000..af07cb05736
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2CreateCommand.java
@@ -0,0 +1,201 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.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.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.ElementInitializers;
+
+/**
+ * @generated NOT
+ */
+public class Message2CreateCommand extends MessageTypeLinkCreateCommandCommon {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ private Interaction container;
+
+ /**
+ * @generated
+ */
+ public Message2CreateCommand(CreateRelationshipRequest request,
+ EObject source, EObject target) {
+ super(request);
+ this.source = source;
+ this.target = target;
+ if (request.getContainmentFeature() == null) {
+ setContainmentFeature(UMLPackage.eINSTANCE.getInteraction_Message());
+ }
+
+ // 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 Interaction) {
+ container = (Interaction) element;
+ super.setElementToEdit(container);
+ break;
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != null && !(source instanceof Element)) {
+ return false;
+ }
+ if (target != null && !(target instanceof Element)) {
+ 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 UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canCreateMessage_3002(getContainer(), getSource(), getTarget());
+ }
+
+ /**
+ * @generated NOT
+ */
+ @Override
+ protected EObject doDefaultElementCreation() {
+ // org.eclipse.uml2.uml.Message newElement =
+ // (org.eclipse.uml2.uml.Message) super.doDefaultElementCreation();
+ Message newMessage = UMLFactory.eINSTANCE.createMessage();
+ getContainer().getMessages().add(newMessage);
+
+ // newElement.setOwner(getSource());
+ // newElement.getOwnedElements().add(getTarget());
+
+ ElementInitializers.init_Message_3002(newMessage);
+
+ // Initialization of the message. This requires the creation of:
+ // 1. One CallEvent
+ // 2. Two MessageOccurrenceSpecifications
+ // 3. Initialization of all the elements (the above elements and the new
+ // message)
+ if ((source instanceof Element) && (target instanceof Element)) {
+ this.doDefaultMessageInitialize(container, (Element) source,
+ (Element) target, newMessage);
+ }
+
+ Diagram diagram = getDiagramFromRequest();
+ if (diagram != null) {
+ MultiDiagramUtil.AddEAnnotationReferenceToDiagram(diagram,
+ newMessage);
+ } else {
+ MultiDiagramUtil.addEAnnotationReferenceToDiagram(
+ UMLDiagramEditorPlugin.getInstance(), newMessage);
+ }
+
+ return newMessage;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected EClass getEClassToEdit() {
+ return UMLPackage.eINSTANCE.getInteraction();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in create link command"); //$NON-NLS-1$
+ }
+ return super.doExecuteWithResult(monitor, info);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected ConfigureRequest createConfigureRequest() {
+ ConfigureRequest request = super.createConfigureRequest();
+ request.setParameter(CreateRelationshipRequest.SOURCE, getSource());
+ request.setParameter(CreateRelationshipRequest.TARGET, getTarget());
+ return request;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ protected void setElementToEdit(EObject element) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getSource() {
+ return (Element) source;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getTarget() {
+ return (Element) target;
+ }
+
+ /**
+ * @generated
+ */
+ public Interaction getContainer() {
+ return container;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2ReorientCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2ReorientCommand.java
new file mode 100644
index 00000000000..ffbcb3a94c5
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message2ReorientCommand.java
@@ -0,0 +1,262 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.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 org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+
+import org.eclipse.papyrus.diagram.common.ids.ReorientLinkIDs;
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+import org.eclipse.papyrus.diagram.sequence.util.MessageCommonUtil;
+
+/**
+ * @generated
+ */
+public class Message2ReorientCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final int reorientDirection;
+
+ /**
+ * @generated
+ */
+ private final EObject oldEnd;
+
+ /**
+ * @generated
+ */
+ private final EObject newEnd;
+
+ /**
+ * @generated
+ */
+ private View node;
+
+ /**
+ * @generated
+ */
+ private View link;
+
+ /**
+ * @generated
+ */
+ public Message2ReorientCommand(ReorientRelationshipRequest request) {
+ super(request.getLabel(), request.getRelationship(), request);
+ reorientDirection = request.getDirection();
+ oldEnd = request.getOldRelationshipEnd();
+ newEnd = request.getNewRelationshipEnd();
+
+ if (request.getParameter(ReorientLinkIDs.nodeEditPart) != null) {
+ node = (View) request.getParameter(ReorientLinkIDs.nodeEditPart);
+ }
+ if (request.getParameter(ReorientLinkIDs.linkEditPart) != null) {
+ link = (View) request.getParameter(ReorientLinkIDs.linkEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (false == getElementToEdit() instanceof Message) {
+ return false;
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return canReorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return canReorientTarget();
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean canReorientSource() {
+ if (!(oldEnd instanceof Element && newEnd instanceof Element)) {
+ return false;
+ }
+ // if (getLink().getOwnedElements().size() != 1) {
+ // return false;
+ // }
+ // Element target = (Element) getLink().getOwnedElements().get(0);
+ if (!(getLink().eContainer() instanceof Interaction)) {
+ return false;
+ }
+
+ // Added code
+ if (!(getLink().getReceiveEvent() instanceof MessageOccurrenceSpecification)) {
+ return false;
+ }
+ MessageOccurrenceSpecification mosTarget = (MessageOccurrenceSpecification) getLink()
+ .getReceiveEvent();
+
+ // Get target element
+ Element target = MessageCommonUtil.getMessageDst(getLink());
+
+ // End added code
+
+ Interaction container = (Interaction) getLink().eContainer();
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canExistMessage_3002(container, getNewSource(), target);
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean canReorientTarget() {
+ if (!(oldEnd instanceof Element && newEnd instanceof Element)) {
+ return false;
+ }
+ // Element source = getLink().getOwner();
+ if (!(getLink().eContainer() instanceof Interaction)) {
+ return false;
+ }
+
+ // Added code
+ if (!(getLink().getSendEvent() instanceof MessageOccurrenceSpecification)) {
+ return false;
+ }
+ MessageOccurrenceSpecification mosSource = (MessageOccurrenceSpecification) getLink()
+ .getSendEvent();
+
+ // Get source element
+ Element source = MessageCommonUtil.getMessageSrc(getLink());
+
+ // End added code
+
+ Interaction container = (Interaction) getLink().eContainer();
+ return UMLBaseItemSemanticEditPolicy.LinkConstraints
+ .canExistMessage_3002(container, source, getNewTarget());
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ 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 NOT
+ */
+ protected CommandResult reorientSource() throws ExecutionException {
+ // getLink().setOwner(getNewSource());
+
+ // Added code
+ if (getLink().getSendEvent() instanceof MessageOccurrenceSpecification) {
+ MessageOccurrenceSpecification mosSource = (MessageOccurrenceSpecification) getLink()
+ .getSendEvent();
+
+ mosSource.getCovereds().clear();
+
+ if (getNewSource() instanceof Lifeline) {
+ mosSource.getCovereds().add((Lifeline) getNewSource());
+ } else if (getNewSource() instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) getNewSource();
+ mosSource.getCovereds().add(bes.getCovereds().get(0));
+ }
+ }
+ // End added code
+
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult reorientTarget() throws ExecutionException {
+ // getLink().getOwnedElements().remove(getOldTarget());
+ // getLink().getOwnedElements().add(getNewTarget());
+
+ // Added code
+ if (getLink().getReceiveEvent() instanceof MessageOccurrenceSpecification) {
+ MessageOccurrenceSpecification mosTarget = (MessageOccurrenceSpecification) getLink()
+ .getReceiveEvent();
+
+ mosTarget.getCovereds().clear();
+
+ if (getNewTarget() instanceof Lifeline) {
+ mosTarget.getCovereds().add((Lifeline) getNewTarget());
+ } else if (getNewTarget() instanceof BehaviorExecutionSpecification) {
+ BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) getNewSource();
+ mosTarget.getCovereds().add(bes.getCovereds().get(0));
+ }
+ }
+ // End added code
+
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected Message getLink() {
+ return (Message) getElementToEdit();
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getOldSource() {
+ return (Element) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getNewSource() {
+ return (Element) newEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getOldTarget() {
+ return (Element) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected Element getNewTarget() {
+ return (Element) newEnd;
+ }
+}
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message3CreateCommand.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message3CreateCommand.java
new file mode 100644
index 00000000000..fe2fa751768
--- /dev/null
+++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/edit/commands/Message3CreateCommand.java
@@ -0,0 +1,201 @@
+/***************************************************************************
+ * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte,
+ * Generalitat de la Comunitat Valenciana . All rights reserved. This program
+ * and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation
+ *
+ ******************************************************************************/
+package org.eclipse.papyrus.diagram.sequence.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.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interaction;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.papyrus.diagram.common.util.MultiDiagramUtil;
+import org.eclipse.papyrus.diagram.sequence.edit.policies.UMLBaseItemSemanticEditPolicy;
+import org.eclipse.papyrus.diagram.sequence.part.UMLDiagramEditorPlugin;
+import org.eclipse.papyrus.diagram.sequence.providers.ElementInitializers;
+
+/**
+ * @generated NOT
+ */
+public class Message3CreateCommand extends MessageTypeLinkCreateCommandCommon {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ private Interaction container;
+
+ /**
+ * @generated
+ */
+ public Message3CreateCommand(CreateRelationshipRequest request,
+ EObject source, EObject target) {
+ super(request);
+ this.source = source;
+ this.target = target;
+ if (request.getContainmentFeature() == null) {
+ setContainmentFeature(UMLPackage.eINSTANCE.getInteraction_Message());
+ }
+
+ // 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 Interaction) {
+ container = (Interaction) element;
+ super.setElementToEdit(container);
+ break;
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != nu