Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2015-12-02 14:45:38 +0000
committerGerrit Code Review @ Eclipse.org2015-12-04 12:59:05 +0000
commitf8dedc59a0e9bc39beaa61b7a8c2cad1252c9438 (patch)
tree0e03fa04aaa10fd1c0c48028dec5a61b64bd06c9 /plugins
parent1f171bd0213d10d1d791f622e7ebf0b6484c40c5 (diff)
downloadorg.eclipse.papyrus-f8dedc59a0e9bc39beaa61b7a8c2cad1252c9438.tar.gz
org.eclipse.papyrus-f8dedc59a0e9bc39beaa61b7a8c2cad1252c9438.tar.xz
org.eclipse.papyrus-f8dedc59a0e9bc39beaa61b7a8c2cad1252c9438.zip
Bug 477384: [Canonical] Should not use drop requests to create views
https://bugs.eclipse.org/bugs/show_bug.cgi?id=477384 Changes to core APIs to remove PapyrusCanonicalEditPolicy's dependence on the generated diagram drag-and-drop behavior: * extract the CommonDiagramDragDropEditPolicy's abstract API for information about diagram-specific view types into a new service * update the canonical edit-policy and diagram-to-diagram synchronization infrastructure to use the new VisualTypeService to obtain information about the diagram's specific view types to then let the view service create views without resorting to drop commands * update extensions of various canonical strategies in the UML diagrams to adapt to the new drop-free synchronization mechanism Update the Papyrus Diagram GMFGen extensions and code generation templates to add generation of the IVisualTypeProvider that plugs into the new VisualTypeService to support canonical synchronization and drag-and-drop. Includes regeneration of the GMFGen extension model using EMF's most recent templates, which result in minor changes to most model source files. Regenerate all UML diagrams to create and register the visual type provider extensions. Also update the BREE for diagrams to 1.8 because at least one of them requires Java 8 to compile properly. * Note that the interaction overview diagram uses a code generator that is not published on Eclipse.org, so I had to emulate the code generation step for this one * Note also that the SysML 1.1 diagrams likewise cannot be re-generated but, moreover, they do not implement the common pattern for Visual ID Registry, so they are also updated "by hand" for parity with the Mars implementation of drag-and-drop (which had gaps) Deprecate the ICreationTargetStrategy extension API which was only needed to redirect drag-and-drop requests, but these are no longer employed in the canonical synchronization. Also some fixes for region layout problems in the State Machine Diagram: * update custom creation edit policies to re-use the commands used by drag-and-drop and untargeted creation that perform initial placement of new regions * fix the GMFGen to register the custom creation edit policy for the state machine compartment Change-Id: I3afc68d6f0f1bfe05e336c9138a7f1acbc8f643b
Diffstat (limited to 'plugins')
-rw-r--r--plugins/developer/org.eclipse.papyrus.codegen/.classpath14
-rw-r--r--plugins/developer/org.eclipse.papyrus.codegen/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/developer/org.eclipse.papyrus.codegen/META-INF/MANIFEST.MF6
-rw-r--r--plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusCodegenEmitters.java4
-rw-r--r--plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusGenerator.java14
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/.classpath16
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF32
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/build.properties4
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/manifest.xtend7
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/VisualTypeProvider.xtend100
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend10
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/.classpath2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore7
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel16
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalMetamodelType.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java112
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java10
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java84
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java5
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java5
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java5
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalElementTypesLibraryImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalMetamodelTypeImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java188
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java14
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java64
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java2
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java20
-rw-r--r--plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java31
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.classpath2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.di2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.mediawiki160
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.notation572
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.uml111
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/gmfgenextension.jpgbin0 -> 12852 bytes
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/main.jpgbin0 -> 50206 bytes
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/schema/strategies.exsd7
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/editpolicy/PapyrusCanonicalEditPolicy.java209
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/CreationTargetStrategyRegistration.java5
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ICreationTargetStrategy.java5
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ISemanticChildrenStrategy.java99
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/SemanticChildrenStrategyRegistry.java12
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/VisuallyNestedElementsImpl.java112
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/util/CommandTreeIterator.java10
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml1
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/schema/visualTypeProviders.exsd128
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/commands/requests/CanonicalDropObjectsRequest.java4
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/AbstractVisualTypeProvider.java46
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetElementTypeOperation.java52
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetLinkTypeOperation.java52
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetNodeTypeOperation.java52
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeOperation.java26
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeProvider.java70
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/VisualTypeService.java179
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/AbstractNestedDiagramViewsSyncFeature.java62
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/DiagramEdgesSyncFeature.java75
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java22
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.xml8
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/BlockDefinitionVisualTypeProvider.java34
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/provider/SysMLVisualTypeProvider.java120
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml8
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/provider/InternalBlockVisualTypeProvider.java28
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml8
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/provider/ParametricVisualTypeProvider.java28
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml8
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src-gen/org/eclipse/papyrus/sysml/diagram/requirement/provider/IGraphicalTypeRegistry.java16
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/RequirementVisualTypeProvider.java28
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/META-INF/MANIFEST.MF3
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/canonical/ActivityCanonicalCreationTargetStrategy.java90
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/plugin.xml27
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/providers/UMLVisualTypeProvider.java68
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/META-INF/MANIFEST.MF2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/plugin.xml7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.classpath14
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/META-INF/MANIFEST.MF4
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/canonical/DefaultUMLSemanticChildrenStrategy.java176
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editpolicies/CommonDiagramDragDropEditPolicy.java37
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.classpath16
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/META-INF/MANIFEST.MF167
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/CommunicationCanonicalCreationTargetStrategy.java45
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/LifelineSemanticChildrenStrategy.java61
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/plugin.xml14
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/src/org/eclipse/papyrus/uml/diagram/communication/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.classpath16
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/META-INF/MANIFEST.MF147
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/META-INF/MANIFEST.MF2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/PropertyPartCompartmentSemanticChildrenStrategy.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/StructuredClassifierSemanticChildrenStrategy.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/plugin.xml7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/src/org/eclipse/papyrus/uml/diagram/composite/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/META-INF/MANIFEST.MF2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/plugin.xml8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/src/org/eclipse/papyrus/uml/diagram/deployment/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/META-INF/MANIFEST.MF2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/plugin.xml7
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/src/org/eclipse/papyrus/uml/diagram/interactionoverview/provider/UMLVisualTypeProvider.java68
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.classpath16
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/META-INF/MANIFEST.MF5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/custom-src/org/eclipse/papyrus/uml/diagram/profile/custom/canonical/ProfileDiagramCreationTargetStrategy.java48
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/plugin.xml46
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/src/org/eclipse/papyrus/uml/diagram/profile/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/META-INF/MANIFEST.MF167
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/plugin.xml1000
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/src/org/eclipse/papyrus/uml/diagram/sequence/providers/UMLVisualTypeProvider.java68
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/canonical/StateMachineCanonicalCreationTargetStrategy.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomRegionCompartmentCreationEditPolicy.java36
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateCompartmentCreationEditPolicy.java54
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateMachineCompartmentCreationEditPolicy.java33
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/model/stateMachineDiagram.gmfgen4
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml23
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/parts/StateMachineCompartmentEditPart.java2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/META-INF/MANIFEST.MF157
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/plugin.xml8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/src/org/eclipse/papyrus/uml/diagram/timing/providers/UMLVisualTypeProvider.java67
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/META-INF/MANIFEST.MF175
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/plugin.xml8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/src/org/eclipse/papyrus/uml/diagram/usecase/providers/UMLVisualTypeProvider.java67
193 files changed, 5367 insertions, 1519 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.codegen/.classpath b/plugins/developer/org.eclipse.papyrus.codegen/.classpath
index 2d1a4302f04..eca7bdba8f0 100644
--- a/plugins/developer/org.eclipse.papyrus.codegen/.classpath
+++ b/plugins/developer/org.eclipse.papyrus.codegen/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/developer/org.eclipse.papyrus.codegen/.settings/org.eclipse.jdt.core.prefs b/plugins/developer/org.eclipse.papyrus.codegen/.settings/org.eclipse.jdt.core.prefs
index 4759947300a..62a08f4494d 100644
--- a/plugins/developer/org.eclipse.papyrus.codegen/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/developer/org.eclipse.papyrus.codegen/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
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.compiler.source=1.8
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_annotation=0
diff --git a/plugins/developer/org.eclipse.papyrus.codegen/META-INF/MANIFEST.MF b/plugins/developer/org.eclipse.papyrus.codegen/META-INF/MANIFEST.MF
index 85f5a5b840c..4b70d2d62ee 100644
--- a/plugins/developer/org.eclipse.papyrus.codegen/META-INF/MANIFEST.MF
+++ b/plugins/developer/org.eclipse.papyrus.codegen/META-INF/MANIFEST.MF
@@ -7,7 +7,9 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.gmf.codegen.ui;bundle-version="1.1.0",
org.eclipse.gmf.codegen.xtend;bundle-version="1.0.0",
org.eclipse.gmf.codegen.xtend.ui;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0"
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.def;bundle-version="1.2.0",
+ org.eclipse.papyrus.gmfgenextension;bundle-version="1.2.0"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-Version: 1.2.0.qualifier
@@ -16,4 +18,4 @@ Bundle-Localization: plugin
Bundle-Activator: org.eclipse.papyrus.codegen.Activator
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.papyrus.codegen;singleton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusCodegenEmitters.java b/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusCodegenEmitters.java
index fa080f800e6..dd92268d5f5 100644
--- a/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusCodegenEmitters.java
+++ b/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusCodegenEmitters.java
@@ -23,6 +23,10 @@ public class PapyrusCodegenEmitters extends CodegenEmittersWithXtend2 {
super(useBaseTemplatesOnly, templateDirectory, includeDynamicModelTemplates);
}
+ public JavaClassEmitter getVisualTypeProviderEmitter() {
+ return createPrimaryJavaClassEmitter("aspects::xpt::providers::VisualTypeProvider"); //$NON-NLS-1$
+ }
+
@Override
public JavaClassEmitter getDiagramCanonicalEditPolicyEmitter() {
return null;
diff --git a/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusGenerator.java b/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusGenerator.java
index 71e932391d0..53e5adf7f6c 100644
--- a/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusGenerator.java
+++ b/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/PapyrusGenerator.java
@@ -12,14 +12,23 @@
*****************************************************************************/
package org.eclipse.papyrus.codegen;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
import org.eclipse.gmf.codegen.xtend.ui.handlers.GeneratorWithXtend2;
import org.eclipse.gmf.common.UnexpectedBehaviourException;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider;
+@SuppressWarnings("restriction")
public class PapyrusGenerator extends GeneratorWithXtend2 {
+ private final PapyrusCodegenEmitters myEmitters;
+ private GenDiagram myDiagram;
+
public PapyrusGenerator(GenEditorGenerator genModel, PapyrusCodegenEmitters emitters) {
super(genModel, emitters);
+
+ this.myEmitters = emitters;
+ this.myDiagram = genModel.getDiagram();
}
/**
@@ -29,6 +38,11 @@ public class PapyrusGenerator extends GeneratorWithXtend2 {
protected void customRun() throws InterruptedException, UnexpectedBehaviourException {
super.customRun();
+ generateVisualTypeProvider();
}
+ private void generateVisualTypeProvider() throws InterruptedException, UnexpectedBehaviourException {
+ String providerClassName = GenVisualTypeProvider.getQualifiedClassName(myDiagram);
+ doGenerateJavaClass(myEmitters.getVisualTypeProviderEmitter(), providerClassName, myDiagram);
+ }
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/.classpath b/plugins/developer/org.eclipse.papyrus.def/.classpath
index 4c65bf49a0c..2b33b90779b 100644
--- a/plugins/developer/org.eclipse.papyrus.def/.classpath
+++ b/plugins/developer/org.eclipse.papyrus.def/.classpath
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="xtend"/>
- <classpathentry kind="src" path="xtend-gen"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="xtend"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/developer/org.eclipse.papyrus.def/.settings/org.eclipse.jdt.core.prefs b/plugins/developer/org.eclipse.papyrus.def/.settings/org.eclipse.jdt.core.prefs
index 4759947300a..62a08f4494d 100644
--- a/plugins/developer/org.eclipse.papyrus.def/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/developer/org.eclipse.papyrus.def/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
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.compiler.source=1.8
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_annotation=0
diff --git a/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF b/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF
index af6175e6524..7841b77e423 100644
--- a/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF
+++ b/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF
@@ -1,23 +1,14 @@
Manifest-Version: 1.0
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,
- 4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,
- 4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.4.0,
- 3.0.0)";visibility:=reexport,
- org.eclipse.emf.codegen.ecore;bundle-version="[2.4.0,
- 3.0.0)";visibility:=reexport,
- org.eclipse.draw2d;bundle-version="[3.2.0,
- 4.0.0)",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.codegen.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.draw2d;bundle-version="[3.2.0,4.0.0)",
org.eclipse.gmf.runtime.notation,
- org.eclipse.gmf.common;bundle-version="[1.2.0,
- 2.0.0)";visibility:=reexport,
- org.eclipse.gmf.validate;bundle-version="[1.1.0,
- 2.0.0)",
- org.eclipse.gmf.codegen;bundle-version="[2.0.0,
- 3.1.0)",
- org.eclipse.gmf.graphdef;bundle-version="[2.0.0,
- 3.0.0)",
+ org.eclipse.gmf.common;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
+ org.eclipse.gmf.validate;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.gmf.codegen;bundle-version="[2.0.0,3.1.0)",
+ org.eclipse.gmf.graphdef;bundle-version="[2.0.0,3.0.0)",
org.eclipse.xtext;bundle-version="2.3.1",
org.eclipse.xtext.builder;bundle-version="2.3.1",
org.eclipse.xtend.lib,
@@ -25,8 +16,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,
com.google.guava;bundle-version="11.0.0",
org.eclipse.xtext.xbase.lib,
org.eclipse.gmf.codegen.xtend;bundle-version="1.0.0",
- org.eclipse.papyrus.gmfgenextension;bundle-version="1.2.0",
- org.eclipse.papyrus.codegen;bundle-version="1.2.0"
+ org.eclipse.papyrus.gmfgenextension;bundle-version="1.2.0"
Bundle-Vendor: %providerName
Bundle-ClassPath: .,
bin/
@@ -36,4 +26,4 @@ Bundle-Localization: plugin
Bundle-Activator: org.eclipse.gmf.codegen.util.DefaultActivator
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.papyrus.def;singleton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/developer/org.eclipse.papyrus.def/build.properties b/plugins/developer/org.eclipse.papyrus.def/build.properties
index 7a449d629c2..843e1a7d8bb 100644
--- a/plugins/developer/org.eclipse.papyrus.def/build.properties
+++ b/plugins/developer/org.eclipse.papyrus.def/build.properties
@@ -1,3 +1,7 @@
+jars.compile.order=.
+source.. = xtend/,\
+ xtend-gen/
+output.. = bin/
bin.includes = META-INF/,\
.,\
about.html,\
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/manifest.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/manifest.xtend
index 71c62ab4d52..47cf84a0fcd 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/manifest.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/manifest.xtend
@@ -1,7 +1,5 @@
-
/*
- * Copyright (c) 2007, 2009 Borland Software Corporation
-
+ * Copyright (c) 2007, 2015 Borland Software Corporation, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -12,6 +10,7 @@
* Dmitry Stadnik (Borland) - initial API and implementation
* Thibault Landre (Atos Origin) - add Papyrus dependencies to Papyrus GMF diagram*
* Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr : add the dependencyorg.eclipse.papyrus.infra.services.edit
+ * Christian W. Damus - bug 477384
*/
package aspects.xpt.plugin
@@ -73,7 +72,7 @@ Require-Bundle: org.eclipse.core.runtime,
'''
override def executionEnvironment(GenPlugin it) '''
- Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.8
'''
} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/VisualTypeProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/VisualTypeProvider.xtend
new file mode 100644
index 00000000000..a8597c8c102
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/VisualTypeProvider.xtend
@@ -0,0 +1,100 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package aspects.xpt.providers
+
+import javax.inject.Inject
+import javax.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider
+import xpt.CodeStyle
+import xpt.Common
+import xpt.editor.VisualIDRegistry
+import xpt.providers.ElementTypes
+
+/**
+ * Template for the class that plugs in knowledge of the Visual IDs of this diagram
+ * into the {@code VisualTypeService}.
+ */
+@Singleton class VisualTypeProvider {
+
+ @Inject extension Common
+ @Inject extension CodeStyle
+ @Inject VisualIDRegistry visualIDs
+ @Inject ElementTypes elementTypes
+
+ def getPackageName(GenDiagram it) '''«it.providersPackageName»'''
+
+ def getClassName(GenDiagram it) '''«GenVisualTypeProvider.getClassName(it)»'''
+
+ def getQualifiedClassName(GenDiagram it) '''«packageName».«className»'''
+
+ protected def constructor(GenDiagram it) '''
+ «generatedMemberComment»
+ public «it.className»() {
+ super();
+ }
+ '''
+
+ protected def getElementType_(GenDiagram it) '''
+ «generatedMemberComment»
+ «overrideI»
+ public org.eclipse.gmf.runtime.emf.type.core.IElementType getElementType(org.eclipse.gmf.runtime.notation.Diagram diagram, String viewType) {
+ org.eclipse.gmf.runtime.emf.type.core.IElementType result = null;
+
+ try {
+ result = «elementTypes.qualifiedClassName(it)».getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+ '''
+
+ protected def getNodeType(GenDiagram it) '''
+ «generatedMemberComment»
+ «overrideI»
+ public String getNodeType(View parentView, EObject element) {
+ int result = «visualIDs.getNodeVisualIDMethodCall(it)»(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+ '''
+
+ protected def getLinkType(GenDiagram it) '''
+ «generatedMemberComment»
+ «overrideI»
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = «visualIDs.getLinkWithClassVisualIDMethodCall(it)»(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+ '''
+
+ public def VisualTypeProvider(GenDiagram it) '''
+ «editorGen.copyright»
+ package «packageName»;
+
+ «generatedClassComment»
+ public class «className» extends org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider {
+
+ «constructor»
+
+ «getElementType_»
+
+ «getNodeType»
+
+ «getLinkType»
+
+ }
+ '''
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend
index e4f07ae0307..f77c1431b5f 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend
@@ -32,6 +32,7 @@ import xpt.providers.ShortcutsDecoratorProvider
@Inject EditPartProvider editPartProvider;
@Inject ParserProvider labelParsers;
@Inject ShortcutsDecoratorProvider shorcutProvider;
+ @Inject VisualTypeProvider visualTypeProvider;
override extensions(GenDiagram it) '''
«extraLineBreak»
@@ -138,6 +139,15 @@ import xpt.providers.ShortcutsDecoratorProvider
«tripleSpace(3)»<advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
«tripleSpace(2)»</binding>
«tripleSpace(1)»</extension>
+
+ «extraLineBreak»
+ «tripleSpace(1)»<extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ «tripleSpace(2)»«xmlGeneratedTag»
+ «tripleSpace(2)»<visualTypeProvider
+ «tripleSpace(4)»class="«visualTypeProvider.getQualifiedClassName(it)»"
+ «tripleSpace(4)»diagramType="«editorGen.modelID»">
+ «tripleSpace(3)»</visualTypeProvider>
+ «tripleSpace(1)»</extension>
'''
def getLocalDefineTypedElements(GenDiagram it) {
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/.classpath b/plugins/developer/org.eclipse.papyrus.gmfgenextension/.classpath
index ad32c83a788..eca7bdba8f0 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/.classpath
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs b/plugins/developer/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF b/plugins/developer/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF
index da8e38f2ead..4f68991afb3 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF
@@ -20,4 +20,4 @@ Bundle-Localization: plugin
Bundle-Name: %pluginName
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.papyrus.gmfgenextension;singleton:=true
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore b/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore
index 8e4b2714324..988b043f97b 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore
@@ -188,4 +188,11 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="nodePlateQualifiedName"
eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenVisualTypeProvider" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Configuration of this diagram's provider to the Visual Type Service,&#xA;which enables canonical view synchronization, drag-and-drop, and&#xA;possibly other capabilities."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="UMLVisualTypeProvider"/>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel b/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel
index ef3fb659fa6..c391a9c9c6e 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.papyrus.gmfgenextension/src" modelPluginID="org.eclipse.papyrus.gmfgenextension"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2015 CEA LIST and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; CEA LIST - Initial API and implementation&#xA;"
+ modelDirectory="/org.eclipse.papyrus.gmfgenextension/src" modelPluginID="org.eclipse.papyrus.gmfgenextension"
modelName="PapyrusGmfgenExtension" importerID="org.eclipse.emf.importer.ecore"
- complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.genmodel#//domaincontextcodegen platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.emf.codegen.ecore/model/GenModel.genmodel#//genmodel platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.genmodel#//gmfgen">
+ complianceLevel="8.0" copyrightFields="false" usedGenPackages="../../org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.genmodel#//domaincontextcodegen platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.emf.codegen.ecore/model/GenModel.genmodel#//genmodel platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.genmodel#//gmfgen">
<foreignModel>papyrusGmfgenExtension.ecore</foreignModel>
<genPackages prefix="Papyrusgmfgenextension" basePackage="org.eclipse.papyrus" disposableProviderFactory="true"
ecorePackage="papyrusGmfgenExtension.ecore#/">
@@ -94,5 +95,16 @@
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//ExternalMetamodelType/elementTypeRef"/>
</genClasses>
<genClasses ecoreClass="papyrusGmfgenExtension.ecore#//GenerateUsingElementTypeCreationCommand"/>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//CustomDiagramUpdaterSingleton">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//CustomDiagramUpdaterSingleton/singletonPath"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//SpecificNodePlate">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//SpecificNodePlate/editParts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//SpecificNodePlate/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//SpecificNodePlate/nodePlateQualifiedName"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//GenVisualTypeProvider">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//GenVisualTypeProvider/className"/>
+ </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java
index 13ec83743f0..003693c92a6 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java
@@ -14,10 +14,10 @@ package org.eclipse.papyrus.papyrusgmfgenextension;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies#getBaseEditHelperPackage <em>Base Edit Helper Package</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAdditionalEditPartCandies()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java
index b2aa1d05e54..55b9eb86f0a 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java
@@ -17,13 +17,13 @@ import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDomainDiagramElement <em>Domain Diagram Element</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateTopLevelNodes <em>Alternate Top Level Nodes</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateLinkNodes <em>Alternate Link Nodes</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDiagram <em>Diagram</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateCanvas()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java
index 13e13ba8d75..6c71e6ce895 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java
@@ -16,11 +16,11 @@ import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getGenLinkNode <em>Gen Link Node</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getTypeModelFacet <em>Type Model Facet</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenLink()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java
index 26e9eb0ddc3..223ff2c2189 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java
@@ -16,11 +16,11 @@ import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getGenTopLevelNode <em>Gen Top Level Node</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getTypeModelFacet <em>Type Model Facet</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenTopLevelNode()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java
index d992a1d6b29..4d95327e789 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java
@@ -15,10 +15,10 @@ import org.eclipse.emf.ecore.EObject;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement#getComment <em>Comment</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCommentedElement()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java
index 445c23035f1..dcdf92cf696 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java
@@ -20,11 +20,11 @@ import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#getCompartments <em>Compartments</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentTitleVisibilityPreference()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java
index 78758d5911d..6365f552082 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java
@@ -20,11 +20,11 @@ import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#getCompartments <em>Compartments</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentVisibilityPreference()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java
index 0964f18ff09..4402c495b88 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java
@@ -12,10 +12,10 @@ import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy#getGenView <em>Gen View</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getConstrainedByReferenceCompartmentItemSemanticEditPolicy()
* @model annotation=
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java
index 5616f3db52a..f4d82f478ad 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java
@@ -10,10 +10,10 @@ package org.eclipse.papyrus.papyrusgmfgenextension;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton#getSingletonPath <em>Singleton Path</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCustomDiagramUpdaterSingleton()
* @model annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='This object is used to register the diagram updater instance to use in the code. \r\nThe class must extends the generated diagram updater.\r\n\r\n'"
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java
index e8e6bdbab0a..d11b7ff9cfa 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java
@@ -24,11 +24,11 @@ import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getGenView <em>Gen View</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingDeleteService()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java
index 9100e3c4bb2..2bfea83617b 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java
@@ -24,11 +24,11 @@ import org.eclipse.gmf.codegen.gmfgen.GenLink;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getGenView <em>Gen View</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingReorientService()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java
index 17c02a79607..2295f6cdbf7 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java
@@ -24,6 +24,7 @@ import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getGenView <em>Gen View</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#isIsAbstract <em>Is Abstract</em>}</li>
@@ -32,7 +33,6 @@ import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperOwnedEditPart <em>Super Owned Edit Part</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java
index 7179d7f3f82..d4041e2e943 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java
@@ -19,10 +19,10 @@ package org.eclipse.papyrus.papyrusgmfgenextension;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook#getClasspath <em>Classpath</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExternalHook()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalMetamodelType.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalMetamodelType.java
index 6921dcd8171..348974a6c38 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalMetamodelType.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalMetamodelType.java
@@ -12,10 +12,10 @@ import org.eclipse.papyrus.domaincontextcodegen.ElementType;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalMetamodelType#getElementTypeRef <em>Element Type Ref</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExternalMetamodelType()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java
index caad4aa7270..5f8d2782d02 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java
@@ -17,11 +17,11 @@ import org.eclipse.gmf.codegen.gmfgen.GenNode;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenNode <em>Gen Node</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenConstraint <em>Gen Constraint</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenNodeConstraint()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java
new file mode 100644
index 00000000000..517f395e8c4
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import java.util.Optional;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Visual Type Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Configuration of this diagram's provider to the Visual Type Service,
+ * which enables canonical view synchronization, drag-and-drop, and
+ * possibly other capabilities.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenVisualTypeProvider()
+ * @model
+ * @generated
+ */
+public interface GenVisualTypeProvider extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Class Name</b></em>' attribute.
+ * The default value is <code>"UMLVisualTypeProvider"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Class Name</em>' attribute.
+ * @see #setClassName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenVisualTypeProvider_ClassName()
+ * @model default="UMLVisualTypeProvider"
+ * @generated
+ */
+ String getClassName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Class Name</em>' attribute.
+ * @see #getClassName()
+ * @generated
+ */
+ void setClassName(String value);
+
+ /**
+ * Obtains the class name to generate for the Visual Type Provider
+ * extension of the given {@code diagram}, which defaults to
+ * {@code "UMLVisualTypeProvider"} in the case that either there
+ * is no visual type provider in the GMFGen model or it does not
+ * have a class name.
+ *
+ * @param diagram
+ * a diagram generator model element
+ * @return the provider class name
+ */
+ static String getClassName(GenDiagram diagram) {
+ return Optional.ofNullable(diagram.eResource())
+ .map(Resource::getContents)
+ .orElse(ECollections.<EObject> emptyEList())
+ .stream()
+ .filter(PapyrusExtensionRootNode.class::isInstance).map(PapyrusExtensionRootNode.class::cast)
+ .findFirst()
+ .map(PapyrusExtensionRootNode::getExtensionNodes)
+ .filter(GenVisualTypeProvider.class::isInstance).map(GenVisualTypeProvider.class::cast)
+ .map(GenVisualTypeProvider::getClassName)
+ .orElse(PapyrusgmfgenextensionPackage.Literals.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME.getDefaultValueLiteral());
+ }
+
+ /**
+ * Obtains the qualified class name to generate for the Visual Type Provider
+ * extension of the given {@code diagram}.
+ *
+ * @param diagram
+ * a diagram generator model element
+ * @return the qualified provider class name
+ */
+ static String getQualifiedClassName(GenDiagram diagram) {
+ String className = getClassName(diagram);
+
+ return String.format("%s.%s", diagram.getProvidersPackageName(), className);
+ }
+} // GenVisualTypeProvider
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java
index 5ab9f3e5038..ae9a6ecf8cf 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java
@@ -26,6 +26,7 @@ import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getRole <em>Role</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getIconPathRole <em>Icon Path Role</em>}</li>
@@ -33,7 +34,6 @@ import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getExternalNodeLabels <em>External Node Labels</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java
index 6dce547b80b..a31473deb63 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java
@@ -15,10 +15,10 @@ import org.eclipse.emf.common.util.EList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas#getAlternateCanvases <em>Alternate Canvases</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getMutatingCanvas()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java
index e73ef958619..472417e2c37 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java
@@ -14,10 +14,10 @@ package org.eclipse.papyrus.papyrusgmfgenextension;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart#getName <em>Name</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getOwnedEditpart()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java
index 98f6a8cf8f9..358ac1d3fa9 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java
@@ -15,10 +15,10 @@ import org.eclipse.emf.common.util.EList;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode#getExtensionNodes <em>Extension Nodes</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPapyrusExtensionRootNode()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java
index 35a0f2caa43..ebfc8e2035a 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java
@@ -289,6 +289,16 @@ public interface PapyrusgmfgenextensionFactory extends EFactory {
SpecificNodePlate createSpecificNodePlate();
/**
+ * Returns a new object of class '<em>Gen Visual Type Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Gen Visual Type Provider</em>'.
+ * @generated
+ */
+ GenVisualTypeProvider createGenVisualTypeProvider();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java
index f8b5c162c7b..601bbec5a49 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java
@@ -1648,6 +1648,47 @@ public interface PapyrusgmfgenextensionPackage extends EPackage {
/**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl <em>Gen Visual Type Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenVisualTypeProvider()
+ * @generated
+ */
+ int GEN_VISUAL_TYPE_PROVIDER = 26;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_VISUAL_TYPE_PROVIDER__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Gen Visual Type Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_VISUAL_TYPE_PROVIDER_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
* Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView <em>Extended Gen View</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2486,6 +2527,29 @@ public interface PapyrusgmfgenextensionPackage extends EPackage {
EAttribute getSpecificNodePlate_NodePlateQualifiedName();
/**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider <em>Gen Visual Type Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Gen Visual Type Provider</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider
+ * @generated
+ */
+ EClass getGenVisualTypeProvider();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName <em>Class Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Class Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName()
+ * @see #getGenVisualTypeProvider()
+ * @generated
+ */
+ EAttribute getGenVisualTypeProvider_ClassName();
+
+ /**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3210,6 +3274,26 @@ public interface PapyrusgmfgenextensionPackage extends EPackage {
*/
EAttribute SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME = eINSTANCE.getSpecificNodePlate_NodePlateQualifiedName();
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl <em>Gen Visual Type Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenVisualTypeProvider()
+ * @generated
+ */
+ EClass GEN_VISUAL_TYPE_PROVIDER = eINSTANCE.getGenVisualTypeProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME = eINSTANCE.getGenVisualTypeProvider_ClassName();
+
}
} // PapyrusgmfgenextensionPackage
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java
index 09c734ba856..55e49f3ea10 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java
@@ -21,11 +21,11 @@ package org.eclipse.papyrus.papyrusgmfgenextension;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getTriggeringCondition <em>Triggering Condition</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getAction <em>Action</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPropertyRefreshHook()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java
index ef150c8eb0e..128dc310950 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java
@@ -29,10 +29,10 @@ import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater#getGenNode <em>Gen Node</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificDiagramUpdater()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java
index e0ca1e722dc..eaf937c256a 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java
@@ -30,10 +30,10 @@ import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator#getGenChildSideAffixedNode <em>Gen Child Side Affixed Node</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificLocator()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java
index 4723022c81f..e743f7cf45a 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java
@@ -30,10 +30,10 @@ import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel#getGenExternalNodeLabel <em>Gen External Node Label</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificLocatorExternalLabel()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java
index 672529582bf..5815ed4cd50 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java
@@ -21,12 +21,12 @@ import org.eclipse.gmf.codegen.gmfgen.GenNode;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getEditParts <em>Edit Parts</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getNodePlateQualifiedName <em>Node Plate Qualified Name</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificNodePlate()
* @model
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java
index 27563720aec..f75fc69ca67 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java
@@ -18,10 +18,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AdditionalEditPartCandiesImpl#getBaseEditHelperPackage <em>Base Edit Helper Package</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java
index b548d4aff40..a6d04160e24 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java
@@ -29,13 +29,13 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getDomainDiagramElement <em>Domain Diagram Element</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getAlternateTopLevelNodes <em>Alternate Top Level Nodes</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getAlternateLinkNodes <em>Alternate Link Nodes</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getDiagram <em>Diagram</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java
index 5f4657dc0a6..729b0843ce3 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java
@@ -22,11 +22,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl#getGenLinkNode <em>Gen Link Node</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl#getTypeModelFacet <em>Type Model Facet</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -171,8 +171,7 @@ public class AlternateGenLinkImpl extends CommentedElementImpl implements Altern
if (msgs != null) {
msgs.dispatch();
}
- }
- else if (eNotificationRequired()) {
+ } else if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET, newTypeModelFacet, newTypeModelFacet));
}
}
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java
index 0f6897f67aa..03c9def22a4 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java
@@ -22,11 +22,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl#getGenTopLevelNode <em>Gen Top Level Node</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl#getTypeModelFacet <em>Type Model Facet</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -171,8 +171,7 @@ public class AlternateGenTopLevelNodeImpl extends CommentedElementImpl implement
if (msgs != null) {
msgs.dispatch();
}
- }
- else if (eNotificationRequired()) {
+ } else if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET, newTypeModelFacet, newTypeModelFacet));
}
}
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java
index a15fdbd3dc3..7c98f63cd41 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java
@@ -19,10 +19,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CommentedElementImpl#getComment <em>Comment</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java
index 868c079a09b..69c54228e1d 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java
@@ -23,11 +23,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl#isVisibleByDefault <em>Visible By Default</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl#getCompartments <em>Compartments</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java
index af95370759e..bfe584f23b9 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java
@@ -23,11 +23,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl#isVisibleByDefault <em>Visible By Default</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl#getCompartments <em>Compartments</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java
index 990f1188d15..42c356e72b8 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java
@@ -17,10 +17,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl#getGenView <em>Gen View</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java
index 1d7fac1ae5e..1de40b70ad9 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java
@@ -14,10 +14,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CustomDiagramUpdaterSingletonImpl#getSingletonPath <em>Singleton Path</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java
index 07211391635..060f751a95d 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java
@@ -23,11 +23,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl#getGenView <em>Gen View</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java
index 126a126360a..76d9e82fb90 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java
@@ -23,11 +23,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl#getGenView <em>Gen View</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java
index bdba0015773..81628d60bd3 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java
@@ -26,6 +26,7 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getGenView <em>Gen View</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#isIsAbstract <em>Is Abstract</em>}</li>
@@ -34,7 +35,6 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getSuperOwnedEditPart <em>Super Owned Edit Part</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -265,8 +265,7 @@ public class ExtendedGenViewImpl extends CommentedElementImpl implements Extende
if (msgs != null) {
msgs.dispatch();
}
- }
- else if (eNotificationRequired()) {
+ } else if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK, newPropRefreshHook, newPropRefreshHook));
}
}
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalElementTypesLibraryImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalElementTypesLibraryImpl.java
index a6703f7318d..66fc9cf8e07 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalElementTypesLibraryImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalElementTypesLibraryImpl.java
@@ -17,10 +17,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalElementTypesLibraryImpl#getComment <em>Comment</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java
index 50cb6ef72c4..dbbb3ab5d6d 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java
@@ -18,10 +18,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalHookImpl#getClasspath <em>Classpath</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalMetamodelTypeImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalMetamodelTypeImpl.java
index 503b890cdef..7a5600afb16 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalMetamodelTypeImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalMetamodelTypeImpl.java
@@ -17,10 +17,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalMetamodelTypeImpl#getElementTypeRef <em>Element Type Ref</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java
index 8e058404391..3b5761b90b0 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java
@@ -25,11 +25,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl#getGenNode <em>Gen Node</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl#getGenConstraint <em>Gen Constraint</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java
new file mode 100644
index 00000000000..0f586c555eb
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Visual Type Provider</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GenVisualTypeProviderImpl extends CommentedElementImpl implements GenVisualTypeProvider {
+ /**
+ * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASS_NAME_EDEFAULT = "UMLVisualTypeProvider";
+
+ /**
+ * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected String className = CLASS_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GenVisualTypeProviderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.GEN_VISUAL_TYPE_PROVIDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getClassName() {
+ return className;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setClassName(String newClassName) {
+ String oldClassName = className;
+ className = newClassName;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME, oldClassName, className));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ return getClassName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ setClassName((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ setClassName(CLASS_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (className: ");
+ result.append(className);
+ result.append(')');
+ return result.toString();
+ }
+
+} // GenVisualTypeProviderImpl
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java
index d9019647397..7937bbf17a9 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java
@@ -10,8 +10,6 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Generate Using Element Type Creation Command</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java
index bfe4307cd54..7ad523f4860 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java
@@ -24,6 +24,7 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getRole <em>Role</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getIconPathRole <em>Icon Path Role</em>}</li>
@@ -31,7 +32,6 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getExternalNodeLabels <em>External Node Labels</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#isVisibleByDefault <em>Visible By Default</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java
index 6d634058b63..c14a7dc7d3b 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java
@@ -24,10 +24,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.MutatingCanvasImpl#getAlternateCanvases <em>Alternate Canvases</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java
index eca27709b21..03470ed64ba 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java
@@ -18,10 +18,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.OwnedEditpartImpl#getName <em>Name</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java
index 14b907be974..fdfb211a344 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java
@@ -22,10 +22,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Papyrus Extension Root Node</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusExtensionRootNodeImpl#getExtensionNodes <em>Extension Nodes</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java
index 86acbe040e5..c4248da1f21 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java
@@ -140,6 +140,8 @@ public class PapyrusgmfgenextensionFactoryImpl extends EFactoryImpl implements P
return createCustomDiagramUpdaterSingleton();
case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE:
return createSpecificNodePlate();
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER:
+ return createGenVisualTypeProvider();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -464,6 +466,18 @@ public class PapyrusgmfgenextensionFactoryImpl extends EFactoryImpl implements P
* @generated
*/
@Override
+ public GenVisualTypeProvider createGenVisualTypeProvider() {
+ GenVisualTypeProviderImpl genVisualTypeProvider = new GenVisualTypeProviderImpl();
+ return genVisualTypeProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public PapyrusgmfgenextensionPackage getPapyrusgmfgenextensionPackage() {
return (PapyrusgmfgenextensionPackage) getEPackage();
}
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java
index caa96baae62..c6affb53b60 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java
@@ -31,6 +31,7 @@ import org.eclipse.papyrus.papyrusgmfgenextension.ExternalElementTypesLibrary;
import org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook;
import org.eclipse.papyrus.papyrusgmfgenextension.ExternalMetamodelType;
import org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider;
import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference;
import org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas;
@@ -249,10 +250,23 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
private EClass specificNodePlateEClass = null;
/**
- * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass genVisualTypeProviderEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
* <p>
- * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc -->
+ * Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#eNS_URI
@@ -274,7 +288,9 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>
- * This method is used to initialize {@link PapyrusgmfgenextensionPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!--
+ * This method is used to initialize {@link PapyrusgmfgenextensionPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @see #eNS_URI
@@ -1072,6 +1088,28 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getGenVisualTypeProvider() {
+ return genVisualTypeProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getGenVisualTypeProvider_ClassName() {
+ return (EAttribute) genVisualTypeProviderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
@@ -1199,6 +1237,9 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
createEReference(specificNodePlateEClass, SPECIFIC_NODE_PLATE__EDIT_PARTS);
createEAttribute(specificNodePlateEClass, SPECIFIC_NODE_PLATE__NAME);
createEAttribute(specificNodePlateEClass, SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME);
+
+ genVisualTypeProviderEClass = createEClass(GEN_VISUAL_TYPE_PROVIDER);
+ createEAttribute(genVisualTypeProviderEClass, GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME);
}
/**
@@ -1263,6 +1304,7 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
generateUsingElementTypeCreationCommandEClass.getESuperTypes().add(this.getCommentedElement());
customDiagramUpdaterSingletonEClass.getESuperTypes().add(this.getCommentedElement());
specificNodePlateEClass.getESuperTypes().add(this.getCommentedElement());
+ genVisualTypeProviderEClass.getESuperTypes().add(this.getCommentedElement());
// Initialize classes and features; add operations and parameters
initEClass(extendedGenViewEClass, ExtendedGenView.class, "ExtendedGenView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1292,8 +1334,8 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(papyrusExtensionRootNodeEClass, PapyrusExtensionRootNode.class, "PapyrusExtensionRootNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getPapyrusExtensionRootNode_ExtensionNodes(), this.getCommentedElement(), null, "extensionNodes", null, 0, -1, PapyrusExtensionRootNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusExtensionRootNode_ExtensionNodes(), this.getCommentedElement(), null, "extensionNodes", null, 0, -1, PapyrusExtensionRootNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(alternateCanvasEClass, AlternateCanvas.class, "AlternateCanvas", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAlternateCanvas_DomainDiagramElement(), theGenModelPackage.getGenClass(), null, "domainDiagramElement", null, 1, 1, AlternateCanvas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
@@ -1335,8 +1377,8 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(specificLocatorExternalLabelEClass, SpecificLocatorExternalLabel.class, "SpecificLocatorExternalLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getSpecificLocatorExternalLabel_GenExternalNodeLabel(), theGMFGenPackage.getGenExternalNodeLabel(), null, "genExternalNodeLabel", null, 0, -1, SpecificLocatorExternalLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
- !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSpecificLocatorExternalLabel_GenExternalNodeLabel(), theGMFGenPackage.getGenExternalNodeLabel(), null, "genExternalNodeLabel", null, 0, -1, SpecificLocatorExternalLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(additionalEditPartCandiesEClass, AdditionalEditPartCandies.class, "AdditionalEditPartCandies", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getAdditionalEditPartCandies_BaseEditHelperPackage(), theEcorePackage.getEString(), "baseEditHelperPackage", null, 0, 1, AdditionalEditPartCandies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
@@ -1363,8 +1405,8 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
!IS_DERIVED, IS_ORDERED);
initEClass(compartmentVisibilityPreferenceEClass, CompartmentVisibilityPreference.class, "CompartmentVisibilityPreference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getCompartmentVisibilityPreference_VisibleByDefault(), theEcorePackage.getEBoolean(), "visibleByDefault", "true", 0, 1, CompartmentVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCompartmentVisibilityPreference_VisibleByDefault(), theEcorePackage.getEBoolean(), "visibleByDefault", "true", 0, 1, CompartmentVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
initEReference(getCompartmentVisibilityPreference_Compartments(), theGMFGenPackage.getGenCompartment(), null, "compartments", null, 0, -1, CompartmentVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1398,6 +1440,10 @@ public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements P
initEAttribute(getSpecificNodePlate_NodePlateQualifiedName(), theEcorePackage.getEString(), "nodePlateQualifiedName", null, 0, 1, SpecificNodePlate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
+ initEClass(genVisualTypeProviderEClass, GenVisualTypeProvider.class, "GenVisualTypeProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGenVisualTypeProvider_ClassName(), ecorePackage.getEString(), "className", "UMLVisualTypeProvider", 0, 1, GenVisualTypeProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
// Create resource
createResource(eNS_URI);
}
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java
index dd6b0235350..00f1267ceda 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java
@@ -18,11 +18,11 @@ import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl#getTriggeringCondition <em>Triggering Condition</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl#getAction <em>Action</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java
index 4900066501d..00fa440114d 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java
@@ -20,10 +20,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificDiagramUpdaterImpl#getGenNode <em>Gen Node</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java
index b9a3ba976b2..1cd4fa8c7dd 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java
@@ -21,10 +21,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorExternalLabelImpl#getGenExternalNodeLabel <em>Gen External Node Label</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java
index 09c55c141e6..76d9f38d6f1 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java
@@ -21,10 +21,10 @@ import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorImpl#getGenChildSideAffixedNode <em>Gen Child Side Affixed Node</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java
index 4b9ce6ccf7e..a7c0b272933 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java
@@ -22,12 +22,12 @@ import org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl#getEditParts <em>Edit Parts</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl#getNodePlateQualifiedName <em>Node Plate Qualified Name</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java
index 59cc8fe2035..cb401b4b9bd 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java
@@ -237,6 +237,11 @@ public class PapyrusgmfgenextensionAdapterFactory extends AdapterFactoryImpl {
}
@Override
+ public Adapter caseGenVisualTypeProvider(GenVisualTypeProvider object) {
+ return createGenVisualTypeProviderAdapter();
+ }
+
+ @Override
public Adapter caseGenCommonBase(GenCommonBase object) {
return createGenCommonBaseAdapter();
}
@@ -684,6 +689,21 @@ public class PapyrusgmfgenextensionAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider <em>Gen Visual Type Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider
+ * @generated
+ */
+ public Adapter createGenVisualTypeProviderAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenCommonBase <em>Gen Common Base</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java
index 1c9e0a43873..73240e660af 100644
--- a/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java
+++ b/plugins/developer/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java
@@ -86,7 +86,8 @@ public class PapyrusgmfgenextensionSwitch<T> extends Switch<T> {
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
- * @parameter ePackage the package in question.
+ * @param ePackage
+ * the package in question.
* @return whether this is a switch for the given package.
* @generated
*/
@@ -422,6 +423,17 @@ public class PapyrusgmfgenextensionSwitch<T> extends Switch<T> {
}
return result;
}
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER: {
+ GenVisualTypeProvider genVisualTypeProvider = (GenVisualTypeProvider) theEObject;
+ T result = caseGenVisualTypeProvider(genVisualTypeProvider);
+ if (result == null) {
+ result = caseCommentedElement(genVisualTypeProvider);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
default:
return defaultCase(theEObject);
}
@@ -870,6 +882,23 @@ public class PapyrusgmfgenextensionSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Visual Type Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen Visual Type Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenVisualTypeProvider(GenVisualTypeProvider object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Gen Common Base</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.classpath b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.classpath
index 098194ca4b7..eca7bdba8f0 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.classpath
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/org.eclipse.jdt.core.prefs
index 9ca8e68231b..62a08f4494d 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/META-INF/MANIFEST.MF
index 7c1357afe19..e99f122fb7f 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/META-INF/MANIFEST.MF
@@ -26,4 +26,4 @@ Bundle-Activator: org.eclipse.papyrus.infra.gmfdiag.canonical.internal.Activator
Bundle-ManifestVersion: 2
Bundle-Description: %pluginDescription
Bundle-SymbolicName: org.eclipse.papyrus.infra.gmfdiag.canonical;singleton:=true
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.di b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.mediawiki b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.mediawiki
new file mode 100644
index 00000000000..d9376e6e54e
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.mediawiki
@@ -0,0 +1,160 @@
+
+== Dropless Canonical Edit Policy ==
+
+This document describes the design of an enhancement in the Neon release in which the
+synchronization of canonical diagram views with the model no longer relies on the
+drag-and-drop infrastructure.
+
+=== Contents ===
+
+__TOC__
+
+=== Requirements ===
+
+In the Mars release, a new <code>PapyrusCanonicalEditPolicy</code> was introduced that replaces
+GMF's standard canonical edit policy (the <code>EditPolicyRoles.CANONICAL_ROLE</code>). The key
+design point of this policy was its delegation to the diagram's specific drag-and-drop policy
+to create views of existing elements. As indicated by
+[https://bugs.eclipse.org/bugs/show_bug.cgi?id=477384 bug 477384], this does have the side-effect
+of limiting the customizability of drag-and-drop in the diagrams. In particular, the canonical
+synchronization implemented by the <code>CanonicalEditPolicy</code> expects the drop edit policy
+to do nothing (or very little) more than create a view of an existing element. This restricts
+the amount of intelligent dropping of elements to create related new elements in various scenarios,
+without also going to lengths to constrain what kinds of elements the canonical edit policy will
+attempt to visualize.
+
+Accordingly, the primary requirements for the Neon implementation of the canonical edit policy are:
+
+* '''R1''': the <code>PapyrusCanonicalEditPolicy</code> {{req|wont}} depend on the diagram's drag-and-drop edit policy to create new views of model elements
+* '''R2''': the <code>PapyrusCanonicalEditPolicy</code> {{req|shall}} simply use <code>CreateRequest</code>s to create new views for elements as directly as possible, according to the specific visual element types of each diagram
+** '''R2.1''': the diagrams {{req|should}} publish information about their specific visual element types in some reusable form that other components (such as drag-and-drop, itself) may likewise rely on
+
+=== Design ===
+
+The core issue addressed by the Mars design was that a generic edit policy such as the
+<code>PapyrusCanonicalEditPolicy</code> had no means to determine the specific visual element types
+(in particular, ''visual IDs'') of the views that it needed to create for semantic elements in
+any given diagram. These specific element types are required to formulate the
+<code>CreateRequest</code>s that ultimately are satisfied by the diagram's particular
+<code>ViewProvider</code>. The solution in the Mars release was to delegate to the diagram's
+generated <code>DragDropEditPolicy</code> by transforming <code>CreateRequest</code> to
+<code>DropObjectsRequest</code>s (encapsulated in a wrapper to pass them through the customizable
+drop policy with its pluggable strategies, but that's a minor detail). This worked because
+each diagram actually substitutes a custom drop edit policy implementation that is specifically
+coded to be aware of the mapping of semantic element types to visual element types in each
+parent view that can visualize each semantic element within the context of the particular diagram.
+
+Accordingly, the new design for Neon hoists this knowledge of the diagram's specific visual element
+types out of the drop edit policy and into a new GMF-style ''service'' that the generic
+<code>PapyrusCanonicalEditPolicy</code> can query to determine the visual element types that it
+should request.
+
+[[image:images/main.jpg|Canonical Edit Policy and Visual Type Registry]]
+
+The <code>PapyrusCanonicalEditPolicy</code> uses a new <code>VisualTypeService</code> to query the
+following diagram-specific information that it needs to formulate <code>CreateRequest</code>s to
+create new views for the semantic elements that it needs to visualize:
+
+* the most appropriate view type (''visual ID'' in generated diagrams, but generally some string type code) for an element to be visualized as a child <code>Node</code> of some parent <code>View</code> (which could be the diagram surface or some shape or compartment)
+* the most appropriate view type (''visual ID'' or string) for an element to be visualized as an <code>Edge</code> in the <code>Diagram</code>
+* the element type corresponding to a view type (''visual ID'' or string, as obtained from one of the two previous queries) specific to a particular <code>Diagram</code>
+
+Thus the dependence on the diagram-specific drop edit policies is removed, as the canonical edit
+policy now has independent access to the visual type information that it needs, specific to each
+diagram. The generic <code>CommonDiagramDragDropEditPolicy</code> is also updated to use the new
+<code>VisualTypeService</code> to implement the previously abstract API methods that the diagrams'
+custom subclasses implemented to provide this same visual type information. As a result, diagrams
+that don't need special drop behaviour but only need drag-and-drop to create new views can be
+somewhat simplified.
+
+=== Code Generation ===
+
+A new code generation template is added in the <code>org.eclipse.papyrus.def</code> bundle that
+generates the diagram's contribution of a concrete implementation of the
+<code>IVisualTypeProvider</code>. The implementations of the provider API methods simply delegate
+to static APIs that are also generated for each diagram:
+
+* <code>getNodeType</code> and <code>getLinkType</code> methods delegate to the corresponding APIs of the generated visual ID registry (usually named <code>UMLVisualIDRegistry</code>)
+* <code>getElementType</code> delegates to the generated element-types enumeration (usually named <code>UMLElementTypes</code>
+
+Because the APIs that the visual type provider delegates to are static, there is no way in the
+existing GMF/Papyrus frameworks to plug them into the core diagram layer without an intermediate
+object like the visual type provider. The generated <code>UMLElementTypes</code> classes do all
+include a <code>TYPED_INSTANCE</code> field implementing a <code>DiagramElementTypes</code> interface,
+but this, too, is a static API, so it has to be injected by code into any class that needs it. There
+is no facility for injecting these into a core component like the
+<code>PapyrusCanonicalEditPolicy</code>. Besides that the <code>DiagramElementTypes</code> API
+doesn't provide all that is needed in this scenario. So, the alternatives are to create a new
+template for generation of subclasses of the <code>PapyrusCanonicalEditPolicy</code> in each diagram
+(which would obviate the need for the <code>VisualTypeService</code>) or create a new template for
+generation of visual type providers. The latter seems a cleaner design, separating out the concern
+of diagram-specific visual ID discovery into a reusable component that may be of service to other
+clients than just the <code>PapyrusCanonicalEditPolicy</code> (such as, in fact, the
+<code>CommonDiagramDragDropEditPolicy</code>).
+
+Because there is now a new generated visual type provider class, the GMFGen model for a diagram
+needs to be able to specify the name of the generated class, if necessary, and also a custom subclass
+for overrides of the generated default behaviour. This is a common pattern, especially in the
+edit-parts and edit-policies models. These use cases are satisfied by the addition of the
+<code>GenVisualTypeProvider</code> class in Papyrus's GMFGen extension model on the one hand and
+by registration of a higher-priority custom provider on the other (as is done for
+edit-part providers, for example).
+
+[[image:images/gmfgenextension.jpg|Visual Type Provider Model in GMFGen Extension]]
+
+The <code>GenVisualTypeProvider</code> optionally specifies a provider class name; the default value
+is <code>"UMLVisualTypeProvider"</code>. Static methods are defined that obtain, respectively, the
+simple and the qualified name of the visual type provider class for a diagram. This accounts for
+the absence of a <code>GenVisualTypeProvider</code> element in the GMFGen model (it is an optional
+extension element) to provide the defaults even in that case. Thus, none of the existing UML
+diagrams' GMFGen models need changes to generate the new provider class.
+
+=== Deprecations ===
+
+==== ICreationTargetStrategy ====
+
+The custom drop edit policies of some of the diagrams are rather particular about what an element
+needs to be dropped on in order to add it to the diagram. For example, some connections cannot just
+be dropped anywhere in the diagram but only on a particular shape (perhaps one of its ends). In
+the State Machine Diagram, a region that is not the first region visualized in a composite state must
+be dropped onto some other region in order to partition the space that it occupies in two. To
+account for these cases, the Mars design included pluggable <code>ICreationTargetStrategy</code>
+extensions. These allowed the diagrams to re-direct the drop operation from the obvious target
+(the edit-part of the parent element) to some other edit-part. This mechanism is now no longer
+necessary, because the <code>PapyrusCanonicalEditPolicy</code> knows ''a priori'' which parent view
+must contain the node that it is trying to create, and the diagrams' view providers know how to
+create the child views (note that edges are a simpler case because they are all owned by the root
+diagram view).
+
+Accordingly, the <code>ICreationTargetStrategy</code> API is deprecated in Neon and all
+implementations in the UML diagrams are deleted (the framework still delegates to these strategies
+if they happen to exist). The special case of regions in a diagram might have needed this target
+strategy but it is easily handled in the custom creation strategies for state machine compartment
+and state compartment using GEF's own <code>getTargetEditPart(Request)</code> protocol, for the
+case of the <code>CreateRequest</code>.
+
+==== CanonicalDropObjectsRequest ====
+
+The Mars design delegated to the diagrams' generated drop edit policies. This required a mechanism
+to sidestep the <code>CustomizableDropEditPolicy</code> installed by the core Papyrus diagram layer
+to override the diagrams' generated policies, because it would not be desirable to let pluggable
+drop strategies interfere with the straightforward drop behaviour needed for view synchronization.
+
+The solution was similar to protocol encapsulation in networking: wrap the
+<code>DropObjectsRequest</code> in a <code>CanonicalDropObjectsRequest</code> which the
+<code>CustomizableDropEditPolicy</code> recognized. On receiving the wrapper, the customizable
+policy would simply unwrap the <code>DropObjectsRequest</code> within it and forward that to the
+default drop policy provided by the diagram.
+
+None of this encapsulation is needed in Neon, so the <code>CanonicalDropObjectsRequest</code> class
+is deprecated and the <code>CustomizableDropEditPolicy</code> no longer recognizes it.
+
+=== Limitations ===
+
+All of the UML diagrams are regenerated in Neon to plug in their visual type providers. However,
+the SysML 1.1 diagrams in the main Papyrus repository cannot be generated (they do not use GMFGen
+models) and, more importantly, they do not use visual ID registries as the UML diagrams do.
+They prefer the use of non-integer view types, using integer visual IDs only for elements
+inherited from the UML diagrams that they extend. So, a different pattern of delegation to
+existing SysML-specific view-type registries and the inherited UML visual type providers is
+devised in the SysML diagrams to implement their specific visual type providers. \ No newline at end of file
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.notation b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.notation
new file mode 100644
index 00000000000..8e5c065c611
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.notation
@@ -0,0 +1,572 @@
+<?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:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_IFWDsHi_EeWLz9_fOdUDAA" type="PapyrusUMLClassDiagram" name="main" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_aG0sIHi_EeWLz9_fOdUDAA" type="2004" fillColor="12632256">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_otjsAHi_EeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_otkTEHi_EeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aG1TMHi_EeWLz9_fOdUDAA" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aG1TMXi_EeWLz9_fOdUDAA" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aG1TMni_EeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aG1TM3i_EeWLz9_fOdUDAA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aG1TNHi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aG1TNXi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aG1TNni_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG1TN3i_EeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aG1TOHi_EeWLz9_fOdUDAA" type="7007">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aG1TOXi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aG1TOni_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aG1TO3i_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG1TPHi_EeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aG1TPXi_EeWLz9_fOdUDAA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aG1TPni_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aG1TP3i_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aG1TQHi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG1TQXi_EeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="dropless.uml#_SiEhQHi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG0sIXi_EeWLz9_fOdUDAA" x="472" y="50" height="65"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aHMfkHi_EeWLz9_fOdUDAA" type="2008" fillColor="12632256">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_otkTEXi_EeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_otkTEni_EeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aHNGoHi_EeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aHNGoXi_EeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aHNGoni_EeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aHNGo3i_EeWLz9_fOdUDAA" type="7017" collapsed="true">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aHNGpHi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aHNGpXi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aHNGpni_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aHNGp3i_EeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aHNGqHi_EeWLz9_fOdUDAA" type="7018" collapsed="true">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aHNGqXi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aHNGqni_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aHNGq3i_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aHNGrHi_EeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aHNGrXi_EeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aHNGrni_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aHNGr3i_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aHNGsHi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aHNGsXi_EeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_U3PB0Hi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aHMfkXi_EeWLz9_fOdUDAA" x="265" y="51" height="68"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7maoYHi_EeWLz9_fOdUDAA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7maoYni_EeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7maoY3i_EeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7maoZHi_EeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7maoZXi_EeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7maoZni_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7maoZ3i_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7maoaHi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7maoaXi_EeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7maoani_EeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7maoa3i_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7maobHi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7maobXi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7maobni_EeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7maob3i_EeWLz9_fOdUDAA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7maocHi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7maocXi_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7maocni_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7maoc3i_EeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_7mYzMHi_EeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7maoYXi_EeWLz9_fOdUDAA" x="267" y="194"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FKPvEHjAEeWLz9_fOdUDAA" type="2004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FKPvEnjAEeWLz9_fOdUDAA" type="5011"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FKPvE3jAEeWLz9_fOdUDAA" type="8507">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FKPvFHjAEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FKPvFXjAEeWLz9_fOdUDAA" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FKPvFnjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FKPvF3jAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FKPvGHjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FKPvGXjAEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FKPvGnjAEeWLz9_fOdUDAA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_KrHrwHjCEeWLz9_fOdUDAA" type="3007">
+ <element xmi:type="uml:Operation" href="dropless.uml#_Kq_I4HjCEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KrHrwXjCEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NDX8kHjCEeWLz9_fOdUDAA" type="3007">
+ <element xmi:type="uml:Operation" href="dropless.uml#_NDPZsHjCEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NDX8kXjCEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_N67PoHjCEeWLz9_fOdUDAA" type="3007">
+ <element xmi:type="uml:Operation" href="dropless.uml#_N6yswHjCEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N67PoXjCEeWLz9_fOdUDAA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FKPvG3jAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FKPvHHjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FKPvHXjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FKPvHnjAEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FKPvH3jAEeWLz9_fOdUDAA" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FKPvIHjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FKPvIXjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FKPvInjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FKPvI3jAEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="dropless.uml#_FKN54HjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FKPvEXjAEeWLz9_fOdUDAA" x="440" y="193"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QxhUMHjAEeWLz9_fOdUDAA" type="2008" fillColor="12632256">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VfJg8HjAEeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VfJg8XjAEeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QxhUMnjAEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QxhUM3jAEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QxhUNHjAEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QxhUNXjAEeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Qxh7QHjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Qxh7QXjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Qxh7QnjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qxh7Q3jAEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qxh7RHjAEeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Qxh7RXjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Qxh7RnjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Qxh7R3jAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qxh7SHjAEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qxh7SXjAEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Qxh7SnjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Qxh7S3jAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Qxh7THjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qxh7TXjAEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_PomkUHjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxhUMXjAEeWLz9_fOdUDAA" x="36" y="55" width="140" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b7Is8HjAEeWLz9_fOdUDAA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b7JUAHjAEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b7JUAXjAEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b7JUAnjAEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b7JUA3jAEeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b7JUBHjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b7JUBXjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b7JUBnjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7JUB3jAEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b7JUCHjAEeWLz9_fOdUDAA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_Jg4QwHjDEeWLz9_fOdUDAA" type="3013">
+ <element xmi:type="uml:Operation" href="dropless.uml#_JgvG0HjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Jg4QwXjDEeWLz9_fOdUDAA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b7JUCXjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b7JUCnjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b7JUC3jAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7JUDHjAEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b7JUDXjAEeWLz9_fOdUDAA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b7JUDnjAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b7JUD3jAEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b7JUEHjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7JUEXjAEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_b7He0HjAEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7Is8XjAEeWLz9_fOdUDAA" x="28" y="195" width="147"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hvE6IHjDEeWLz9_fOdUDAA" type="2008" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_owiKsHjDEeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_owiKsXjDEeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvFhMHjDEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvFhMXjDEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hvFhMnjDEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvFhM3jDEeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvFhNHjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvFhNXjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvFhNnjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvFhN3jDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvFhOHjDEeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvFhOXjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvFhOnjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvFhO3jDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvFhPHjDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvFhPXjDEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvFhPnjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvFhP3jDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvFhQHjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvFhQXjDEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_VVaOwHjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvE6IXjDEeWLz9_fOdUDAA" x="188" y="426" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hvd7sHjDEeWLz9_fOdUDAA" type="2008" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_owiKsnjDEeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_owiKs3jDEeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvd7snjDEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hvd7s3jDEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hvd7tHjDEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvd7tXjDEeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvd7tnjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvd7t3jDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvd7uHjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvd7uXjDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvd7unjDEeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvd7u3jDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvd7vHjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvd7vXjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvd7vnjDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hvd7v3jDEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hvd7wHjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvd7wXjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvd7wnjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvd7w3jDEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_YNzYMXjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvd7sXjDEeWLz9_fOdUDAA" x="357" y="427" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hv3kUHjDEeWLz9_fOdUDAA" type="2008" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_owixwHjDEeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_owixwXjDEeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hv4LYHjDEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hv4LYXjDEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hv4LYnjDEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hv4LY3jDEeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hv4LZHjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hv4LZXjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hv4LZnjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hv4LZ3jDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hv4LaHjDEeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hv4LaXjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hv4LanjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hv4La3jDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hv4LbHjDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hv4LbXjDEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hv4LbnjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hv4Lb3jDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hv4LcHjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hv4LcXjDEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_YqWxUXjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hv3kUXjDEeWLz9_fOdUDAA" x="533" y="427" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hwTCIHjDEeWLz9_fOdUDAA" type="2008" fillColor="8905185">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_owixwnjDEeWLz9_fOdUDAA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_owixw3jDEeWLz9_fOdUDAA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hwTCInjDEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hwTCI3jDEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hwTCJHjDEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hwTCJXjDEeWLz9_fOdUDAA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hwTCJnjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hwTCJ3jDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hwTCKHjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hwTCKXjDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hwTCKnjDEeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hwTCK3jDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hwTCLHjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hwTCLXjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hwTCLnjDEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hwTCL3jDEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hwTCMHjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hwTCMXjDEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hwTCMnjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hwTCM3jDEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_Yxmo0XjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hwTCIXjDEeWLz9_fOdUDAA" x="753" y="425" height="71"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7kqYEHjDEeWLz9_fOdUDAA" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7kqYEnjDEeWLz9_fOdUDAA" type="5038"/>
+ <element xmi:type="uml:Comment" href="dropless.uml#_7kpJ8HjDEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7kqYEXjDEeWLz9_fOdUDAA" x="462" y="532"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IFWDsXi_EeWLz9_fOdUDAA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IFWDsni_EeWLz9_fOdUDAA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_IFWDs3i_EeWLz9_fOdUDAA">
+ <owner xmi:type="uml:Model" href="dropless.uml#_IElOsHi_EeWLz9_fOdUDAA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="dropless.uml#_IElOsHi_EeWLz9_fOdUDAA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_f3C-UHi_EeWLz9_fOdUDAA" type="4007" source="_aHMfkHi_EeWLz9_fOdUDAA" target="_aG0sIHi_EeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f3C-U3i_EeWLz9_fOdUDAA" type="6016">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h1rYwHjAEeWLz9_fOdUDAA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h1rYwXjAEeWLz9_fOdUDAA" key="visible" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ekdfoHjAEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f3DlYHi_EeWLz9_fOdUDAA" x="-1" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f3DlYXi_EeWLz9_fOdUDAA" type="6017">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h1r_0HjAEeWLz9_fOdUDAA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h1r_0XjAEeWLz9_fOdUDAA" key="visible" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ekmCgHjAEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f3DlYni_EeWLz9_fOdUDAA" x="-1" y="14"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_f3C-UXi_EeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:Usage" href="dropless.uml#_f3AiEHi_EeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f3C-Uni_EeWLz9_fOdUDAA" points="[265, 105, -643984, -643984]$[182, 102, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f3V5QHi_EeWLz9_fOdUDAA" id="(1.0,0.5147058823529411)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f3V5QXi_EeWLz9_fOdUDAA" id="(0.0,0.5230769230769231)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__uyL8Hi_EeWLz9_fOdUDAA" type="4002" source="_7maoYHi_EeWLz9_fOdUDAA" target="_aHMfkHi_EeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="__uyzAHi_EeWLz9_fOdUDAA" type="6007">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AMPkAHjAEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__uyzAXi_EeWLz9_fOdUDAA" x="-1" y="38"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__uyL8Xi_EeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:Generalization" href="dropless.uml#__ureQHi_EeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__uyL8ni_EeWLz9_fOdUDAA" points="[320, 193, -643984, -643984]$[317, 119, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__u_nUHi_EeWLz9_fOdUDAA" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__u_nUXi_EeWLz9_fOdUDAA" id="(0.52,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HZzW4HjAEeWLz9_fOdUDAA" type="4003" source="_7maoYHi_EeWLz9_fOdUDAA" target="_FKPvEHjAEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HZzW43jAEeWLz9_fOdUDAA" type="6008">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ek6yoHjAEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HZzW5HjAEeWLz9_fOdUDAA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HZzW5XjAEeWLz9_fOdUDAA" type="6009">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_elCucHjAEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HZzW5njAEeWLz9_fOdUDAA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HZzW4XjAEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:InterfaceRealization" href="dropless.uml#_HZrbEHjAEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HZzW4njAEeWLz9_fOdUDAA" points="[269, 218, -643984, -643984]$[188, 218, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HaG44HjAEeWLz9_fOdUDAA" id="(1.0,0.24)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HaG44XjAEeWLz9_fOdUDAA" id="(0.0,0.17985611510791366)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_If41MHjAEeWLz9_fOdUDAA" type="4002" source="_FKPvEHjAEeWLz9_fOdUDAA" target="_aG0sIHi_EeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_If41M3jAEeWLz9_fOdUDAA" type="6007">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ekt-UHjAEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_If41NHjAEeWLz9_fOdUDAA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_If41MXjAEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:Generalization" href="dropless.uml#_IfyukHjAEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_If41MnjAEeWLz9_fOdUDAA" points="[558, 192, -643984, -643984]$[529, 115, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IgGQkHjAEeWLz9_fOdUDAA" id="(0.25336927223719674,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IgGQkXjAEeWLz9_fOdUDAA" id="(0.59,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kTiiUHjAEeWLz9_fOdUDAA" type="4007" source="_b7Is8HjAEeWLz9_fOdUDAA" target="_7maoYHi_EeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kTiiU3jAEeWLz9_fOdUDAA" type="6016">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_DHSRcHjDEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kTiiVHjAEeWLz9_fOdUDAA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kTiiVXjAEeWLz9_fOdUDAA" type="6017">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_DHaNQHjDEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kTiiVnjAEeWLz9_fOdUDAA" x="-4" y="12"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kTiiUXjAEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:Usage" href="dropless.uml#_kTgtIHjAEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kTiiUnjAEeWLz9_fOdUDAA" points="[175, 276, -643984, -643984]$[285, 264, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kT3ScHjAEeWLz9_fOdUDAA" id="(1.0,0.34)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kT3ScXjAEeWLz9_fOdUDAA" id="(0.0,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wGJ_UHjBEeWLz9_fOdUDAA" type="4002" source="_b7Is8HjAEeWLz9_fOdUDAA" target="_QxhUMHjAEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wGKmYHjBEeWLz9_fOdUDAA" type="6007">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_DHiwIHjDEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wGKmYXjBEeWLz9_fOdUDAA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wGJ_UXjBEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:Generalization" href="dropless.uml#_wGCDgHjBEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wGJ_UnjBEeWLz9_fOdUDAA" points="[175, 195, -643984, -643984]$[176, 118, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wGaeAHjBEeWLz9_fOdUDAA" id="(0.5102040816326531,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wGbFEHjBEeWLz9_fOdUDAA" id="(0.4785714285714286,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0fJG4HjDEeWLz9_fOdUDAA" type="4003" source="_hvE6IHjDEeWLz9_fOdUDAA" target="_FKPvEHjAEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0fJG43jDEeWLz9_fOdUDAA" type="6008">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CNyKkHzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0fJt8HjDEeWLz9_fOdUDAA" x="1" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0fJt8XjDEeWLz9_fOdUDAA" type="6009">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CN--4HzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0fJt8njDEeWLz9_fOdUDAA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0fJG4XjDEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:InterfaceRealization" href="dropless.uml#_0e-HwHjDEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0fJG4njDEeWLz9_fOdUDAA" points="[314, 459, -643984, -643984]$[472, 332, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0fjWkHjDEeWLz9_fOdUDAA" id="(0.8571428571428571,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0fjWkXjDEeWLz9_fOdUDAA" id="(0.04043126684636118,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1ZlV4HjDEeWLz9_fOdUDAA" type="4003" source="_hvd7sHjDEeWLz9_fOdUDAA" target="_FKPvEHjAEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1ZlV43jDEeWLz9_fOdUDAA" type="6008">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_COLMIHzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1Zl88HjDEeWLz9_fOdUDAA" y="39"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1Zl88XjDEeWLz9_fOdUDAA" type="6009">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_COWyUHzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1Zl88njDEeWLz9_fOdUDAA" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1ZlV4XjDEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:InterfaceRealization" href="dropless.uml#_1ZaWwHjDEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1ZlV4njDEeWLz9_fOdUDAA" points="[483, 462, -643984, -643984]$[519, 332, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Z-XcHjDEeWLz9_fOdUDAA" id="(0.6746031746031746,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Z-XcXjDEeWLz9_fOdUDAA" id="(0.1752021563342318,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2DLsgHjDEeWLz9_fOdUDAA" type="4003" source="_hv3kUHjDEeWLz9_fOdUDAA" target="_FKPvEHjAEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2DLsg3jDEeWLz9_fOdUDAA" type="6008">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_COi_kHzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2DMTkHjDEeWLz9_fOdUDAA" y="39"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2DMTkXjDEeWLz9_fOdUDAA" type="6009">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_COwa8HzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2DMTknjDEeWLz9_fOdUDAA" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2DLsgXjDEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:InterfaceRealization" href="dropless.uml#_2DAGUHjDEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2DLsgnjDEeWLz9_fOdUDAA" points="[579, 427, -643984, -643984]$[578, 332, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2Djf8HjDEeWLz9_fOdUDAA" id="(0.36507936507936506,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2Djf8XjDEeWLz9_fOdUDAA" id="(0.3423180592991914,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_26BN4HjDEeWLz9_fOdUDAA" type="4003" source="_hwTCIHjDEeWLz9_fOdUDAA" target="_FKPvEHjAEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_26BN43jDEeWLz9_fOdUDAA" type="6008">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CO8oMHzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_26BN5HjDEeWLz9_fOdUDAA" x="-1" y="38"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_26BN5XjDEeWLz9_fOdUDAA" type="6009">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CPI1cHzJEeW-84Rud4Kaxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_26BN5njDEeWLz9_fOdUDAA" x="-34" y="-92"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_26BN4XjDEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:InterfaceRealization" href="dropless.uml#_250ZkHjDEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_26BN4njDEeWLz9_fOdUDAA" points="[797, 425, -643984, -643984]$[731, 332, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_26cEoHjDEeWLz9_fOdUDAA" id="(0.3492063492063492,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_26cEoXjDEeWLz9_fOdUDAA" id="(0.7789757412398922,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JRR5EHjEEeWLz9_fOdUDAA" type="4013" source="_7kqYEHjDEeWLz9_fOdUDAA" target="_hvd7sHjDEeWLz9_fOdUDAA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JRR5EXjEEeWLz9_fOdUDAA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JRR5EnjEEeWLz9_fOdUDAA" points="[487, 532, -643984, -643984]$[460, 498, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JRwaMHjEEeWLz9_fOdUDAA" id="(0.25506024096385543,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JRwaMXjEEeWLz9_fOdUDAA" id="(0.8211895199847006,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JtwZsHjEEeWLz9_fOdUDAA" type="4013" source="_7kqYEHjDEeWLz9_fOdUDAA" target="_hv3kUHjDEeWLz9_fOdUDAA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JtwZsXjEEeWLz9_fOdUDAA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JtwZsnjEEeWLz9_fOdUDAA" points="[507, 532, -643984, -643984]$[545, 498, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JuGX8HjEEeWLz9_fOdUDAA" id="(0.69,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JuGX8XjEEeWLz9_fOdUDAA" id="(0.0960591133004928,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KMPFcHjEEeWLz9_fOdUDAA" type="4013" source="_7kqYEHjDEeWLz9_fOdUDAA" target="_hvE6IHjDEeWLz9_fOdUDAA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KMPFcXjEEeWLz9_fOdUDAA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KMPFcnjEEeWLz9_fOdUDAA" points="[509, 532, -643984, -643984]$[314, 474, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMkcoHjEEeWLz9_fOdUDAA" id="(0.0,0.43333333333333335)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMkcoXjEEeWLz9_fOdUDAA" id="(1.0,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Kmjp8HjEEeWLz9_fOdUDAA" type="4013" source="_7kqYEHjDEeWLz9_fOdUDAA" target="_hwTCIHjDEeWLz9_fOdUDAA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Kmjp8XjEEeWLz9_fOdUDAA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kmjp8njEEeWLz9_fOdUDAA" points="[507, 532, -643984, -643984]$[753, 490, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Km6PQHjEEeWLz9_fOdUDAA" id="(1.0,0.3333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Km6PQXjEEeWLz9_fOdUDAA" id="(0.0,0.9275653923541244)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6bO7wHjMEeWLz9_fOdUDAA" type="PapyrusUMLClassDiagram" name="gmfgenextension" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_-Sh9cHjMEeWLz9_fOdUDAA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-SikgHjMEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-SikgXjMEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-SikgnjMEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-SjLkHjMEeWLz9_fOdUDAA" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_v4mOAHjNEeWLz9_fOdUDAA" type="3012">
+ <element xmi:type="uml:Property" href="dropless.uml#_v4gucHjNEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v4mOAXjNEeWLz9_fOdUDAA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-SjLkXjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-SjLknjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-SjLk3jMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-SjLlHjMEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-SjLlXjMEeWLz9_fOdUDAA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-SjLlnjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-SjLl3jMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-SjLmHjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-SjLmXjMEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-SjLmnjMEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-SjLm3jMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-SjLnHjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-SjLnXjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-SjLnnjMEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#_-SgIQHjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Sh9cXjMEeWLz9_fOdUDAA" x="258" y="97" height="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__o5TcHjMEeWLz9_fOdUDAA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="__o5TcnjMEeWLz9_fOdUDAA" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__o5Tc3jMEeWLz9_fOdUDAA" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__o5TdHjMEeWLz9_fOdUDAA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__o5TdXjMEeWLz9_fOdUDAA" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_5r5UEHjNEeWLz9_fOdUDAA" type="3012">
+ <element xmi:type="uml:Property" href="dropless.uml#_5r0bkHjNEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5r5UEXjNEeWLz9_fOdUDAA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__o5TdnjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__o5Td3jMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__o5TeHjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__o5TeXjMEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__o5TenjMEeWLz9_fOdUDAA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_CmbmIHjOEeWLz9_fOdUDAA" type="3013">
+ <element xmi:type="uml:Operation" href="dropless.uml#_CmWtoHjOEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CmbmIXjOEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PqpqYHjOEeWLz9_fOdUDAA" type="3013">
+ <element xmi:type="uml:Operation" href="dropless.uml#_MF4jIHjOEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PqpqYXjOEeWLz9_fOdUDAA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__o5Te3jMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__o5TfHjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__o5TfXjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__o5TfnjMEeWLz9_fOdUDAA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__o5Tf3jMEeWLz9_fOdUDAA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__o5TgHjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__o5TgXjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__o5TgnjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__o5Tg3jMEeWLz9_fOdUDAA"/>
+ </children>
+ <element xmi:type="uml:Class" href="dropless.uml#__o4sYHjMEeWLz9_fOdUDAA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__o5TcXjMEeWLz9_fOdUDAA" x="195" y="255" height="92"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_6bO7wXjMEeWLz9_fOdUDAA" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6bO7wnjMEeWLz9_fOdUDAA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_6bO7w3jMEeWLz9_fOdUDAA">
+ <owner xmi:type="uml:Package" href="dropless.uml#_3mb44HjMEeWLz9_fOdUDAA"/>
+ </styles>
+ <element xmi:type="uml:Package" href="dropless.uml#_3mb44HjMEeWLz9_fOdUDAA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SEczUHjOEeWLz9_fOdUDAA" type="4002" source="__o5TcHjMEeWLz9_fOdUDAA" target="_-Sh9cHjMEeWLz9_fOdUDAA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SEczU3jOEeWLz9_fOdUDAA" type="6007">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ZuvlgHjOEeWLz9_fOdUDAA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEczVHjOEeWLz9_fOdUDAA" x="1" y="39"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SEczUXjOEeWLz9_fOdUDAA"/>
+ <element xmi:type="uml:Generalization" href="dropless.uml#_SEZI8HjOEeWLz9_fOdUDAA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SEczUnjOEeWLz9_fOdUDAA" points="[240, 255, -643984, -643984]$[400, 169, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SEl9QHjOEeWLz9_fOdUDAA" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SEl9QXjOEeWLz9_fOdUDAA" id="(0.5034013605442177,1.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.uml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.uml
new file mode 100644
index 00000000000..dab6e92df91
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/dropless.uml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_IElOsHi_EeWLz9_fOdUDAA" name="dropless">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7kpJ8HjDEeWLz9_fOdUDAA" annotatedElement="_YNzYMXjDEeWLz9_fOdUDAA _YqWxUXjDEeWLz9_fOdUDAA _VVaOwHjDEeWLz9_fOdUDAA _Yxmo0XjDEeWLz9_fOdUDAA">
+ <body>generated</body>
+ </ownedComment>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_kZUIQHjCEeWLz9_fOdUDAA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_1fAc4HjNEeWLz9_fOdUDAA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_1qJD0HzIEeW-84Rud4Kaxg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_MkUJYHi_EeWLz9_fOdUDAA" name="gmf">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_SiEhQHi_EeWLz9_fOdUDAA" name="IProvider"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_U3PB0Hi_EeWLz9_fOdUDAA" name="Service"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_f3AiEHi_EeWLz9_fOdUDAA" client="_U3PB0Hi_EeWLz9_fOdUDAA" supplier="_SiEhQHi_EeWLz9_fOdUDAA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PomkUHjAEeWLz9_fOdUDAA" name="CanonicalEditPolicy"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_4F7SQHjBEeWLz9_fOdUDAA" name="Diagram"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_JEwK4HjCEeWLz9_fOdUDAA" name="IElementType"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_YwlxoHjCEeWLz9_fOdUDAA" name="View"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_7mYzMHi_EeWLz9_fOdUDAA" name="VisualTypeService">
+ <generalization xmi:type="uml:Generalization" xmi:id="__ureQHi_EeWLz9_fOdUDAA" general="_U3PB0Hi_EeWLz9_fOdUDAA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_HZrbEHjAEeWLz9_fOdUDAA" client="_7mYzMHi_EeWLz9_fOdUDAA" supplier="_FKN54HjAEeWLz9_fOdUDAA" contract="_FKN54HjAEeWLz9_fOdUDAA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_FKN54HjAEeWLz9_fOdUDAA" name="IVisualTypeProvider">
+ <generalization xmi:type="uml:Generalization" xmi:id="_IfyukHjAEeWLz9_fOdUDAA" general="_SiEhQHi_EeWLz9_fOdUDAA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Kq_I4HjCEeWLz9_fOdUDAA" name="getNodeType" visibility="public">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cVn-oHjCEeWLz9_fOdUDAA" name="view" type="_YwlxoHjCEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gaZboHjCEeWLz9_fOdUDAA" name="element" type="_8_dNAHjBEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pMkb4HjCEeWLz9_fOdUDAA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_NDPZsHjCEeWLz9_fOdUDAA" name="getLinkType">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xhW8kHjCEeWLz9_fOdUDAA" name="diagram" type="_4F7SQHjBEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0COW0HjCEeWLz9_fOdUDAA" name="element" type="_8_dNAHjBEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2jXd4HjCEeWLz9_fOdUDAA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_N6yswHjCEeWLz9_fOdUDAA" name="getElementType">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7a2KMHjCEeWLz9_fOdUDAA" name="diagram" type="_4F7SQHjBEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9Y-q0HjCEeWLz9_fOdUDAA" name="viewType" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BU678HjDEeWLz9_fOdUDAA" type="_JEwK4HjCEeWLz9_fOdUDAA" direction="return" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_b7He0HjAEeWLz9_fOdUDAA" name="PapyrusCanonicalEditPolicy">
+ <generalization xmi:type="uml:Generalization" xmi:id="_wGCDgHjBEeWLz9_fOdUDAA" general="_PomkUHjAEeWLz9_fOdUDAA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JgvG0HjDEeWLz9_fOdUDAA" name="refreshSemantic" visibility="protected"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_kTgtIHjAEeWLz9_fOdUDAA" client="_b7He0HjAEeWLz9_fOdUDAA" supplier="_7mYzMHi_EeWLz9_fOdUDAA"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5mrTUHjBEeWLz9_fOdUDAA" name="ecore">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_8_dNAHjBEeWLz9_fOdUDAA" name="EObject"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_RDo3kHjDEeWLz9_fOdUDAA" name="uml.diagram.clazz">
+ <packagedElement xmi:type="uml:Class" xmi:id="_VVaOwHjDEeWLz9_fOdUDAA" name="UMLVisualTypeProvider">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_0e-HwHjDEeWLz9_fOdUDAA" client="_VVaOwHjDEeWLz9_fOdUDAA" supplier="_FKN54HjAEeWLz9_fOdUDAA" contract="_FKN54HjAEeWLz9_fOdUDAA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YNzYMHjDEeWLz9_fOdUDAA" name="uml.diagram.composite">
+ <packagedElement xmi:type="uml:Class" xmi:id="_YNzYMXjDEeWLz9_fOdUDAA" name="UMLVisualTypeProvider">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_1ZaWwHjDEeWLz9_fOdUDAA" client="_YNzYMXjDEeWLz9_fOdUDAA" supplier="_FKN54HjAEeWLz9_fOdUDAA" contract="_FKN54HjAEeWLz9_fOdUDAA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YqWxUHjDEeWLz9_fOdUDAA" name="uml.diagram.activity">
+ <packagedElement xmi:type="uml:Class" xmi:id="_YqWxUXjDEeWLz9_fOdUDAA" name="UMLVisualTypeProvider">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_2DAGUHjDEeWLz9_fOdUDAA" client="_YqWxUXjDEeWLz9_fOdUDAA" supplier="_FKN54HjAEeWLz9_fOdUDAA" contract="_FKN54HjAEeWLz9_fOdUDAA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Yxmo0HjDEeWLz9_fOdUDAA" name="uml.diagram.usecase">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Yxmo0XjDEeWLz9_fOdUDAA" name="UMLVisualTypeProvider">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_250ZkHjDEeWLz9_fOdUDAA" name="• • •" client="_Yxmo0XjDEeWLz9_fOdUDAA" supplier="_FKN54HjAEeWLz9_fOdUDAA" contract="_FKN54HjAEeWLz9_fOdUDAA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_3mb44HjMEeWLz9_fOdUDAA" name="gmfgenextension">
+ <packagedElement xmi:type="uml:Class" xmi:id="_-SgIQHjMEeWLz9_fOdUDAA" name="CommentedElement">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_v4gucHjNEeWLz9_fOdUDAA" name="comment">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YbtQUHjOEeWLz9_fOdUDAA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YbwToHjOEeWLz9_fOdUDAA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__o4sYHjMEeWLz9_fOdUDAA" name="GenVisualTypeProvider">
+ <generalization xmi:type="uml:Generalization" xmi:id="_SEZI8HjOEeWLz9_fOdUDAA" general="_-SgIQHjMEeWLz9_fOdUDAA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5r0bkHjNEeWLz9_fOdUDAA" name="className">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2-onIHjOEeWLz9_fOdUDAA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2-p1QHjOEeWLz9_fOdUDAA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_e5fMEHjOEeWLz9_fOdUDAA" value="UMLVisualTypeProvider"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_CmWtoHjOEeWLz9_fOdUDAA" name="getClassName" isStatic="true" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_G0hXMHjOEeWLz9_fOdUDAA" name="diagram" type="_Aj2DUHjOEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_JcVG8HjOEeWLz9_fOdUDAA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_MF4jIHjOEeWLz9_fOdUDAA" name="getQualifiedClassName" isStatic="true" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MF4jIXjOEeWLz9_fOdUDAA" name="diagram" type="_Aj2DUHjOEeWLz9_fOdUDAA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_MF4jInjOEeWLz9_fOdUDAA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Aj2DUHjOEeWLz9_fOdUDAA" name="GenDiagram"/>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/gmfgenextension.jpg b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/gmfgenextension.jpg
new file mode 100644
index 00000000000..199e205e29e
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/gmfgenextension.jpg
Binary files differ
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/main.jpg b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/main.jpg
new file mode 100644
index 00000000000..2c58936dedc
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/doc/neon/images/main.jpg
Binary files differ
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/schema/strategies.exsd b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/schema/strategies.exsd
index 7965c815fbd..8a1ea71f990 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/schema/strategies.exsd
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/schema/strategies.exsd
@@ -144,9 +144,14 @@ The nested &amp;lt;enablement&amp;gt; expression, if specified, is used to match
<element name="creationTargetStrategy">
<annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
<documentation>
- An extension that provides an alternative target edit part to which requests should be sent for canonical creation of child views.
+ As of Neon, this strategy is no longer needed because the PapyrusCanonicalEditPolicy no longer uses the drag-and-drop infrastructure to create views of existing elements in the diagram.
&lt;p&gt;
+An extension that provides an alternative target edit part to which requests should be sent for canonical creation of child views.
+&lt;/p&gt;&lt;p&gt;
The nested &amp;lt;enablement&amp;gt; expression, if specified, is used to match edit parts that the strategy supports. The expression has three variables available to it:
&lt;/p&gt;
&lt;table border=&quot;1&quot; align=&quot;center&quot;&gt;
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/editpolicy/PapyrusCanonicalEditPolicy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/editpolicy/PapyrusCanonicalEditPolicy.java
index 7150fb0b5b6..a5ef24c7b5d 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/editpolicy/PapyrusCanonicalEditPolicy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/editpolicy/PapyrusCanonicalEditPolicy.java
@@ -12,6 +12,7 @@
* Christian W. Damus - bug 420549
* Christian W. Damus - bug 472155
* Christian W. Damus - bug 471954
+ * Christian W. Damus - bug 477384
*
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.canonical.editpolicy;
@@ -42,13 +43,15 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.TopGraphicEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
+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.CreateViewRequest.ViewDescriptor;
-import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
import org.eclipse.gmf.runtime.notation.CanonicalStyle;
import org.eclipse.gmf.runtime.notation.Connector;
import org.eclipse.gmf.runtime.notation.DecorationNode;
+import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.Sorting;
import org.eclipse.gmf.runtime.notation.SortingStyle;
@@ -56,20 +59,20 @@ import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.commands.util.CommandTreeIterator;
import org.eclipse.papyrus.commands.wrappers.EMFtoGEFCommandWrapper;
import org.eclipse.papyrus.commands.wrappers.GEFCommandWrapper;
-import org.eclipse.papyrus.infra.core.utils.AdapterUtils;
import org.eclipse.papyrus.infra.gmfdiag.canonical.internal.Activator;
-import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy;
import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ISemanticChildrenStrategy;
import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.IVisualChildrenStrategy;
import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.SemanticChildrenStrategyRegistry;
-import org.eclipse.papyrus.infra.gmfdiag.common.commands.requests.CanonicalDropObjectsRequest;
+import org.eclipse.papyrus.infra.gmfdiag.common.commands.SemanticElementAdapter;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.requests.RollingDeferredArrangeRequest;
import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.EdgeWithNoSemanticElementRepresentationImpl;
import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.IPapyrusCanonicalEditPolicy;
import org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramHelper;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.VisualTypeService;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
+import org.eclipse.papyrus.infra.tools.util.PlatformHelper;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Ordering;
@@ -108,7 +111,9 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
};
private ISemanticChildrenStrategy semanticChildrenStrategy = null;
- private ICreationTargetStrategy creationTargetStrategy;
+
+ @SuppressWarnings("deprecation")
+ private org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy creationTargetStrategy;
private Collection<? extends EObject> dependents = null;
@@ -119,12 +124,15 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
private boolean overrideEnabled;
+ private ChildrenKindStack currentChildrenKind;
+
+ @SuppressWarnings("deprecation")
@Override
public final void activate() {
if (host().getNotationView() != null) {
final SemanticChildrenStrategyRegistry reg = SemanticChildrenStrategyRegistry.getInstance();
semanticChildrenStrategy = reg.getSemanticChildrenStrategy(getHost());
- creationTargetStrategy = ICreationTargetStrategy.Safe.safe(reg.getCreationTargetStrategy(getHost()));
+ creationTargetStrategy = org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy.Safe.safe(reg.getCreationTargetStrategy(getHost()));
hookCanonicalStateListener();
if (isEnabled()) {
@@ -532,7 +540,12 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
List<IAdaptable> createdViews = Collections.emptyList();
if (isInState(State.ACTIVE)) {
if (!semanticChildren.isEmpty()) {
- createdViews = createViews(semanticChildren);
+ pushChildrenKind(kind);
+ try {
+ createdViews = createViews(semanticChildren);
+ } finally {
+ popChildrenKind();
+ }
}
if (isManagedListCompartment()) {
@@ -551,6 +564,18 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
return createdViews;
}
+ private void pushChildrenKind(ChildrenKind kind) {
+ currentChildrenKind = new ChildrenKindStack(kind);
+ }
+
+ private void popChildrenKind() {
+ currentChildrenKind = currentChildrenKind.parent();
+ }
+
+ protected final ChildrenKind currentChildrenKind() {
+ return (currentChildrenKind == null) ? null : currentChildrenKind.kind();
+ }
+
@Override
protected boolean isOrphaned(Collection<EObject> semanticChildren, View view) {
if (super.isOrphaned(semanticChildren, view)) {
@@ -602,13 +627,64 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
}
@Override
+ protected ViewDescriptor getViewDescriptor(EObject element) {
+ ViewDescriptor result;
+ boolean isEdge = false;
+
+ // Consult the visual type service to get the appropriate
+ IGraphicalEditPart parentPart = host();
+ IGraphicalEditPart sourcePart = null;
+ IGraphicalEditPart targetPart = null;
+
+ // Look for a node to create
+ String viewType;
+
+ switch (currentChildrenKind()) {
+ case NODE:
+ viewType = VisualTypeService.getInstance().getNodeType(parentPart.getNotationView(), element);
+ break;
+ case CONNECTION:
+ isEdge = true;
+ parentPart = DiagramEditPartsUtil.getDiagramEditPart(host());
+ viewType = VisualTypeService.getInstance().getLinkType(host().getNotationView().getDiagram(), element);
+ if (viewType != null) {
+ // Identify the source and target
+ sourcePart = semanticChildrenStrategy.resolveSourceEditPart(element, host());
+ targetPart = semanticChildrenStrategy.resolveTargetEditPart(element, host());
+ }
+ break;
+ default:
+ viewType = null;
+ break;
+ }
+
+ if ((viewType != null) && (!isEdge || ((sourcePart != null) && (targetPart != null)))) {
+ IAdaptable elementAdapter = new SemanticElementAdapter(
+ element,
+ VisualTypeService.getInstance().getElementType(
+ host().getNotationView().getDiagram(),
+ viewType));
+
+ int pos = getViewIndexFor(element);
+ result = isEdge
+ ? new ChildConnectionDescriptor(elementAdapter, viewType, pos, sourcePart, targetPart)
+ : new ChildNodeDescriptor(elementAdapter, viewType, pos, parentPart);
+ } else {
+ // i.e., return a view descriptor that is certain not to result in an useful command
+ result = super.getViewDescriptor(element);
+ }
+
+ return result;
+ }
+
+ @Override
protected Command getCreateViewCommand(CreateRequest request) {
Command result;
if (!(request instanceof CreateViewRequest)) {
result = super.getCreateViewCommand(request);
} else {
- // Transform the request to a drop request serviced by the canonical drop policy
+ // Obtain the view creation commands and decorate them
CreateViewRequest createViewRequest = (CreateViewRequest) request;
Iterable<? extends ViewDescriptor> descriptors = createViewRequest.getViewDescriptors();
@@ -617,13 +693,33 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
EObject element = viewDescriptor.getElementAdapter().getAdapter(EObject.class);
if (element != null) {
- List<EObject> elementToDrop = Collections.singletonList(element);
- DropObjectsRequest dropRequest = new DropObjectsRequest();
- dropRequest.setObjects(elementToDrop);
- dropRequest.setLocation(createViewRequest.getLocation());
- CanonicalDropObjectsRequest canonicalRequest = new CanonicalDropObjectsRequest(dropRequest);
+ CreateRequest newRequest = createCreateRequest(viewDescriptor);
+ Command cmd;
+
+ if (newRequest instanceof CreateConnectionViewRequest) {
+ // Connection case
+ EditPart sourceEditPart = ((CreateConnectionViewRequest) newRequest).getSourceEditPart();
+ EditPart targetEditPart = ((CreateConnectionViewRequest) newRequest).getTargetEditPart();
+
+ // Initialize the command
+ newRequest.setType(RequestConstants.REQ_CONNECTION_START);
+ sourceEditPart.getCommand(newRequest);
+ newRequest.setType(RequestConstants.REQ_CONNECTION_END);
+
+ // Get the command
+ cmd = targetEditPart.getCommand(newRequest);
+ } else {
+ // Node case
+ EditPart parentEditPart = (viewDescriptor instanceof ChildNodeDescriptor)
+ ? ((ChildNodeDescriptor) viewDescriptor).getParentEditPart()
+ : host();
+
+ @SuppressWarnings("deprecation")
+ EditPart targetEditPart = creationTargetStrategy.getTargetEditPart(parentEditPart, element);
+
+ cmd = targetEditPart.getCommand(newRequest);
+ }
- Command cmd = creationTargetStrategy.getTargetEditPart(getHost(), element).getCommand(canonicalRequest);
if ((cmd != null) && cmd.canExecute()) {
compoundCommand.add(cmd);
}
@@ -639,6 +735,27 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
return result;
}
+ protected CreateRequest createCreateRequest(ViewDescriptor viewDescriptor) {
+ CreateRequest result;
+
+ if (viewDescriptor instanceof CreateConnectionViewRequest.ConnectionViewDescriptor) {
+ CreateConnectionViewRequest.ConnectionViewDescriptor cvd = (CreateConnectionViewRequest.ConnectionViewDescriptor) viewDescriptor;
+ CreateConnectionViewRequest ccvr = new CreateConnectionViewRequest(cvd);
+
+ if (cvd instanceof ChildConnectionDescriptor) {
+ ChildConnectionDescriptor ccd = (ChildConnectionDescriptor) cvd;
+ ccvr.setSourceEditPart(ccd.getSourceEditPart());
+ ccvr.setTargetEditPart(ccd.getTargetEditPart());
+ }
+
+ result = ccvr;
+ } else {
+ result = new CreateViewRequest(viewDescriptor);
+ }
+
+ return result;
+ }
+
@Override
protected List<View> getViewChildren() {
List<View> result = getViewChildren(ChildrenKind.NODE);
@@ -806,6 +923,26 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
NODE, CONNECTION;
}
+ private final class ChildrenKindStack {
+ private final ChildrenKind kind;
+ private final ChildrenKindStack parent;
+
+ ChildrenKindStack(ChildrenKind kind) {
+ super();
+
+ this.kind = kind;
+ this.parent = currentChildrenKind;
+ }
+
+ ChildrenKind kind() {
+ return kind;
+ }
+
+ ChildrenKindStack parent() {
+ return parent;
+ }
+ }
+
protected static abstract class PostCreationWrapperCommand<A> extends GEFCommandWrapper {
public PostCreationWrapperCommand(Command command) {
super(command);
@@ -845,9 +982,9 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
}
protected void postProcessView(Object viewish, A accumulator) {
- Optional<View> view = AdapterUtils.adapt(viewish, View.class);
- if (view.isPresent()) {
- postProcessView(view.get(), accumulator);
+ View view = PlatformHelper.getAdapter(viewish, View.class);
+ if (view != null) {
+ postProcessView(view, accumulator);
}
}
@@ -855,4 +992,40 @@ public class PapyrusCanonicalEditPolicy extends CanonicalEditPolicy implements I
// Pass
}
}
+
+ private class ChildNodeDescriptor extends CreateViewRequest.ViewDescriptor {
+
+ private final EditPart parentEditPart;
+
+ public ChildNodeDescriptor(IAdaptable elementAdapter, String factoryHint, int index, EditPart parentEditPart) {
+ super(elementAdapter, Node.class, factoryHint, index, host().getDiagramPreferencesHint());
+
+ this.parentEditPart = parentEditPart;
+ }
+
+ EditPart getParentEditPart() {
+ return parentEditPart;
+ }
+ }
+
+ private class ChildConnectionDescriptor extends CreateConnectionViewRequest.ConnectionViewDescriptor {
+
+ private final EditPart sourceEditPart;
+ private final EditPart targetEditPart;
+
+ public ChildConnectionDescriptor(IAdaptable elementAdapter, String factoryHint, int index, EditPart sourceEditPart, EditPart targetEditPart) {
+ super(elementAdapter, factoryHint, index, host().getDiagramPreferencesHint());
+
+ this.sourceEditPart = sourceEditPart;
+ this.targetEditPart = targetEditPart;
+ }
+
+ EditPart getSourceEditPart() {
+ return sourceEditPart;
+ }
+
+ EditPart getTargetEditPart() {
+ return targetEditPart;
+ }
+ }
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/CreationTargetStrategyRegistration.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/CreationTargetStrategyRegistration.java
index 0688a69c684..afb6918c615 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/CreationTargetStrategyRegistration.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/CreationTargetStrategyRegistration.java
@@ -14,11 +14,16 @@ package org.eclipse.papyrus.infra.gmfdiag.canonical.strategy;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.papyrus.infra.gmfdiag.canonical.editpolicy.PapyrusCanonicalEditPolicy;
/**
* The registration of a creation target strategy.
+ *
+ * @deprecated As of Neon, this strategy is no longer needed because the {@link PapyrusCanonicalEditPolicy}
+ * no longer uses the drag-and-drop infrastructure to create views of existing elements in the diagram.
*/
+@Deprecated
class CreationTargetStrategyRegistration extends Registration<ICreationTargetStrategy, CreationTargetStrategyRegistration> {
CreationTargetStrategyRegistration(IConfigurationElement config) throws CoreException {
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ICreationTargetStrategy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ICreationTargetStrategy.java
index 9a663619aa1..21c4c8efa01 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ICreationTargetStrategy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ICreationTargetStrategy.java
@@ -16,11 +16,16 @@ package org.eclipse.papyrus.infra.gmfdiag.canonical.strategy;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gef.EditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.papyrus.infra.gmfdiag.canonical.editpolicy.PapyrusCanonicalEditPolicy;
/**
* A pluggable strategy for determining which edit part should be requested to create
* canonical views on behalf of a requesting edit part.
+ *
+ * @deprecated As of Neon, this strategy is no longer needed because the {@link PapyrusCanonicalEditPolicy}
+ * no longer uses the drag-and-drop infrastructure to create views of existing elements in the diagram.
*/
+@Deprecated
public interface ICreationTargetStrategy {
/**
* A creation-target strategy that always returns the requesting host edit-part as the creation target.
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ISemanticChildrenStrategy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ISemanticChildrenStrategy.java
index a1284edd561..78fca957362 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ISemanticChildrenStrategy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/ISemanticChildrenStrategy.java
@@ -10,6 +10,7 @@
* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
* Christian W. Damus - bug 433206
* Christian W. Damus - bug 420549
+ * Christian W. Damus - bug 477384
*
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.canonical.strategy;
@@ -18,9 +19,12 @@ import java.util.Collection;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
import org.eclipse.gmf.runtime.notation.View;
+import com.google.common.collect.Lists;
+
/**
* A pluggable strategy for determination of semantic "children" of an element, those being
* either contained elements, relationships of the element, or other related elements.
@@ -66,4 +70,99 @@ public interface ISemanticChildrenStrategy {
*/
public Collection<? extends EObject> getCanonicalDependents(EObject semanticFromEditPart, View viewFromEditPart);
+ /**
+ * Obtains the source of a semantic connection element. This may either be an
+ * {@link EObject} in the most common straight-forward case, or a
+ * {@link VisuallyNestedElements} in the more complex case of an element whose
+ * visualization is repeated in a nesting structure that qualifies each repeated
+ * occurrence (such as in the case of connected ports on parts in an UML composite
+ * structure diagram).
+ *
+ * @param connectionElement
+ * a semantic connection in the model to be visualized
+ *
+ * @return the connection's source element, or {@code null} if not known
+ */
+ public default Object getSource(EObject connectionElement) {
+ return null;
+ }
+
+ /**
+ * Obtains the target of a semantic connection element. This may either be an
+ * {@link EObject} in the most common straight-forward case, or a
+ * {@link VisuallyNestedElements} in the more complex case of an element whose
+ * visualization is repeated in a nesting structure that qualifies each repeated
+ * occurrence (such as in the case of connected ports on parts in an UML composite
+ * structure diagram).
+ *
+ * @param connectionElement
+ * a semantic connection in the model to be visualized
+ *
+ * @return the connection's target element, or {@code null} if not known
+ */
+ public default Object getTarget(EObject connectionElement) {
+ return null;
+ }
+
+ public default IGraphicalEditPart resolveSourceEditPart(EObject connectionElement, IGraphicalEditPart context) {
+ return VisuallyNestedElementsImpl.resolveEditPart(getSource(connectionElement), context);
+ }
+
+ public default IGraphicalEditPart resolveTargetEditPart(EObject connectionElement, IGraphicalEditPart context) {
+ return VisuallyNestedElementsImpl.resolveEditPart(getTarget(connectionElement), context);
+ }
+
+ public static VisuallyNestedElements createVisualStack(EObject top, EObject nested, EObject... more) {
+ return new VisuallyNestedElementsImpl(Lists.asList(top, nested, more));
+ }
+
+ //
+ // Nested types
+ //
+
+ /**
+ * <p>
+ * In the case that the presentation of a connection end is more complex
+ * than simply a shape, where in fact the connection end may be visualized
+ * multiple times in the diagram and each occurrence is semantically qualified
+ * by the elements that visually contain it (possibly recursively to any
+ * depth), then a {@code VisuallyNestedElements} is supplied to represent
+ * that structure.
+ * </p>
+ * <p>
+ * This interface is a sequence of elements where the first is the most
+ * deeply nested element and the last is the element that is, truly, the
+ * connection end that is nested within all those that precede it in the list.
+ * This is convenient for iterative searching of the diagram for edit-parts
+ * that present the stack of elements.
+ * </p>
+ * <p>
+ * The canonical (pun intended) case is in the UML Composite Structure Diagram,
+ * where a connector may connect a port that is on a part. Any number of parts
+ * (or the composite classifier, itself) may also feature this port, but the
+ * connector end qualifies the port with the featuring part that is actually
+ * connected via that port.
+ * </p>
+ *
+ * @see ISemanticChildrenStrategy#getSource(EObject)
+ * @see ISemanticChildrenStrategy#getTarget(EObject)
+ */
+ interface VisuallyNestedElements extends List<EObject> {
+ /**
+ * Obtains the topmost element of the nesting structure.
+ *
+ * @return the top element
+ */
+ EObject top();
+
+ /**
+ * Obtains the nesting of elements within the {@linkplain #top() top} element,
+ * recursively. The {@code top} of the result is visually presented "within"
+ * my {@code top}.
+ *
+ * @return the elements visually nested with the {@linkplain #top() top} element,
+ * or {@code null} if none (when my {@code top} is, in fact, the deepest nested element)
+ */
+ VisuallyNestedElements nested();
+ }
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/SemanticChildrenStrategyRegistry.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/SemanticChildrenStrategyRegistry.java
index d694c066b5b..cacb1b8fa24 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/SemanticChildrenStrategyRegistry.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/SemanticChildrenStrategyRegistry.java
@@ -9,6 +9,7 @@
* Contributors:
* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
* Christian W. Damus - bug 433206
+ * Christian W. Damus - bug 477384
*
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.canonical.strategy;
@@ -18,6 +19,7 @@ import java.util.List;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
import org.eclipse.gef.EditPart;
+import org.eclipse.papyrus.infra.gmfdiag.canonical.editpolicy.PapyrusCanonicalEditPolicy;
import org.eclipse.papyrus.infra.gmfdiag.canonical.internal.Activator;
import com.google.common.collect.ArrayListMultimap;
@@ -35,6 +37,7 @@ public class SemanticChildrenStrategyRegistry {
private final List<DefaultSemanticChildrenStrategyRegistration> defaultStrategies;
private final List<VisualChildrenStrategyRegistration> visualChildrenStrategies;
private final Multimap<Class<?>, VisualChildrenStrategyRegistration> visualChildrenStrategiesByEditPart = ArrayListMultimap.create();
+ @SuppressWarnings("deprecation")
private final List<CreationTargetStrategyRegistration> creationTargetStrategies;
private static SemanticChildrenStrategyRegistry INSTANCE = new SemanticChildrenStrategyRegistry();
@@ -48,6 +51,7 @@ public class SemanticChildrenStrategyRegistry {
List<SemanticChildrenStrategyRegistration> strategies = Lists.newArrayList();
List<DefaultSemanticChildrenStrategyRegistration> defaultStrategies = Lists.newArrayListWithExpectedSize(1);
+ @SuppressWarnings("deprecation")
List<CreationTargetStrategyRegistration> creationTargetStrategies = Lists.newArrayList();
List<VisualChildrenStrategyRegistration> visualChildrenStrategies = Lists.newArrayList();
@@ -65,7 +69,9 @@ public class SemanticChildrenStrategyRegistry {
defaultStrategies.add(new DefaultSemanticChildrenStrategyRegistration(config));
break;
case "creationTargetStrategy": //$NON-NLS-1$
- creationTargetStrategies.add(new CreationTargetStrategyRegistration(config));
+ @SuppressWarnings("deprecation")
+ CreationTargetStrategyRegistration creationReg = new CreationTargetStrategyRegistration(config);
+ creationTargetStrategies.add(creationReg);
break;
case "visualChildrenStrategy": //$NON-NLS-1$
visualChildrenStrategies.add(new VisualChildrenStrategyRegistration(config));
@@ -158,7 +164,11 @@ public class SemanticChildrenStrategyRegistry {
* an edit part in a diagram
*
* @return the {@link ICreationTargetStrategy} or {@code null} if no applicable strategy is registered
+ *
+ * @deprecated As of Neon, this strategy is no longer needed because the {@link PapyrusCanonicalEditPolicy}
+ * no longer uses the drag-and-drop infrastructure to create views of existing elements in the diagram.
*/
+ @Deprecated
public ICreationTargetStrategy getCreationTargetStrategy(EditPart editPart) {
return getStrategy(editPart, creationTargetStrategies);
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/VisuallyNestedElementsImpl.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/VisuallyNestedElementsImpl.java
new file mode 100644
index 00000000000..a9868b96cb3
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/src/org/eclipse/papyrus/infra/gmfdiag/canonical/strategy/VisuallyNestedElementsImpl.java
@@ -0,0 +1,112 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.canonical.strategy;
+
+import java.util.AbstractList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ISemanticChildrenStrategy.VisuallyNestedElements;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
+
+/**
+ * Default implementation of the {@link VisuallyNestedElements} protocol.
+ */
+class VisuallyNestedElementsImpl extends AbstractList<EObject>implements VisuallyNestedElements {
+
+ private final List<EObject> delegate;
+
+ private VisuallyNestedElements nested;
+
+ VisuallyNestedElementsImpl(List<EObject> delegate) {
+ super();
+
+ this.delegate = delegate;
+ }
+
+ @Override
+ public boolean add(EObject e) {
+ throw new UnsupportedOperationException("add"); //$NON-NLS-1$
+ }
+
+ @Override
+ public EObject get(int index) {
+ return delegate.get(index);
+ }
+
+ @Override
+ public EObject set(int index, EObject element) {
+ throw new UnsupportedOperationException("set"); //$NON-NLS-1$
+ }
+
+ @Override
+ public void add(int index, EObject element) {
+ throw new UnsupportedOperationException("add"); //$NON-NLS-1$
+ }
+
+ @Override
+ public EObject remove(int index) {
+ throw new UnsupportedOperationException("remove"); //$NON-NLS-1$
+ }
+
+ @Override
+ public int size() {
+ return delegate.size();
+ }
+
+ @Override
+ public EObject top() {
+ return get(0);
+ }
+
+ @Override
+ public VisuallyNestedElements nested() {
+ if ((nested == null) && (size() > 1)) {
+ nested = new VisuallyNestedElementsImpl(delegate.subList(1, size()));
+ }
+
+ return nested;
+ }
+
+ static IGraphicalEditPart resolveEditPart(Object connectionEnd, IGraphicalEditPart context) {
+ IGraphicalEditPart result = null;
+ EObject contextElement = context.resolveSemanticElement();
+ IGraphicalEditPart search = DiagramEditPartsUtil.getDiagramEditPart(context);
+
+ if (connectionEnd instanceof VisuallyNestedElements) {
+ VisuallyNestedElements stack = (VisuallyNestedElements) connectionEnd;
+
+ for (EObject next : stack) {
+ result = DiagramEditPartsUtil.getChildByEObject(next, search, false);
+ if (result != null) {
+ search = result;
+ } else {
+ break;
+ }
+ }
+ } else {
+ EObject eEnd = (EObject) connectionEnd;
+ if (eEnd == contextElement) {
+ result = context.getTopGraphicEditPart();
+ } else {
+ result = DiagramEditPartsUtil.getChildByEObject(eEnd, search, false);
+ }
+ }
+
+ return result;
+ }
+
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/util/CommandTreeIterator.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/util/CommandTreeIterator.java
index 3e2637de3bd..9285142a88a 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/util/CommandTreeIterator.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/util/CommandTreeIterator.java
@@ -44,7 +44,6 @@ public class CommandTreeIterator<C> implements Iterator<C> {
private List<Iterator<?>> iterators = new ArrayList<Iterator<?>>();
private C preparedNext;
- private boolean done;
private CommandTreeIterator(Object root, Class<C> type) {
super();
@@ -56,7 +55,7 @@ public class CommandTreeIterator<C> implements Iterator<C> {
if (isCompound(root)) {
pushIterator(root);
} else {
- done = !prepareNext(root);
+ prepareNext(root);
}
}
@@ -99,7 +98,6 @@ public class CommandTreeIterator<C> implements Iterator<C> {
private Iterator<?> popIterator() {
if (iterators.isEmpty()) {
current = null;
- done = true;
} else {
current = iterators.remove(iterators.size() - 1);
}
@@ -128,8 +126,12 @@ public class CommandTreeIterator<C> implements Iterator<C> {
return result;
}
+ boolean isDone() {
+ return (current == null) && iterators.isEmpty();
+ }
+
public boolean hasNext() {
- while (!done && (preparedNext == null)) {
+ while (!isDone() && (preparedNext == null)) {
Object next = internalNext();
if (type.isInstance(next)) {
preparedNext = type.cast(next);
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
index 73d03a1c6e7..2086f868ede 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
@@ -29,6 +29,7 @@ Export-Package: org.eclipse.papyrus.infra.gmfdiag.common,
org.eclipse.papyrus.infra.gmfdiag.common.reconciler,
org.eclipse.papyrus.infra.gmfdiag.common.selection,
org.eclipse.papyrus.infra.gmfdiag.common.service.shape,
+ org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype,
org.eclipse.papyrus.infra.gmfdiag.common.snap,
org.eclipse.papyrus.infra.gmfdiag.common.snap.copy,
org.eclipse.papyrus.infra.gmfdiag.common.strategy,
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
index ec3bfd1fd8a..4ad8e04a92e 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
@@ -12,6 +12,7 @@
<extension-point id="copyStrategy" name="copyStrategy" schema="schema/copyStrategy.exsd"/>
<extension-point id="diagramReconciler" name="diagramReconciler" schema="schema/diagramReconciler.exsd"/>
<extension-point id="diagramExpansion" name="diagramExpansion" schema="schema/DiagramExpansion.exsd"/>
+ <extension-point id="visualTypeProviders" name="Visual Type Providers" schema="schema/visualTypeProviders.exsd"/>
<extension
point="org.eclipse.ui.handlers">
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/schema/visualTypeProviders.exsd b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/schema/visualTypeProviders.exsd
new file mode 100644
index 00000000000..d2ce2cad190
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/schema/visualTypeProviders.exsd
@@ -0,0 +1,128 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.gmfdiag.common" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.gmfdiag.common" id="visualTypeProviders" name="Visual Type Providers"/>
+ </appInfo>
+ <documentation>
+ Provider of information about the visual types supported by a particular diagram. The extension associates a provider with a diagram type, and the provider supplies element types for visual IDs and the best visual IDs for presentation of model elements as nodes and edges in the diagram.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="visualTypeProvider"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="visualTypeProvider">
+ <complexType>
+ <sequence>
+ <element ref="Priority" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="diagramType" type="string" use="required">
+ <annotation>
+ <documentation>
+ The diagram type for which the provider supplies visual type information.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class implementing the provider.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider:"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="Priority">
+ <complexType>
+ <attribute name="name" use="default" value="Lowest">
+ <annotation>
+ <documentation>
+ The priority of the provider. It can be one of the following values:
+[Lowest, Low, Medium, High, Highest].
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="Lowest">
+ </enumeration>
+ <enumeration value="Low">
+ </enumeration>
+ <enumeration value="Medium">
+ </enumeration>
+ <enumeration value="High">
+ </enumeration>
+ <enumeration value="Highest">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 1.2
+ </documentation>
+ </annotation>
+
+
+
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2015 Christian W. Damus and others.
+
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/commands/requests/CanonicalDropObjectsRequest.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/commands/requests/CanonicalDropObjectsRequest.java
index 577576cbd57..bb90cf6a0f8 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/commands/requests/CanonicalDropObjectsRequest.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/commands/requests/CanonicalDropObjectsRequest.java
@@ -20,7 +20,11 @@ import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
/**
* A request to drop objects into an {@link EditPart} as canonical children,
* which is a "canonical drop".
+ *
+ * @deprecated No longer used by the Canonical Edit Policy nor answered by the
+ * Customizable Drop Edit Policy
*/
+@Deprecated
public class CanonicalDropObjectsRequest extends Request {
/** The request type for the "canonical drop" command. */
public static final String REQ_CANONICAL_DROP_OBJECTS = "org.eclipse.papyrus.CANONICAL_DROP_OBJECTS";
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/AbstractVisualTypeProvider.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/AbstractVisualTypeProvider.java
new file mode 100644
index 00000000000..6e716001444
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/AbstractVisualTypeProvider.java
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Strings;
+
+/**
+ * Abstract superclass of all {@link IVisualTypeProvider} extensions.
+ */
+public abstract class AbstractVisualTypeProvider extends AbstractProvider implements IVisualTypeProvider {
+
+ private String diagramType;
+
+ public AbstractVisualTypeProvider() {
+ super();
+ }
+
+ @Override
+ public boolean provides(IOperation operation) {
+ return (operation instanceof IVisualTypeOperation)
+ && Objects.equal(((IVisualTypeOperation) operation).getDiagramType(), diagramType);
+ }
+
+ void setConfiguration(IConfigurationElement config) {
+ diagramType = config.getAttribute("diagramType"); //$NON-NLS-1$
+ if (Strings.isNullOrEmpty(diagramType)) {
+ throw new IllegalArgumentException("No diagramType attribute specified by visual type provider extension"); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetElementTypeOperation.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetElementTypeOperation.java
new file mode 100644
index 00000000000..2faad3eef1c
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetElementTypeOperation.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.core.service.IProvider;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+
+/**
+ * The {@link IVisualTypeProvider#getElementType(Diagram, String)} operation.
+ */
+public class GetElementTypeOperation implements IOperation, IVisualTypeOperation {
+
+ private Diagram diagram;
+ private String viewType;
+
+ public GetElementTypeOperation(Diagram diagram, String viewType) {
+ super();
+
+ this.diagram = diagram;
+ this.viewType = viewType;
+ }
+
+ @Override
+ public Object execute(IProvider provider) {
+ IElementType result = null;
+
+ if (provider instanceof IVisualTypeProvider) {
+ result = ((IVisualTypeProvider) provider).getElementType(diagram, viewType);
+ }
+
+ return result;
+ }
+
+ @Override
+ public String getDiagramType() {
+ return diagram.getType();
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetLinkTypeOperation.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetLinkTypeOperation.java
new file mode 100644
index 00000000000..edd17e8232b
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetLinkTypeOperation.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.core.service.IProvider;
+import org.eclipse.gmf.runtime.notation.Diagram;
+
+/**
+ * The {@link IVisualTypeProvider#getLinkType(EObject)} operation.
+ */
+public class GetLinkTypeOperation implements IOperation, IVisualTypeOperation {
+
+ private Diagram diagram;
+ private EObject element;
+
+ public GetLinkTypeOperation(Diagram diagram, EObject element) {
+ super();
+
+ this.diagram = diagram;
+ this.element = element;
+ }
+
+ @Override
+ public Object execute(IProvider provider) {
+ String result = null;
+
+ if (provider instanceof IVisualTypeProvider) {
+ result = ((IVisualTypeProvider) provider).getLinkType(diagram, element);
+ }
+
+ return result;
+ }
+
+ @Override
+ public String getDiagramType() {
+ return diagram.getType();
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetNodeTypeOperation.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetNodeTypeOperation.java
new file mode 100644
index 00000000000..64c7dbfe465
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/GetNodeTypeOperation.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.core.service.IProvider;
+import org.eclipse.gmf.runtime.notation.View;
+
+/**
+ * The {@link IVisualTypeProvider#getNodeType(View, EObject)} operation.
+ */
+public class GetNodeTypeOperation implements IOperation, IVisualTypeOperation {
+
+ private View parentView;
+ private EObject element;
+
+ public GetNodeTypeOperation(View parentView, EObject element) {
+ super();
+
+ this.parentView = parentView;
+ this.element = element;
+ }
+
+ @Override
+ public Object execute(IProvider provider) {
+ String result = null;
+
+ if (provider instanceof IVisualTypeProvider) {
+ result = ((IVisualTypeProvider) provider).getNodeType(parentView, element);
+ }
+
+ return result;
+ }
+
+ @Override
+ public String getDiagramType() {
+ return parentView.getDiagram().getType();
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeOperation.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeOperation.java
new file mode 100644
index 00000000000..9e37ba69463
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeOperation.java
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+/**
+ * A private interface implemented by all {@link IVisualTypeProvider} operations.
+ */
+interface IVisualTypeOperation {
+ /**
+ * Queries the type identifier of the diagram that is the context of the visual-type operation.
+ *
+ * @return the contextual diagram type
+ */
+ String getDiagramType();
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeProvider.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeProvider.java
new file mode 100644
index 00000000000..28259b99b77
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/IVisualTypeProvider.java
@@ -0,0 +1,70 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.service.IProvider;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+
+/**
+ * A GMF service provider for visual element-type information specific to a diagram.
+ *
+ * @noimplement Providers should extend the {@link AbstractVisualTypeProvider} class.
+ */
+public interface IVisualTypeProvider extends IProvider {
+ /**
+ * Obtains the element-type indicated by the specified {@code visualID}.
+ *
+ * @param diagram
+ * the diagram context in which the visualID is encountered
+ * @param viewType
+ * the {@linkplain View#getType() view type} for an element visualized in the diagram
+ *
+ * @return the corresponding element type, or {@code null} if the {@code visualID} is
+ * not recognized by this provider
+ */
+ IElementType getElementType(Diagram diagram, String viewType);
+
+ /**
+ * Obtains the unique view type for the visualization of an {@code element} in a parent view.
+ *
+ * @param parentView
+ * the view within which the {@code element} is to be visualized
+ * @param element
+ * a model element to visualize
+ *
+ * @return the {@linkplain View#getType() view type} of the node that would present the {@code element} in the parent view,
+ * or {@code null} if the {@code element} is not supported by this provider in the given parent view
+ */
+ String getNodeType(View parentView, EObject element);
+
+ /**
+ * Obtains the unique view type for the visualization of an {@code element} as an edge in the
+ * diagram. Note that, unlike the case of {@linkplain #getNodeType(View, EObject) nodes},
+ * there is no meaningful container-view context to qualify this query, as all edges are
+ * children of the root {@link Diagram}.
+ *
+ * @param diagram
+ * the diagram in which the {@code element} is to be visualized as an edge
+ * @param element
+ * a model element to visualize as an edge
+ *
+ * @return the {@linkplain View#getType() view type} of the edge that would present the {@code element} in the diagram,
+ * or {@code null} if the {@code element} is not supported by this provider in its diagram
+ */
+ String getLinkType(Diagram diagram, EObject element);
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/VisualTypeService.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/VisualTypeService.java
new file mode 100644
index 00000000000..892ee816794
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/service/visualtype/VisualTypeService.java
@@ -0,0 +1,179 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.service.ExecutionStrategy;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.core.service.IProvider;
+import org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener;
+import org.eclipse.gmf.runtime.common.core.service.ProviderPriority;
+import org.eclipse.gmf.runtime.common.core.service.Service;
+import org.eclipse.gmf.runtime.common.ui.services.util.ActivityFilterProviderDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Strings;
+
+/**
+ * A GMF service for visual element-type information specific to a diagram.
+ */
+public class VisualTypeService extends Service implements IVisualTypeProvider {
+ private static final VisualTypeService INSTANCE;
+
+ static {
+ INSTANCE = new VisualTypeService();
+ INSTANCE.configureProviders(Activator.ID, "visualTypeProviders"); //$NON-NLS-1$
+ }
+
+ private VisualTypeService() {
+ super(true, true);
+ }
+
+ public static VisualTypeService getInstance() {
+ return INSTANCE;
+ }
+
+ @Override
+ protected Object getCachingKey(IOperation operation) {
+ return ((IVisualTypeOperation) operation).getDiagramType();
+ }
+
+ @Override
+ public String getPriority(IConfigurationElement element) {
+ String result = ProviderPriority.LOWEST.getName();
+
+ IConfigurationElement[] priorities = element.getChildren("Priority");
+ if (priorities.length > 0) {
+ String priority = priorities[0].getAttribute("name");
+ if (!Strings.isNullOrEmpty(priority)) {
+ result = priority;
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ protected ProviderDescriptor newProviderDescriptor(IConfigurationElement element) {
+ class VTPDesc extends ActivityFilterProviderDescriptor {
+ private final String diagramType;
+
+ public VTPDesc(IConfigurationElement element) {
+ super(element);
+
+ diagramType = element.getAttribute("diagramType");
+ }
+
+ @Override
+ public boolean provides(IOperation operation) {
+ return (operation instanceof IVisualTypeOperation)
+ && Objects.equal(((IVisualTypeOperation) operation).getDiagramType(), diagramType)
+ && super.provides(operation);
+ }
+
+ @Override
+ public IProvider getProvider() {
+ IProvider result = provider;
+
+ if (result == null) {
+ // We are initializing the provider
+ result = super.getProvider();
+ if (result == null) {
+ Activator.log.warn(String.format("Provider initialization failed for <%s> in %s.", getElement().getName(), getElement().getContributor().getName()));
+ provider = new NullProvider();
+ result = provider;
+ } else {
+ ((AbstractVisualTypeProvider) result).setConfiguration(getElement());
+ }
+ }
+
+ return result;
+ }
+ }
+
+ return new VTPDesc(element);
+ }
+
+ //
+ // Provider API
+ //
+
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IOperation operation = new GetElementTypeOperation(diagram, viewType);
+ List<?> result = ExecutionStrategy.FIRST.execute(this, operation);
+
+ return result.isEmpty() ? null : (IElementType) result.get(0);
+ }
+
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ IOperation operation = new GetNodeTypeOperation(parentView, element);
+ List<?> result = ExecutionStrategy.FIRST.execute(this, operation);
+
+ return result.isEmpty() ? null : (String) result.get(0);
+ }
+
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ IOperation operation = new GetLinkTypeOperation(diagram, element);
+ List<?> result = ExecutionStrategy.FIRST.execute(this, operation);
+
+ return result.isEmpty() ? null : (String) result.get(0);
+ }
+
+ //
+ // Nested types
+ //
+
+ private static final class NullProvider implements IVisualTypeProvider {
+ @Override
+ public boolean provides(IOperation operation) {
+ return false;
+ }
+
+ @Override
+ public void addProviderChangeListener(IProviderChangeListener listener) {
+ // No point
+ }
+
+ @Override
+ public void removeProviderChangeListener(IProviderChangeListener listener) {
+ // Never added any
+ }
+
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ return null;
+ }
+
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ return null;
+ }
+
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ return null;
+ }
+
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/AbstractNestedDiagramViewsSyncFeature.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/AbstractNestedDiagramViewsSyncFeature.java
index 341cc35e9ea..76284615b5a 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/AbstractNestedDiagramViewsSyncFeature.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/AbstractNestedDiagramViewsSyncFeature.java
@@ -9,15 +9,16 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - bug 465416
+ * Christian W. Damus - bug 477384
*
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.common.sync;
-import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.draw2d.FigureCanvas;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.emf.common.command.AbstractCommand;
@@ -29,9 +30,15 @@ import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.edit.command.DeleteCommand;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.infra.gmfdiag.common.commands.requests.CanonicalDropObjectsRequest;
+import org.eclipse.papyrus.infra.gmfdiag.common.commands.SemanticElementAdapter;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.VisualTypeService;
import org.eclipse.papyrus.infra.sync.EStructuralFeatureSyncFeature;
import org.eclipse.papyrus.infra.sync.SyncBucket;
import org.eclipse.papyrus.infra.sync.SyncItem;
@@ -159,19 +166,14 @@ public abstract class AbstractNestedDiagramViewsSyncFeature<M extends EObject, N
FigureCanvas figureCanvas = (FigureCanvas) control;
Point location = figureCanvas.getViewport().getViewLocation();
- DropObjectsRequest dropObjectsRequest = new DropObjectsRequest();
objectToDrop = getTargetModel(from, to, newModel);
- dropObjectsRequest.setObjects(Collections.singletonList(objectToDrop));
- dropObjectsRequest.setLocation(location);
+ IGraphicalEditPart dropEditPart = (IGraphicalEditPart) getEffectiveEditPart(to.getBackend());
- EditPart dropEditPart = getEffectiveEditPart(to.getBackend());
- EditPart targetEditPart = getTargetEditPart(dropEditPart, dropObjectsRequest);
- if (targetEditPart != null) {
- dropEditPart = targetEditPart;
+ CreateRequest createRequest = getCreateRequest(dropEditPart, objectToDrop, location);
+ if (createRequest != null) {
+ dropCommand = getCreateCommand(dropEditPart, createRequest);
}
- dropCommand = dropEditPart.getCommand(new CanonicalDropObjectsRequest(dropObjectsRequest));
-
if (dropCommand == null) {
dropCommand = org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;
}
@@ -221,8 +223,40 @@ public abstract class AbstractNestedDiagramViewsSyncFeature<M extends EObject, N
};
}
- protected EditPart getTargetEditPart(EditPart parentEditPart, DropObjectsRequest dropObjectsRequest) {
- return parentEditPart.getTargetEditPart(dropObjectsRequest);
+ protected CreateRequest getCreateRequest(IGraphicalEditPart parentPart, EObject element, Point atLocation) {
+ CreateRequest result = null;
+
+ View parentView = parentPart.getNotationView();
+
+ // Consult the visual type service to get the appropriate view type
+ String viewType = VisualTypeService.getInstance().getNodeType(parentView, element);
+ if (viewType != null) {
+ IElementType elementType = VisualTypeService.getInstance().getElementType(parentView.getDiagram(), viewType);
+ IAdaptable elementAdapter = new SemanticElementAdapter(element, elementType);
+
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter,
+ Node.class,
+ viewType,
+ parentPart.getDiagramPreferencesHint());
+ result = new CreateViewRequest(descriptor);
+ result.setLocation(atLocation);
+ }
+
+ return result;
+ }
+
+ protected org.eclipse.gef.commands.Command getCreateCommand(IGraphicalEditPart parentPart, CreateRequest request) {
+ EditPart targetEditPart = getTargetEditPart(parentPart, request);
+ if (targetEditPart instanceof IGraphicalEditPart) {
+ parentPart = (IGraphicalEditPart) targetEditPart;
+ }
+
+ return parentPart.getCommand(request);
+ }
+
+ protected EditPart getTargetEditPart(EditPart parentEditPart, Request request) {
+ return parentEditPart.getTargetEditPart(request);
}
/**
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/DiagramEdgesSyncFeature.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/DiagramEdgesSyncFeature.java
index fd728c86549..9d1d80af299 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/DiagramEdgesSyncFeature.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/sync/DiagramEdgesSyncFeature.java
@@ -13,13 +13,23 @@
package org.eclipse.papyrus.infra.gmfdiag.common.sync;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.draw2d.geometry.Point;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.EditPart;
+import org.eclipse.gef.requests.CreateRequest;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.commands.SemanticElementAdapter;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.VisualTypeService;
import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
import org.eclipse.papyrus.infra.sync.SyncBucket;
@@ -69,4 +79,69 @@ public abstract class DiagramEdgesSyncFeature<M extends EObject, N extends EObje
return result;
}
+
+ @Override
+ protected CreateRequest getCreateRequest(IGraphicalEditPart parentPart, EObject element, Point atLocation) {
+ CreateConnectionViewRequest result = null;
+
+ DiagramEditPart diagramPart = DiagramEditPartsUtil.getDiagramEditPart(parentPart);
+ Diagram diagram = diagramPart.getDiagramView();
+ EObject source = getSourceElement(element);
+ EObject target = getTargetElement(element);
+
+ EditPart sourcePart = DiagramEditPartsUtil.getChildByEObject(source, diagramPart, false);
+ EditPart targetPart = DiagramEditPartsUtil.getChildByEObject(target, diagramPart, false);
+
+ if ((sourcePart != null) && (targetPart != null)) {
+ // Consult the visual type service to get the appropriate view type
+ String viewType = VisualTypeService.getInstance().getLinkType(diagram, element);
+ if (viewType != null) {
+ IElementType elementType = VisualTypeService.getInstance().getElementType(diagram, viewType);
+ IAdaptable elementAdapter = new SemanticElementAdapter(element, elementType);
+
+ CreateConnectionViewRequest.ConnectionViewDescriptor descriptor = new CreateConnectionViewRequest.ConnectionViewDescriptor(
+ elementAdapter,
+ viewType,
+ parentPart.getDiagramPreferencesHint());
+ result = new CreateConnectionViewRequest(descriptor);
+ result.setLocation(atLocation);
+ result.setSourceEditPart(sourcePart);
+ result.setTargetEditPart(targetPart);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Queries the source element of a semantic connection.
+ *
+ * @param connectionElement
+ * a semantic connection element
+ *
+ * @return its source element
+ */
+ protected abstract EObject getSourceElement(EObject connectionElement);
+
+ /**
+ * Queries the target element of a semantic connection.
+ *
+ * @param connectionElement
+ * a semantic connection element
+ *
+ * @return its target element
+ */
+ protected abstract EObject getTargetElement(EObject connectionElement);
+
+ @Override
+ protected org.eclipse.gef.commands.Command getCreateCommand(IGraphicalEditPart parentPart, CreateRequest request) {
+ // Initialize the command
+ request.setType(RequestConstants.REQ_CONNECTION_START);
+ ((CreateConnectionViewRequest) request).getSourceEditPart().getCommand(request);
+ request.setType(RequestConstants.REQ_CONNECTION_END);
+
+ // Get the command
+ return ((CreateConnectionViewRequest) request).getTargetEditPart().getCommand(request);
+ }
+
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java
index 21b991a442c..8387e373cc3 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java
@@ -9,6 +9,7 @@
* Contributors:
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
* Christian W. Damus - bug 433206
+ * Christian W. Damus - bug 477384
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.dnd.policy;
@@ -41,7 +42,6 @@ import org.eclipse.gmf.runtime.notation.Shape;
import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.DefaultActionHandler;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.SelectAndExecuteCommand;
-import org.eclipse.papyrus.infra.gmfdiag.common.commands.requests.CanonicalDropObjectsRequest;
import org.eclipse.papyrus.infra.gmfdiag.dnd.Activator;
import org.eclipse.papyrus.infra.gmfdiag.dnd.strategy.DefaultDropStrategy;
import org.eclipse.papyrus.infra.gmfdiag.dnd.strategy.DropStrategy;
@@ -104,13 +104,8 @@ public class CustomizableDropEditPolicy extends DragDropEditPolicy {
command = getCustomCommand(request);
}
} else if (this.understands(request)) {
- if (CanonicalDropObjectsRequest.REQ_CANONICAL_DROP_OBJECTS.equals(request.getType())) {
- // Forward canonical drop to the default drop policy
- command = getCanonicalDropObjectsCommand(request);
- } else {
- // Add request
- command = getCreationCommand(request);
- }
+ // Add request
+ command = getCreationCommand(request);
} else if (defaultCreationEditPolicy != null) {
// Creation request
if (defaultCreationEditPolicy.understandsRequest(request)) {
@@ -141,8 +136,7 @@ public class CustomizableDropEditPolicy extends DragDropEditPolicy {
}
protected boolean understands(Request request) {
- return org.eclipse.gef.RequestConstants.REQ_ADD.equals(request.getType())
- || CanonicalDropObjectsRequest.REQ_CANONICAL_DROP_OBJECTS.equals(request.getType());
+ return org.eclipse.gef.RequestConstants.REQ_ADD.equals(request.getType());
}
protected boolean isCustomRequest(Request request) {
@@ -153,11 +147,15 @@ public class CustomizableDropEditPolicy extends DragDropEditPolicy {
return getCustomCommand(request);
}
+ /**
+ * @deprecated No longer used.
+ */
+ @Deprecated
protected Command getCanonicalDropObjectsCommand(Request request) {
Command result = null;
- if ((defaultDropEditPolicy != null) && (request instanceof CanonicalDropObjectsRequest)) {
- result = defaultDropEditPolicy.getCommand(((CanonicalDropObjectsRequest) request).getDropObjectsRequest());
+ if ((defaultDropEditPolicy != null) && (request instanceof org.eclipse.papyrus.infra.gmfdiag.common.commands.requests.CanonicalDropObjectsRequest)) {
+ result = defaultDropEditPolicy.getCommand(((org.eclipse.papyrus.infra.gmfdiag.common.commands.requests.CanonicalDropObjectsRequest) request).getDropObjectsRequest());
}
return result;
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.xml
index fd5595856dd..9a82f0eeb78 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.xml
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.xml
@@ -1382,4 +1382,12 @@
target="1.1.0">
</diagramReconciler>
</extension>
+
+ <extension
+ point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <visualTypeProvider
+ class="org.eclipse.papyrus.sysml.diagram.blockdefinition.provider.BlockDefinitionVisualTypeProvider"
+ diagramType="BlockDefinition">
+ </visualTypeProvider>
+ </extension>
</plugin>
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/BlockDefinitionVisualTypeProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/BlockDefinitionVisualTypeProvider.java
new file mode 100644
index 00000000000..96925937a3a
--- /dev/null
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/provider/BlockDefinitionVisualTypeProvider.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml.diagram.blockdefinition.provider;
+
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.papyrus.gmf.diagram.common.provider.SysMLVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.clazz.providers.UMLVisualTypeProvider;
+
+/**
+ * Visual type provider for the SysML Block Diagram.
+ */
+public class BlockDefinitionVisualTypeProvider extends SysMLVisualTypeProvider {
+
+ public BlockDefinitionVisualTypeProvider() {
+ super(new CustomGraphicalTypeRegistry(), new UMLVisualTypeProvider());
+ }
+
+ @Override
+ protected IElementType getCustomElementType(String viewType) {
+ return ElementTypes.getElementTypeByID(viewType);
+ }
+
+}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/provider/SysMLVisualTypeProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/provider/SysMLVisualTypeProvider.java
new file mode 100644
index 00000000000..302adcbd319
--- /dev/null
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/provider/SysMLVisualTypeProvider.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.gmf.diagram.common.provider;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.IVisualTypeProvider;
+import org.eclipse.papyrus.sysml.diagram.common.Activator;
+import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes;
+
+/**
+ * Generic visual type provider for SysML diagrams that, for the most part, delegates
+ * to the diagram's specific {@link IGraphicalTypeRegistry} and the {@link IVisualTypeProvider}
+ * of the UML diagram that it extends.
+ */
+public class SysMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ private final IGraphicalTypeRegistry types;
+ private final IVisualTypeProvider uml;
+
+ /**
+ * Initializes me with my delegates.
+ *
+ * @param types
+ * the graphical type registry to which I delegate SysML-specific queries
+ * @param uml
+ * the visual type provider of the UML diagram that the SysML diagram extends
+ */
+ protected SysMLVisualTypeProvider(IGraphicalTypeRegistry types, IVisualTypeProvider uml) {
+ super();
+
+ this.types = types;
+ this.uml = uml;
+ }
+
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = getCustomElementType(viewType);
+
+ if ((result == null) && (viewType != null)) {
+ // Look for a standard SysML element type
+ for (Field field : SysMLElementTypes.class.getDeclaredFields()) {
+ if (IElementType.class.isAssignableFrom(field.getType()) && Modifier.isStatic(field.getModifiers()) && Modifier.isPublic(field.getModifiers())) {
+ try {
+ IElementType candidate = (IElementType) field.get(null);
+ if ((candidate instanceof IHintedType) && viewType.equals(((IHintedType) candidate).getSemanticHint())) {
+ result = candidate;
+ break;
+ }
+ } catch (Exception e) {
+ // Reflection problems on this class shouldn't happen
+ Activator.log.error(e);
+ }
+ }
+ }
+
+ if (result == null) {
+ // Still null? Try the UML diagram
+ result = uml.getElementType(diagram, viewType);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Overridden by subclasses in diagrams that provide custom SysML visual element types
+ * in their {@code ElementTypes} enumerations.
+ *
+ * @param viewType
+ * the view type to look up
+ * @return the corresponding element type, or {@code null} if none
+ */
+ protected IElementType getCustomElementType(String viewType) {
+ return null;
+ }
+
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ String result = types.getNodeGraphicalType(element, parentView.getType());
+
+ if (result == null) {
+ // Try the UML diagram
+ result = uml.getNodeType(parentView, element);
+ }
+
+ return result;
+ }
+
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ String result = types.getEdgeGraphicalType(element);
+
+ if (result == null) {
+ // Try the UML diagram
+ result = uml.getLinkType(diagram, element);
+ }
+
+ return result;
+ }
+
+}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml
index eb4b55c379f..bf649166ca2 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml
@@ -564,4 +564,12 @@
</diagramReconciler>
</extension>
+ <extension
+ point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <visualTypeProvider
+ class="org.eclipse.papyrus.sysml.diagram.internalblock.provider.InternalBlockVisualTypeProvider"
+ diagramType="InternalBlock">
+ </visualTypeProvider>
+ </extension>
+
</plugin>
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/provider/InternalBlockVisualTypeProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/provider/InternalBlockVisualTypeProvider.java
new file mode 100644
index 00000000000..a4bbbbd463e
--- /dev/null
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/provider/InternalBlockVisualTypeProvider.java
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml.diagram.internalblock.provider;
+
+import org.eclipse.papyrus.gmf.diagram.common.provider.SysMLVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.composite.providers.UMLVisualTypeProvider;
+
+/**
+ * Visual type provider for the SysML Internal Block Diagram.
+ */
+public class InternalBlockVisualTypeProvider extends SysMLVisualTypeProvider {
+
+ public InternalBlockVisualTypeProvider() {
+ super(new CustomGraphicalTypeRegistry(), new UMLVisualTypeProvider());
+ }
+
+}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml
index 36328070125..210861cce0d 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml
@@ -705,4 +705,12 @@
</diagramMappings>
</extension>
+
+ <extension
+ point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <visualTypeProvider
+ class="org.eclipse.papyrus.sysml.diagram.parametric.provider.ParametricVisualTypeProvider"
+ diagramType="Parametric">
+ </visualTypeProvider>
+ </extension>
</plugin>
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/provider/ParametricVisualTypeProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/provider/ParametricVisualTypeProvider.java
new file mode 100644
index 00000000000..4a48162d265
--- /dev/null
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/provider/ParametricVisualTypeProvider.java
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml.diagram.parametric.provider;
+
+import org.eclipse.papyrus.gmf.diagram.common.provider.SysMLVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.composite.providers.UMLVisualTypeProvider;
+
+/**
+ * Visual type provider for the SysML Parametric Diagram.
+ */
+public class ParametricVisualTypeProvider extends SysMLVisualTypeProvider {
+
+ public ParametricVisualTypeProvider() {
+ super(new CustomGraphicalTypeRegistry(), new UMLVisualTypeProvider());
+ }
+
+}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml
index 898a0d726c6..f29f115ab42 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml
@@ -909,4 +909,12 @@
<!-- // End of user code
-->
+
+ <extension
+ point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <visualTypeProvider
+ class="org.eclipse.papyrus.sysml.diagram.requirement.provider.RequirementVisualTypeProvider"
+ diagramType="RequirementDiagram">
+ </visualTypeProvider>
+ </extension>
</plugin>
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src-gen/org/eclipse/papyrus/sysml/diagram/requirement/provider/IGraphicalTypeRegistry.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src-gen/org/eclipse/papyrus/sysml/diagram/requirement/provider/IGraphicalTypeRegistry.java
index 9ba927778d5..24e23ee4f21 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src-gen/org/eclipse/papyrus/sysml/diagram/requirement/provider/IGraphicalTypeRegistry.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src-gen/org/eclipse/papyrus/sysml/diagram/requirement/provider/IGraphicalTypeRegistry.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
+ * Copyright (c) 2013, 2015 CEA LIST, Christian W. Damus, and others.
*
*
* All rights reserved. This program and the accompanying materials
@@ -10,6 +10,7 @@
* Contributors:
* CEA LIST- Initial API and implementation
* Nizar GUEDIDI (CEA LIST)- modification
+ * Christian W. Damus - bug 477384
*
****************************************************************************/
package org.eclipse.papyrus.sysml.diagram.requirement.provider;
@@ -20,8 +21,11 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
/**
* This interface provides an API for accessing the local graphical type registry.
* This registry provides a graphical type for existing model elements.
+ *
+ * @deprecated Use the {@link org.eclipse.papyrus.gmf.diagram.common.provider.IGraphicalTypeRegistry} type, instead.
*/
-public interface IGraphicalTypeRegistry {
+@Deprecated
+public interface IGraphicalTypeRegistry extends org.eclipse.papyrus.gmf.diagram.common.provider.IGraphicalTypeRegistry {
/** Constant for undefined graphical type */
public static final String UNDEFINED_TYPE = "undefined_type";
@@ -33,6 +37,7 @@ public interface IGraphicalTypeRegistry {
* the domain element.
* @return the domain element graphical type.
*/
+ @Override
public String getEdgeGraphicalType(EObject domainElement);
/**
@@ -44,6 +49,7 @@ public interface IGraphicalTypeRegistry {
* the type of the graphical owner of the domain element.
* @return the domain element graphical type.
*/
+ @Override
public String getEdgeGraphicalType(IElementType elementType);
/**
@@ -55,6 +61,7 @@ public interface IGraphicalTypeRegistry {
* the type of the graphical owner of the domain element.
* @return the domain element graphical type.
*/
+ @Override
public String getEdgeGraphicalType(String proposedType);
/**
@@ -66,6 +73,7 @@ public interface IGraphicalTypeRegistry {
* the type of the graphical owner of the domain element.
* @return the domain element graphical type.
*/
+ @Override
public String getNodeGraphicalType(EObject domainElement, String containerType);
/**
@@ -77,6 +85,7 @@ public interface IGraphicalTypeRegistry {
* the type of the graphical owner of the domain element.
* @return the domain element graphical type.
*/
+ @Override
public String getNodeGraphicalType(IElementType elementType, String containerType);
/**
@@ -88,6 +97,7 @@ public interface IGraphicalTypeRegistry {
* the type of the graphical owner of the domain element.
* @return the domain element graphical type.
*/
+ @Override
public String getNodeGraphicalType(String proposedType, String containerType);
/**
@@ -97,6 +107,7 @@ public interface IGraphicalTypeRegistry {
* the type to test
* @return true if the type is known
*/
+ @Override
public boolean isKnownEdgeType(String type);
/**
@@ -106,6 +117,7 @@ public interface IGraphicalTypeRegistry {
* the type to test
* @return true if the type is known
*/
+ @Override
public boolean isKnownNodeType(String type);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/RequirementVisualTypeProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/RequirementVisualTypeProvider.java
new file mode 100644
index 00000000000..55025bfdc28
--- /dev/null
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/RequirementVisualTypeProvider.java
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml.diagram.requirement.provider;
+
+import org.eclipse.papyrus.gmf.diagram.common.provider.SysMLVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.clazz.providers.UMLVisualTypeProvider;
+
+/**
+ * Visual type provider for the SysML Requirement Diagram.
+ */
+public class RequirementVisualTypeProvider extends SysMLVisualTypeProvider {
+
+ public RequirementVisualTypeProvider() {
+ super(new GraphicalTypeRegistry(), new UMLVisualTypeProvider());
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.classpath
index b3d4acc64d3..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/META-INF/MANIFEST.MF
index 7b65bfe616c..6bc0c7c29e3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/META-INF/MANIFEST.MF
@@ -1,6 +1,5 @@
Manifest-Version: 1.0
Export-Package: org.eclipse.papyrus.uml.diagram.activity,
- org.eclipse.papyrus.uml.diagram.activity.canonical,
org.eclipse.papyrus.uml.diagram.activity.commands,
org.eclipse.papyrus.uml.diagram.activity.draw2d,
org.eclipse.papyrus.uml.diagram.activity.edit.actions,
@@ -32,7 +31,7 @@ Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.core.expressions,
org.eclipse.ui.navigator,
org.eclipse.ui.navigator.resources,
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/canonical/ActivityCanonicalCreationTargetStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/canonical/ActivityCanonicalCreationTargetStrategy.java
deleted file mode 100644
index b4b32166aea..00000000000
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/canonical/ActivityCanonicalCreationTargetStrategy.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2015 Christian W. Damus and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Christian W. Damus - Initial API and implementation
- *
- *****************************************************************************/
-
-package org.eclipse.papyrus.uml.diagram.activity.canonical;
-
-import java.util.Map;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IResizableCompartmentEditPart;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityActivityContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityCNContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityEditPartCN;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityPartitionActivityPartitionContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityPartitionEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ConditionalNodeEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ConditionalNodeStructuredActivityNodeContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionRegionEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionRegionStructuredActivityNodeContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.InterruptibleActivityRegionEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.InterruptibleActivityRegionInterruptibleActivityRegionContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.LoopNodeEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.LoopNodeStructuredActivityNodeContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.SequenceNodeEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.SequenceNodeStructuredActivityNodeContentCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.StructuredActivityNodeEditPart;
-import org.eclipse.papyrus.uml.diagram.activity.edit.parts.StructuredActivityNodeStructuredActivityNodeContentCompartmentEditPart;
-import org.eclipse.uml2.uml.ActivityEdge;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- * Target edit part strategy for canonical view creation in activity diagrams.
- */
-public class ActivityCanonicalCreationTargetStrategy implements ICreationTargetStrategy {
- private static final Map<String, String> CONTENT_COMPARTMENT_VISUAL_IDS = ImmutableMap.<String, String> builder()
- .put(Integer.toString(ActivityEditPart.VISUAL_ID), Integer.toString(ActivityActivityContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(ActivityEditPartCN.VISUAL_ID), Integer.toString(ActivityCNContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(ConditionalNodeEditPart.VISUAL_ID), Integer.toString(ConditionalNodeStructuredActivityNodeContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(ExpansionRegionEditPart.VISUAL_ID), Integer.toString(ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(LoopNodeEditPart.VISUAL_ID), Integer.toString(LoopNodeStructuredActivityNodeContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(SequenceNodeEditPart.VISUAL_ID), Integer.toString(SequenceNodeStructuredActivityNodeContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(StructuredActivityNodeEditPart.VISUAL_ID), Integer.toString(StructuredActivityNodeStructuredActivityNodeContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(ActivityPartitionEditPart.VISUAL_ID), Integer.toString(ActivityPartitionActivityPartitionContentCompartmentEditPart.VISUAL_ID))
- .put(Integer.toString(InterruptibleActivityRegionEditPart.VISUAL_ID), Integer.toString(InterruptibleActivityRegionInterruptibleActivityRegionContentCompartmentEditPart.VISUAL_ID)).build();
-
- public ActivityCanonicalCreationTargetStrategy() {
- super();
- }
-
- @Override
- public EditPart getTargetEditPart(EditPart host, EObject element) {
- EditPart result = null;
-
- // We only need to worry about activity edges (for now)
- if (element instanceof ActivityEdge) {
- // Get the nearest containing shape compartment. It can create the edge view
- for (EditPart candidate = host; (result == null) && (candidate != null); candidate = candidate.getParent()) {
- if (candidate instanceof IResizableCompartmentEditPart) {
- result = candidate;
- } else {
- // Could be a border-item (e.g., pin) on an activity-group or activity
- View view = (View) host.getModel();
- String visualID = (view == null) ? null : view.getType();
- String compartmentID = CONTENT_COMPARTMENT_VISUAL_IDS.get(visualID);
- if (compartmentID != null) {
- // Only graphical edit parts are in the map, so this cast is safe
- result = ((IGraphicalEditPart) host).getChildBySemanticHint(compartmentID);
- }
- }
- }
- }
-
- return result;
- }
-}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/plugin.xml
index 4330313e621..4a1039538ec 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/plugin.xml
@@ -3324,25 +3324,6 @@ self.structuralFeature.oclAsType(Property).opposite.type = self.object.type]]>
path="model/activityDiagram.elementtypesconfigurations">
</elementTypeSet>
</extension>
-<extension
- point="org.eclipse.papyrus.infra.gmfdiag.canonical.strategies">
- <creationTargetStrategy
- class="org.eclipse.papyrus.uml.diagram.activity.canonical.ActivityCanonicalCreationTargetStrategy">
- <enablement>
- <with
- variable="element">
- <or>
- <instanceof
- value="org.eclipse.uml2.uml.Pin">
- </instanceof>
- <instanceof
- value="org.eclipse.uml2.uml.ActivityGroup">
- </instanceof>
- </or>
- </with>
- </enablement>
- </creationTargetStrategy>
-</extension>
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes" id="element-types">
<?gmfgen generated="false"?>
</extension>
@@ -3366,6 +3347,14 @@ self.structuralFeature.oclAsType(Property).opposite.type = self.object.type]]>
target="1.2.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.activity.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLActivityDiagram">
+ </visualTypeProvider>
+ </extension>
+
<extension
point="org.eclipse.papyrus.infra.hyperlink.hyperlinkContributor">
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..8d324f5d062
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.activity.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.activity.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.classpath
index b6ac7ba9f8f..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.settings/org.eclipse.jdt.core.prefs
index 9ca8e68231b..62a08f4494d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/META-INF/MANIFEST.MF
index f1c9e8334a9..48c95a5386d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/META-INF/MANIFEST.MF
@@ -26,7 +26,7 @@ Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.core.expressions,
org.eclipse.ui.navigator,
org.eclipse.ui.navigator.resources,
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/plugin.xml
index 9a3522329a8..96e096471d4 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/plugin.xml
@@ -1764,6 +1764,13 @@
<advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
</binding>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.clazz.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLClassDiagram">
+ </visualTypeProvider>
+ </extension>
<extension
point="org.eclipse.papyrus.infra.hyperlink.hyperlinkContributor">
<contributor
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..6c0d47aa678
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.clazz.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.clazz.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.classpath
index 8a8f1668cdc..eca7bdba8f0 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/META-INF/MANIFEST.MF
index df8c33781e8..04a0f338f60 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/META-INF/MANIFEST.MF
@@ -49,8 +49,7 @@ Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
-Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
org.eclipse.gmf.runtime.diagram.ui.resources.editor,
org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="1.1.0",
@@ -115,7 +114,6 @@ Require-Bundle: org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
org.eclipse.papyrus.infra.services.viewersearch;bundle-version="1.2.0",
org.eclipse.papyrus.infra.hyperlink;bundle-version="1.2.0"
Bundle-Vendor: %providerName
-Ant-Version: Apache Ant 1.7.0
Bundle-Version: 1.2.0.qualifier
Eclipse-BuddyPolicy: dependent
Bundle-Activator: org.eclipse.papyrus.uml.diagram.common.Activator
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/canonical/DefaultUMLSemanticChildrenStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/canonical/DefaultUMLSemanticChildrenStrategy.java
index eda99cbdc03..9c19d60f67f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/canonical/DefaultUMLSemanticChildrenStrategy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/canonical/DefaultUMLSemanticChildrenStrategy.java
@@ -11,6 +11,7 @@
* Christian W. Damus - bug 433206
* Christian W. Damus - bug 473148
* Christian W. Damus - bug 478558
+ * Christian W. Damus - bug 477384
*
*****************************************************************************/
@@ -32,15 +33,22 @@ import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ISemanticChildrenStr
import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.EdgeWithNoSemanticElementRepresentationImpl;
import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
import org.eclipse.papyrus.infra.tools.util.TypeUtils;
+import org.eclipse.uml2.uml.ActivityEdge;
import org.eclipse.uml2.uml.ActivityNode;
+import org.eclipse.uml2.uml.Association;
import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.Connector;
import org.eclipse.uml2.uml.ConnectorEnd;
import org.eclipse.uml2.uml.Constraint;
+import org.eclipse.uml2.uml.DirectedRelationship;
import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Message;
import org.eclipse.uml2.uml.MessageEnd;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Relationship;
+import org.eclipse.uml2.uml.Transition;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.Vertex;
import org.eclipse.uml2.uml.util.UMLSwitch;
@@ -159,10 +167,25 @@ public class DefaultUMLSemanticChildrenStrategy implements ISemanticChildrenStra
return result;
}
+ @Override
+ public Object getSource(EObject connectionElement) {
+ return ConnectionSourceSwitch.INSTANCE.doSwitch(connectionElement);
+ }
+
+ @Override
+ public Object getTarget(EObject connectionElement) {
+ return ConnectionTargetSwitch.INSTANCE.doSwitch(connectionElement);
+ }
+
//
// Nested types
//
+ /**
+ * A computation of the elements associated with some element
+ * that are not {@link Relationship}s but are visualized as
+ * connections in a manner similar to {@link Relationship}s.
+ */
private class ConnectionsSwitch extends UMLSwitch<List<EObject>> {
private final View visualContext;
private final List<EObject> result;
@@ -231,6 +254,11 @@ public class DefaultUMLSemanticChildrenStrategy implements ISemanticChildrenStra
}
}
+ /**
+ * An algorithm that removes relationships or relationship-like elements
+ * from an element's semantic connections that it is not appropriate to
+ * try to visualize in a given diagram context.
+ */
private class CleanRelationshipsSwitch extends UMLSwitch<List<EObject>> {
@SuppressWarnings("unused") // It isn't used, *yet*
private final View visualContext;
@@ -259,4 +287,152 @@ public class DefaultUMLSemanticChildrenStrategy implements ISemanticChildrenStra
}
}
+ /**
+ * A computation of the source element of a relationship or
+ * relationship-like element that is to be visualized.
+ */
+ private static class ConnectionSourceSwitch extends UMLSwitch<Object> {
+ static final ConnectionSourceSwitch INSTANCE = new ConnectionSourceSwitch();
+
+ @Override
+ public Object caseDirectedRelationship(DirectedRelationship object) {
+ List<Element> sources = object.getSources();
+ return sources.isEmpty() ? null : sources.get(0);
+ }
+
+ @Override
+ public Object caseRelationship(Relationship object) {
+ List<Element> related = object.getRelatedElements();
+ return related.isEmpty() ? null : related.get(0);
+ }
+
+ @Override
+ public Object caseAssociation(Association object) {
+ Property sourceEnd = getSourceEnd(object);
+
+ // The classifier at the source end is the other end's type (the
+ // source end may not be owned by the source type)
+ return (sourceEnd == null) ? null : sourceEnd.getOtherEnd().getType();
+ }
+
+ static Property getSourceEnd(Association association) {
+
+ Property result;
+
+ List<Property> ends = association.getMemberEnds();
+ if (ends.size() != 2) {
+ result = null;
+ } else {
+ Property end1 = ends.get(0);
+ Property end2 = ends.get(1);
+
+ // The first end that is classifier-owned is the "source"
+ if (end1.getOwningAssociation() == null) {
+ result = end1;
+ } else if (end2.getOwningAssociation() == null) {
+ result = end2;
+ } else {
+ // Otherwise, the first end that is navigable is the "source"
+ if (association.getNavigableOwnedEnds().contains(end1)) {
+ result = end1;
+ } else if (association.getNavigableOwnedEnds().contains(end2)) {
+ result = end2;
+ } else {
+ // Otherwise, it's just the first end
+ result = end1;
+ }
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ public Object caseConnector(Connector object) {
+ Object result = null;
+
+ List<ConnectorEnd> ends = object.getEnds();
+ ConnectorEnd source = ends.isEmpty() ? null : ends.get(0);
+ if (source != null) {
+ result = (source.getPartWithPort() != null)
+ ? ISemanticChildrenStrategy.createVisualStack(source.getPartWithPort(), source.getRole())
+ : source.getRole();
+ }
+
+ return result;
+ }
+
+ @Override
+ public Object caseTransition(Transition object) {
+ return object.getSource();
+ }
+
+ @Override
+ public Object caseActivityEdge(ActivityEdge object) {
+ return object.getSource();
+ }
+
+ @Override
+ public Object caseMessage(Message object) {
+ return object.getSendEvent();
+ }
+ }
+
+ /**
+ * A computation of the target element of a relationship or
+ * relationship-like element that is to be visualized.
+ */
+ private static class ConnectionTargetSwitch extends UMLSwitch<Object> {
+ static final ConnectionTargetSwitch INSTANCE = new ConnectionTargetSwitch();
+
+ @Override
+ public Object caseDirectedRelationship(DirectedRelationship object) {
+ List<Element> targets = object.getTargets();
+ return targets.isEmpty() ? null : targets.get(0);
+ }
+
+ @Override
+ public Object caseRelationship(Relationship object) {
+ List<Element> related = object.getRelatedElements();
+ return (related.size() < 2) ? null : related.get(1);
+ }
+
+ @Override
+ public Object caseAssociation(Association object) {
+ Property sourceEnd = ConnectionSourceSwitch.getSourceEnd(object);
+
+ // The target type is the type of the source end
+ return (sourceEnd == null) ? null : sourceEnd.getType();
+ }
+
+ @Override
+ public Object caseConnector(Connector object) {
+ Object result = null;
+
+ List<ConnectorEnd> ends = object.getEnds();
+ ConnectorEnd source = ends.isEmpty() ? null : ends.get(1);
+ if (source != null) {
+ result = (source.getPartWithPort() != null)
+ ? ISemanticChildrenStrategy.createVisualStack(source.getPartWithPort(), source.getRole())
+ : source.getRole();
+ }
+
+ return result;
+ }
+
+ @Override
+ public Object caseTransition(Transition object) {
+ return object.getTarget();
+ }
+
+ @Override
+ public Object caseActivityEdge(ActivityEdge object) {
+ return object.getTarget();
+ }
+
+ @Override
+ public Object caseMessage(Message object) {
+ return object.getReceiveEvent();
+ }
+ }
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editpolicies/CommonDiagramDragDropEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editpolicies/CommonDiagramDragDropEditPolicy.java
index cb745cd9cef..64d23fab1a7 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editpolicies/CommonDiagramDragDropEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editpolicies/CommonDiagramDragDropEditPolicy.java
@@ -14,6 +14,7 @@
* Christian W. Damus (CEA) - bug 430726
* Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - bug 450341
* Christian W. Damus - bug 450944
+ * Christian W. Damus - bug 477384
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.common.editpolicies;
@@ -70,9 +71,11 @@ import org.eclipse.papyrus.infra.gmfdiag.common.adapter.SemanticAdapter;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.CommonDeferredCreateConnectionViewCommand;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.CreateViewCommand;
import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.AbstractDiagramDragDropEditPolicy;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.VisualTypeService;
import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
import org.eclipse.papyrus.infra.gmfdiag.common.utils.ViewServiceUtil;
import org.eclipse.papyrus.infra.gmfdiag.dnd.policy.CustomizableDropEditPolicy;
+import org.eclipse.papyrus.infra.tools.util.TypeUtils;
import org.eclipse.papyrus.uml.diagram.common.commands.DeferredCreateCommand;
import org.eclipse.papyrus.uml.diagram.common.helper.Element2IAdaptableRegistryHelper;
import org.eclipse.papyrus.uml.diagram.common.helper.ILinkMappingHelper;
@@ -123,13 +126,41 @@ public abstract class CommonDiagramDragDropEditPolicy extends AbstractDiagramDra
*
* @return the uML element type
*/
- public abstract IElementType getUMLElementType(int elementID);
+ public IElementType getUMLElementType(int elementID) {
+ return VisualTypeService.getInstance().getElementType(getContextDiagram(), Integer.toString(elementID));
+ }
- public abstract int getNodeVisualID(View containerView, EObject domainElement);
+ public int getNodeVisualID(View containerView, EObject domainElement) {
+ String result = VisualTypeService.getInstance().getNodeType(containerView, domainElement);
- public abstract int getLinkWithClassVisualID(EObject domainElement);
+ try {
+ return (result == null) ? -1 : Integer.parseInt(result);
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ return -1;
+ }
+ }
+ public int getLinkWithClassVisualID(EObject domainElement) {
+ String result = VisualTypeService.getInstance().getLinkType(getContextDiagram(), domainElement);
+
+ try {
+ return (result == null) ? -1 : Integer.parseInt(result);
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ return -1;
+ }
+ }
+ /**
+ * Gets the notational diagram in which my host edit part is rendering a view.
+ *
+ * @return the contextual diagram
+ */
+ protected Diagram getContextDiagram() {
+ View view = TypeUtils.as(getHost().getModel(), View.class);
+ return (view == null) ? null : view.getDiagram();
+ }
/**
* Gets composite command adapters
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.classpath
index b2164fd1b7f..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.classpath
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="custom-src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <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/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.settings/org.eclipse.jdt.core.prefs
index 21b52232844..ee2c66aeda8 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -73,7 +73,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/META-INF/MANIFEST.MF
index c953ed1dae3..d4b7f323224 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/META-INF/MANIFEST.MF
@@ -1,84 +1,83 @@
-Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.uml.diagram.communication,
- org.eclipse.papyrus.uml.diagram.communication.custom.commands,
- org.eclipse.papyrus.uml.diagram.communication.custom.edit.parts,
- org.eclipse.papyrus.uml.diagram.communication.custom.edit.policies,
- org.eclipse.papyrus.uml.diagram.communication.custom.factory,
- org.eclipse.papyrus.uml.diagram.communication.custom.figures,
- org.eclipse.papyrus.uml.diagram.communication.custom.helper,
- org.eclipse.papyrus.uml.diagram.communication.custom.parser,
- org.eclipse.papyrus.uml.diagram.communication.custom.policies.itemsemantic,
- org.eclipse.papyrus.uml.diagram.communication.custom.providers,
- org.eclipse.papyrus.uml.diagram.communication.edit.commands,
- org.eclipse.papyrus.uml.diagram.communication.edit.helpers,
- org.eclipse.papyrus.uml.diagram.communication.edit.parts,
- org.eclipse.papyrus.uml.diagram.communication.edit.policies,
- org.eclipse.papyrus.uml.diagram.communication.expressions,
- org.eclipse.papyrus.uml.diagram.communication.navigator,
- org.eclipse.papyrus.uml.diagram.communication.parsers,
- org.eclipse.papyrus.uml.diagram.communication.part,
- org.eclipse.papyrus.uml.diagram.communication.preferences,
- org.eclipse.papyrus.uml.diagram.communication.providers
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.gmf.runtime.diagram.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
- org.eclipse.ocl.ecore,
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
- org.eclipse.uml2.uml.resources;bundle-version="3.0.0",
- org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
- org.eclipse.ui.navigator.resources;bundle-version="3.4.400",
- org.eclipse.ui.navigator;bundle-version="3.5.200",
- org.eclipse.core.expressions;bundle-version="3.4.400",
- org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
- org.eclipse.ui.ide;bundle-version="3.8.0",
- org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
- org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,
- 4.0.0)",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
- org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="1.7.0",
- org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.jface,
- org.eclipse.ui.views,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.emf.edit.ui,
- org.eclipse.gmf.runtime.emf.core,
- org.eclipse.gmf.runtime.emf.commands.core,
- org.eclipse.gmf.runtime.emf.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui,
- org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
- org.eclipse.gmf.runtime.diagram.ui.providers.ide,
- org.eclipse.gmf.runtime.diagram.ui.render,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor,
- org.eclipse.draw2d;visibility:=reexport,
- org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
- org.eclipse.uml2.uml;visibility:=reexport,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.edit;visibility:=reexport,
- org.eclipse.emf.validation;visibility:=reexport,
- org.eclipse.gef,
- org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
- org.eclipse.core.databinding.observable,
- org.eclipse.papyrus.infra.gmfdiag.canonical;bundle-version="1.2.0",
- com.google.guava;bundle-version="11.0.0"
-Bundle-Vendor: %providerName
-Eclipse-LazyStart: true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Activator: org.eclipse.papyrus.uml.diagram.communication.part.UMLDiagramEditorPlugin
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.communication; singleton:=true
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.uml.diagram.communication,
+ org.eclipse.papyrus.uml.diagram.communication.custom.commands,
+ org.eclipse.papyrus.uml.diagram.communication.custom.edit.parts,
+ org.eclipse.papyrus.uml.diagram.communication.custom.edit.policies,
+ org.eclipse.papyrus.uml.diagram.communication.custom.factory,
+ org.eclipse.papyrus.uml.diagram.communication.custom.figures,
+ org.eclipse.papyrus.uml.diagram.communication.custom.helper,
+ org.eclipse.papyrus.uml.diagram.communication.custom.parser,
+ org.eclipse.papyrus.uml.diagram.communication.custom.policies.itemsemantic,
+ org.eclipse.papyrus.uml.diagram.communication.custom.providers,
+ org.eclipse.papyrus.uml.diagram.communication.edit.commands,
+ org.eclipse.papyrus.uml.diagram.communication.edit.helpers,
+ org.eclipse.papyrus.uml.diagram.communication.edit.parts,
+ org.eclipse.papyrus.uml.diagram.communication.edit.policies,
+ org.eclipse.papyrus.uml.diagram.communication.expressions,
+ org.eclipse.papyrus.uml.diagram.communication.navigator,
+ org.eclipse.papyrus.uml.diagram.communication.parsers,
+ org.eclipse.papyrus.uml.diagram.communication.part,
+ org.eclipse.papyrus.uml.diagram.communication.preferences,
+ org.eclipse.papyrus.uml.diagram.communication.providers
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.gmf.runtime.diagram.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
+ org.eclipse.ocl.ecore,
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
+ org.eclipse.uml2.uml.resources;bundle-version="3.0.0",
+ org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
+ org.eclipse.ui.navigator.resources;bundle-version="3.4.400",
+ org.eclipse.ui.navigator;bundle-version="3.5.200",
+ org.eclipse.core.expressions;bundle-version="3.4.400",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
+ org.eclipse.ui.ide;bundle-version="3.8.0",
+ org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="1.7.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jface,
+ org.eclipse.ui.views,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.gmf.runtime.emf.core,
+ org.eclipse.gmf.runtime.emf.commands.core,
+ org.eclipse.gmf.runtime.emf.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,
+ org.eclipse.gmf.runtime.diagram.ui.render,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor,
+ org.eclipse.draw2d;visibility:=reexport,
+ org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.emf.validation;visibility:=reexport,
+ org.eclipse.gef,
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.core.databinding.observable,
+ org.eclipse.papyrus.infra.gmfdiag.canonical;bundle-version="1.2.0",
+ com.google.guava;bundle-version="11.0.0"
+Bundle-Vendor: %providerName
+Eclipse-LazyStart: true
+Bundle-Version: 1.2.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.communication.part.UMLDiagramEditorPlugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.communication; singleton:=true
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/CommunicationCanonicalCreationTargetStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/CommunicationCanonicalCreationTargetStrategy.java
deleted file mode 100644
index 031bd554496..00000000000
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/CommunicationCanonicalCreationTargetStrategy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2015 Christian W. Damus and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Christian W. Damus - Initial API and implementation
- *
- *****************************************************************************/
-
-package org.eclipse.papyrus.uml.diagram.communication.custom.canonical;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IResizableCompartmentEditPart;
-import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy;
-import org.eclipse.uml2.uml.Message;
-
-/**
- * Target edit part strategy for canonical view creation in communication diagrams.
- */
-public class CommunicationCanonicalCreationTargetStrategy implements ICreationTargetStrategy {
-
- public CommunicationCanonicalCreationTargetStrategy() {
- super();
- }
-
- public EditPart getTargetEditPart(EditPart host, EObject element) {
- EditPart result = null;
-
- if (element instanceof Message) {
- // Get the nearest containing shape compartment. It can create the edge view
- for (EditPart candidate = host; (result == null) && (candidate != null); candidate = candidate.getParent()) {
- if (candidate instanceof IResizableCompartmentEditPart) {
- result = candidate;
- }
- }
- }
-
- return result;
- }
-}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/LifelineSemanticChildrenStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/LifelineSemanticChildrenStrategy.java
index e86fac896cd..cc793ab9910 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/LifelineSemanticChildrenStrategy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/custom-src/org/eclipse/papyrus/uml/diagram/communication/custom/canonical/LifelineSemanticChildrenStrategy.java
@@ -22,7 +22,10 @@ import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.common.canonical.DefaultUMLSemanticChildrenStrategy;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Lifeline;
+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 com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
@@ -71,4 +74,62 @@ public class LifelineSemanticChildrenStrategy extends DefaultUMLSemanticChildren
return result;
}
+
+ @Override
+ public Object getSource(EObject connectionElement) {
+ Object result;
+
+ if (connectionElement instanceof Message) {
+ MessageEnd end = ((Message) connectionElement).getSendEvent();
+ result = end;
+
+ // But, in this diagram, messages connect lifelines, not message-ends
+ Lifeline covered = getCovered(end);
+ if (covered != null) {
+ result = covered;
+ }
+ } else {
+ result = super.getSource(connectionElement);
+ }
+
+ return result;
+ }
+
+ /**
+ * If a message end is a message occurrence specification (not a gate), get the lifeline
+ * that it covers.
+ *
+ * @param messageEnd
+ * a message end
+ * @return its covered lifeline, if any
+ */
+ protected Lifeline getCovered(MessageEnd messageEnd) {
+ Lifeline result = null;
+
+ if (messageEnd instanceof OccurrenceSpecification) {
+ result = ((MessageOccurrenceSpecification) messageEnd).getCovered();
+ }
+
+ return result;
+ }
+
+ @Override
+ public Object getTarget(EObject connectionElement) {
+ Object result;
+
+ if (connectionElement instanceof Message) {
+ MessageEnd end = ((Message) connectionElement).getReceiveEvent();
+ result = end;
+
+ // But, in this diagram, messages connect lifelines, not message-ends
+ Lifeline covered = getCovered(end);
+ if (covered != null) {
+ result = covered;
+ }
+ } else {
+ result = super.getTarget(connectionElement);
+ }
+
+ return result;
+ }
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/plugin.xml
index a8b76c69078..b2a85e24def 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/plugin.xml
@@ -733,12 +733,6 @@
editPart="org.eclipse.papyrus.uml.diagram.communication.edit.parts.LifelineEditPartCN"
class="org.eclipse.papyrus.uml.diagram.communication.custom.canonical.LifelineSemanticChildrenStrategy">
</semanticChildrenStrategy>
- <creationTargetStrategy
- class="org.eclipse.papyrus.uml.diagram.communication.custom.canonical.CommunicationCanonicalCreationTargetStrategy">
- <enablement>
- <instanceof value="org.eclipse.papyrus.uml.diagram.communication.edit.parts.LifelineEditPartCN"/>
- </enablement>
- </creationTargetStrategy>
<visualChildrenStrategy
editPart="org.eclipse.papyrus.uml.diagram.communication.edit.parts.LifelineEditPartCN"
class="org.eclipse.papyrus.uml.diagram.communication.custom.canonical.LifelineVisualChildrenStrategy">
@@ -761,6 +755,14 @@
target="1.2.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.communication.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLCommunicationDiagram">
+ </visualTypeProvider>
+ </extension>
+
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/src/org/eclipse/papyrus/uml/diagram/communication/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/src/org/eclipse/papyrus/uml/diagram/communication/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..ccd1a01690c
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.communication/src/org/eclipse/papyrus/uml/diagram/communication/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.communication.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.communication.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.classpath
index a67e3af33e4..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.classpath
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="custom-src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <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/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.settings/org.eclipse.jdt.core.prefs
index f08be2b06c4..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/META-INF/MANIFEST.MF
index 6148d115420..0896aadcbf3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/META-INF/MANIFEST.MF
@@ -1,74 +1,73 @@
-Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.uml.diagram.component,
- org.eclipse.papyrus.uml.diagram.component.custom.edit.helpers,
- org.eclipse.papyrus.uml.diagram.component.edit.parts,
- org.eclipse.papyrus.uml.diagram.component.part,
- org.eclipse.papyrus.uml.diagram.component.providers
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.jface,
- org.eclipse.ui.navigator.resources,
- org.eclipse.gmf.runtime.emf.core,
- org.eclipse.gmf.runtime.emf.commands.core,
- org.eclipse.gmf.runtime.emf.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui,
- org.eclipse.gmf.runtime.diagram.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui.providers,
- org.eclipse.gmf.runtime.diagram.ui.providers.ide,
- org.eclipse.gmf.runtime.diagram.ui.render,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
- org.eclipse.gmf.runtime.draw2d.ui,
- org.eclipse.uml2.uml,
- org.eclipse.ocl.ecore,
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
- org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
- org.eclipse.papyrus.editor;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.appearance;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
- org.eclipse.ui.ide;bundle-version="3.8.0",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
- org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.2.0",
- org.eclipse.ui.views,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.emf.edit.ui,
- org.eclipse.draw2d;visibility:=reexport,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.edit;visibility:=reexport,
- org.eclipse.emf.validation;visibility:=reexport,
- org.eclipse.gef,
- org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,
- 4.0.0)",
- org.eclipse.papyrus.uml.diagram.menu;bundle-version="1.2.0",
- org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="1.2.0",
- org.eclipse.papyrus.emf.facet.custom.core;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
- org.eclipse.core.databinding.observable
-Bundle-Vendor: %providerName
-Eclipse-LazyStart: true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Activator: org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.component; singleton:=true
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.uml.diagram.component,
+ org.eclipse.papyrus.uml.diagram.component.custom.edit.helpers,
+ org.eclipse.papyrus.uml.diagram.component.edit.parts,
+ org.eclipse.papyrus.uml.diagram.component.part,
+ org.eclipse.papyrus.uml.diagram.component.providers
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jface,
+ org.eclipse.ui.navigator.resources,
+ org.eclipse.gmf.runtime.emf.core,
+ org.eclipse.gmf.runtime.emf.commands.core,
+ org.eclipse.gmf.runtime.emf.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.gmf.runtime.diagram.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui.providers,
+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,
+ org.eclipse.gmf.runtime.diagram.ui.render,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
+ org.eclipse.gmf.runtime.draw2d.ui,
+ org.eclipse.uml2.uml,
+ org.eclipse.ocl.ecore,
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
+ org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
+ org.eclipse.papyrus.editor;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.appearance;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.ui.ide;bundle-version="3.8.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
+ org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.2.0",
+ org.eclipse.ui.views,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.draw2d;visibility:=reexport,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.emf.validation;visibility:=reexport,
+ org.eclipse.gef,
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.papyrus.uml.diagram.menu;bundle-version="1.2.0",
+ org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="1.2.0",
+ org.eclipse.papyrus.emf.facet.custom.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
+ org.eclipse.core.databinding.observable
+Bundle-Vendor: %providerName
+Eclipse-LazyStart: true
+Bundle-Version: 1.2.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.component.part.UMLDiagramEditorPlugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.component; singleton:=true
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml
index 27fdb1bd219..5d5905255da 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/plugin.xml
@@ -1035,5 +1035,13 @@
target="1.2.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.component.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLComponentDiagram">
+ </visualTypeProvider>
+ </extension>
+
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..2f671b703bf
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/src/org/eclipse/papyrus/uml/diagram/component/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.component.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.component.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.classpath
index b6ac7ba9f8f..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.settings/org.eclipse.jdt.core.prefs
index 9ca8e68231b..62a08f4494d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/META-INF/MANIFEST.MF
index 085eb942ea6..3fe20cb5ab5 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/META-INF/MANIFEST.MF
@@ -30,7 +30,7 @@ Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.emf.ecore,
org.eclipse.core.runtime,
org.eclipse.core.resources,
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/PropertyPartCompartmentSemanticChildrenStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/PropertyPartCompartmentSemanticChildrenStrategy.java
index 558dbb24b05..9f4d723971e 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/PropertyPartCompartmentSemanticChildrenStrategy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/PropertyPartCompartmentSemanticChildrenStrategy.java
@@ -9,6 +9,7 @@
* Contributors:
* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
* Christian W. Damus - bug 433206
+ * Christian W. Damus - bug 477384
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.composite.custom.canonical;
@@ -17,6 +18,7 @@ import java.util.Collection;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.DecorationNode;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.common.canonical.DefaultUMLSemanticChildrenStrategy;
import org.eclipse.uml2.uml.Element;
@@ -44,6 +46,12 @@ public class PropertyPartCompartmentSemanticChildrenStrategy extends DefaultUMLS
if (type != null) {
// Show nested structure of the part as defined by its type
result = super.getCanonicalSemanticChildren(type, viewFromEditPart);
+
+ // But, we only visualize ports on the borders of the parts
+ // (not as nested parts: they're not that kind of attribute)
+ if (viewFromEditPart instanceof DecorationNode) {
+ result.removeIf(Port.class::isInstance);
+ }
}
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/StructuredClassifierSemanticChildrenStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/StructuredClassifierSemanticChildrenStrategy.java
index d0cbdc95a5e..b0027237cbe 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/StructuredClassifierSemanticChildrenStrategy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/custom-src/org/eclipse/papyrus/uml/diagram/composite/custom/canonical/StructuredClassifierSemanticChildrenStrategy.java
@@ -15,8 +15,10 @@ package org.eclipse.papyrus.uml.diagram.composite.custom.canonical;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.DecorationNode;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.common.canonical.DefaultUMLSemanticChildrenStrategy;
+import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.StructuredClassifier;
/**
@@ -41,6 +43,12 @@ public class StructuredClassifierSemanticChildrenStrategy extends DefaultUMLSema
// features (parts, ports, connectors), remembering that connectors are handled by
// the getCanonicalSemanticConnections(...) method for connectable elements
result = new java.util.ArrayList<>(composite.getOwnedAttributes());
+
+ // But, we only visualize ports on the borders of the composite frame and parts
+ // (not as parts: they're not that kind of attribute)
+ if (viewFromEditPart instanceof DecorationNode) {
+ result.removeIf(Port.class::isInstance);
+ }
}
return result;
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/plugin.xml
index 65b59e1b2e0..626bf8f0adb 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/plugin.xml
@@ -1531,6 +1531,13 @@
target="1.1.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.composite.providers.UMLVisualTypeProvider"
+ diagramType="CompositeStructure">
+ </visualTypeProvider>
+</extension>
<extension
point="org.eclipse.papyrus.infra.hyperlink.hyperlinkContributor">
<contributor
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/src/org/eclipse/papyrus/uml/diagram/composite/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/src/org/eclipse/papyrus/uml/diagram/composite/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..01879aa44db
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.composite/src/org/eclipse/papyrus/uml/diagram/composite/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.composite.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.composite.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.classpath
index b3d4acc64d3..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/META-INF/MANIFEST.MF
index a901b8240d1..a24ac1f12ce 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/META-INF/MANIFEST.MF
@@ -23,7 +23,7 @@ Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.gmf.runtime.diagram.ui.properties,
org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
org.eclipse.ocl.ecore,
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/plugin.xml
index 46d748e5d32..d31ca42fc52 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/plugin.xml
@@ -753,5 +753,13 @@
path="model/DeploymentDiagram.elementtypesconfigurations">
</elementTypeSet>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.deployment.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLDeploymentDiagram">
+ </visualTypeProvider>
+ </extension>
+
<!-- optionally, specify keybindings -->
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/src/org/eclipse/papyrus/uml/diagram/deployment/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/src/org/eclipse/papyrus/uml/diagram/deployment/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..9159b597883
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.deployment/src/org/eclipse/papyrus/uml/diagram/deployment/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.deployment.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.deployment.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.classpath
index 0c22b5d7e6d..f0c55498599 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/META-INF/MANIFEST.MF
index 81b50ee9a6d..59e5a8e2927 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/META-INF/MANIFEST.MF
@@ -66,4 +66,4 @@ Bundle-Name: %pluginName
Bundle-Activator: org.eclipse.papyrus.uml.diagram.interactionoverview.Activator
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.interactionoverview;singleton:=true
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/plugin.xml
index 7d9783af0fd..1a74e356fa8 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/plugin.xml
@@ -737,4 +737,11 @@
target="1.1.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.interactionoverview.provider.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLInteractionOverviewDiagram">
+ </visualTypeProvider>
+ </extension>
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/src/org/eclipse/papyrus/uml/diagram/interactionoverview/provider/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/src/org/eclipse/papyrus/uml/diagram/interactionoverview/provider/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..d06164509c3
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.interactionoverview/src/org/eclipse/papyrus/uml/diagram/interactionoverview/provider/UMLVisualTypeProvider.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.interactionoverview.provider;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.interactionoverview.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.classpath
index a5e67340eab..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.classpath
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="custom-src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <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/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.settings/org.eclipse.jdt.core.prefs
index 9ca8e68231b..62a08f4494d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/META-INF/MANIFEST.MF
index aebab91bec8..d7cf8ff8f8d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/META-INF/MANIFEST.MF
@@ -26,7 +26,7 @@ Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
@@ -44,8 +44,7 @@ Require-Bundle: org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.
org.eclipse.ui.ide;bundle-version="3.8.0",
org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
- org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,
- 4.0.0)",
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
org.eclipse.uml2.uml.edit;bundle-version="4.0.100",
org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="1.7.0",
org.eclipse.gmf.runtime.diagram.ui.properties;bundle-version="1.7.0",
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/custom-src/org/eclipse/papyrus/uml/diagram/profile/custom/canonical/ProfileDiagramCreationTargetStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/custom-src/org/eclipse/papyrus/uml/diagram/profile/custom/canonical/ProfileDiagramCreationTargetStrategy.java
deleted file mode 100644
index 75c0c39f34e..00000000000
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/custom-src/org/eclipse/papyrus/uml/diagram/profile/custom/canonical/ProfileDiagramCreationTargetStrategy.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2015 Christian W. Damus and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Christian W. Damus - Initial API and implementation
- *
- *****************************************************************************/
-
-package org.eclipse.papyrus.uml.diagram.profile.custom.canonical;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
-import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy;
-import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
-import org.eclipse.papyrus.uml.tools.utils.UMLUtil;
-import org.eclipse.uml2.uml.Element;
-
-/**
- * Custom strategy for determination of the target edit part for canonical view creation commands in Profile Diagrams.
- */
-public class ProfileDiagramCreationTargetStrategy implements ICreationTargetStrategy {
-
- public ProfileDiagramCreationTargetStrategy() {
- super();
- }
-
- public EditPart getTargetEditPart(EditPart host, EObject element) {
- EditPart result = null;
-
- if (host instanceof GraphicalEditPart) {
- GraphicalEditPart gep = (GraphicalEditPart) host;
-
- // Metaclass extensions and other connections must be dropped onto the containing diagram or package
- if ((element instanceof Element) && UMLUtil.isRelationship((Element) element)) {
- result = DiagramEditPartsUtil.getContainerEditPart(gep);
- }
- }
-
- return result;
- }
-
-}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/plugin.xml
index 686673ac83c..0c8d76ca9da 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/plugin.xml
@@ -1004,43 +1004,13 @@
</with>
</enablement>
</semanticChildrenStrategy>
- <creationTargetStrategy
- class="org.eclipse.papyrus.uml.diagram.profile.custom.canonical.ProfileDiagramCreationTargetStrategy">
- <enablement>
- <with
- variable="editPart">
- <or>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.StereotypeEditPart"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.StereotypeEditPartCN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.ClassEditPart"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.ClassEditPartCN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.EnumerationEditPart"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.EnumerationEditPartCN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.DataTypeEditPart"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.DataTypeEditPartCN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.PrimitiveTypeEditPart"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.PrimitiveTypeEditPartCN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.PackageEditPart"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.PackageEditPartCN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.ModelEditPartTN"/>
- <instanceof
- value="org.eclipse.papyrus.uml.diagram.profile.edit.parts.ModelEditPartCN"/>
- </or>
- </with>
- </enablement>
- </creationTargetStrategy>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.profile.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLProfileDiagram">
+ </visualTypeProvider>
+ </extension>
+
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/src/org/eclipse/papyrus/uml/diagram/profile/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/src/org/eclipse/papyrus/uml/diagram/profile/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..559afa9b4d5
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.profile/src/org/eclipse/papyrus/uml/diagram/profile/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.profile.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.profile.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.classpath
index b3d4acc64d3..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.settings/org.eclipse.jdt.core.prefs
index 410244d65a6..62a08f4494d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/META-INF/MANIFEST.MF
index a4d7ed3d943..869541363f5 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/META-INF/MANIFEST.MF
@@ -1,86 +1,85 @@
-Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.uml.diagram.sequence,
- org.eclipse.papyrus.uml.diagram.sequence.edit.parts,
- org.eclipse.papyrus.uml.diagram.sequence.edit.policies,
- org.eclipse.papyrus.uml.diagram.sequence.figures,
- org.eclipse.papyrus.uml.diagram.sequence.part,
- org.eclipse.papyrus.uml.diagram.sequence.providers,
- org.eclipse.papyrus.uml.diagram.sequence.util
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.eclipse.core.expressions,
- org.eclipse.ui.navigator,
- org.eclipse.ui.navigator.resources,
- org.eclipse.gmf.runtime.diagram.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
- org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
- org.eclipse.ocl.ecore,
- org.junit;bundle-version="4.11.0",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.jface,
- org.eclipse.ui.ide,
- org.eclipse.ui.views,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.emf.edit.ui,
- org.eclipse.gmf.runtime.emf.core,
- org.eclipse.gmf.runtime.emf.commands.core,
- org.eclipse.gmf.runtime.emf.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui,
- org.eclipse.gmf.runtime.diagram.ui.providers,
- org.eclipse.gmf.runtime.diagram.ui.providers.ide,
- org.eclipse.gmf.runtime.diagram.ui.render,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor,
- org.eclipse.draw2d,
- org.eclipse.gmf.runtime.draw2d.ui,
- org.eclipse.uml2.uml,
- org.eclipse.uml2.uml.edit,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.edit,
- org.eclipse.gef,
- org.eclipse.emf.validation,
- org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
- org.eclipse.gmf.runtime.notation,
- org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.appearance;bundle-version="1.2.0",
- org.eclipse.emf.databinding;bundle-version="1.2.0",
- org.eclipse.papyrus.views.properties;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.diagram.stereotype.edition;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
- org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,
- 4.0.0)",
- org.eclipse.papyrus.uml.diagram.menu;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.constraints;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.canonical;bundle-version="1.2.0",
- com.google.guava;bundle-version="11.0.0"
-Bundle-Vendor: %providerName
-Eclipse-LazyStart: true
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.uml.diagram.sequence,
+ org.eclipse.papyrus.uml.diagram.sequence.edit.parts,
+ org.eclipse.papyrus.uml.diagram.sequence.edit.policies,
+ org.eclipse.papyrus.uml.diagram.sequence.figures,
+ org.eclipse.papyrus.uml.diagram.sequence.part,
+ org.eclipse.papyrus.uml.diagram.sequence.providers,
+ org.eclipse.papyrus.uml.diagram.sequence.util
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.core.expressions,
+ org.eclipse.ui.navigator,
+ org.eclipse.ui.navigator.resources,
+ org.eclipse.gmf.runtime.diagram.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
+ org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
+ org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.ocl.ecore,
+ org.junit;bundle-version="4.11.0",
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jface,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.views,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.gmf.runtime.emf.core,
+ org.eclipse.gmf.runtime.emf.commands.core,
+ org.eclipse.gmf.runtime.emf.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.gmf.runtime.diagram.ui.providers,
+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,
+ org.eclipse.gmf.runtime.diagram.ui.render,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor,
+ org.eclipse.draw2d,
+ org.eclipse.gmf.runtime.draw2d.ui,
+ org.eclipse.uml2.uml,
+ org.eclipse.uml2.uml.edit,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.gef,
+ org.eclipse.emf.validation,
+ org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.notation,
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.appearance;bundle-version="1.2.0",
+ org.eclipse.emf.databinding;bundle-version="1.2.0",
+ org.eclipse.papyrus.views.properties;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.stereotype.edition;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.papyrus.uml.diagram.menu;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.constraints;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.canonical;bundle-version="1.2.0",
+ com.google.guava;bundle-version="11.0.0"
+Bundle-Vendor: %providerName
+Eclipse-LazyStart: true
Bundle-Version: 1.2.0.qualifier
-Bundle-ManifestVersion: 2
-Bundle-Activator: org.eclipse.papyrus.uml.diagram.sequence.part.UMLDiagramEditorPlugin
-Import-Package: org.eclipse.core.databinding.observable,
- org.eclipse.papyrus.infra.emf.databinding,
- org.eclipse.papyrus.infra.tools.databinding,
- org.eclipse.papyrus.uml.tools.databinding,
- org.eclipse.papyrus.views.properties.contexts,
- org.eclipse.papyrus.views.properties.modelelement
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.sequence.part.UMLDiagramEditorPlugin
+Import-Package: org.eclipse.core.databinding.observable,
+ org.eclipse.papyrus.infra.emf.databinding,
+ org.eclipse.papyrus.infra.tools.databinding,
+ org.eclipse.papyrus.uml.tools.databinding,
+ org.eclipse.papyrus.views.properties.contexts,
+ org.eclipse.papyrus.views.properties.modelelement
Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.sequence;singleton:=true
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/plugin.xml
index 6ae2f43305d..04ac8f9ff22 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/plugin.xml
@@ -34,14 +34,14 @@
</extension>
<extension point="org.eclipse.ui.contexts" id="ui-context">
- <?gmfgen generated="true"?>
- <context
- description="%context.description"
- id="org.eclipse.papyrus.uml.diagram.sequence.ui.diagramContext"
- name="%context.name"
- parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
- </context>
- </extension>
+ <?gmfgen generated="true"?>
+ <context
+ description="%context.description"
+ id="org.eclipse.papyrus.uml.diagram.sequence.ui.diagramContext"
+ name="%context.name"
+ parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
+ </context>
+ </extension>
<extension
point="org.eclipse.ui.commands">
@@ -143,9 +143,9 @@
<?gmfgen generated="true"?>
<extension point="org.eclipse.core.runtime.preferences">
- <?gmfgen generated="true"?>
- <initializer class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramPreferenceInitializer"/>
- </extension>
+ <?gmfgen generated="true"?>
+ <initializer class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramPreferenceInitializer"/>
+ </extension>
<extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders" id="view-provider">
<?gmfgen generated="true"?>
@@ -547,13 +547,13 @@
</extension>
<extension point="org.eclipse.core.expressions.propertyTesters" id="navigator-proptest.isURIEditorInput">
<?gmfgen generated="true"?>
- <propertyTester
- id="org.eclipse.papyrus.uml.diagram.sequence.URIEditorInputPropertyTester"
- type="org.eclipse.emf.common.ui.URIEditorInput"
- namespace="org.eclipse.papyrus.uml.diagram.sequence"
- properties="isURIEditorInput"
- class="org.eclipse.papyrus.uml.diagram.sequence.part.UMLUriEditorInputTester">
- </propertyTester>
+ <propertyTester
+ id="org.eclipse.papyrus.uml.diagram.sequence.URIEditorInputPropertyTester"
+ type="org.eclipse.emf.common.ui.URIEditorInput"
+ namespace="org.eclipse.papyrus.uml.diagram.sequence"
+ properties="isURIEditorInput"
+ class="org.eclipse.papyrus.uml.diagram.sequence.part.UMLUriEditorInputTester">
+ </propertyTester>
</extension>
<extension point="org.eclipse.ui.navigator.viewer" id="navigator-viewbinding">
@@ -561,7 +561,7 @@
<viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
<includes>
<contentExtension pattern="org.eclipse.papyrus.uml.diagram.sequence.resourceContent"/>
- <contentExtension pattern="org.eclipse.papyrus.uml.diagram.sequence.domainResourceContent"/>
+ <contentExtension pattern="org.eclipse.papyrus.uml.diagram.sequence.domainResourceContent"/>
<contentExtension pattern="org.eclipse.papyrus.uml.diagram.sequence.navigatorLinkHelper"/>
</includes>
</viewerContentBinding>
@@ -584,16 +584,16 @@
activeByDefault="true">
<triggerPoints>
<or>
- <and>
- <instanceof value="org.eclipse.core.resources.IFile"/>
- <test property="org.eclipse.core.resources.extension" value="PapyrusUMLSequence_diagram"/>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="PapyrusUMLSequence_diagram"/>
</and>
<instanceof value="org.eclipse.papyrus.uml.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
</or>
</triggerPoints>
<possibleChildren>
<or>
- <instanceof value="org.eclipse.papyrus.uml.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
+ <instanceof value="org.eclipse.papyrus.uml.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
</or>
</possibleChildren>
<commonSorter
@@ -601,9 +601,9 @@
class="org.eclipse.papyrus.uml.diagram.sequence.navigator.UMLNavigatorSorter">
<parentExpression>
<or>
- <and>
- <instanceof value="org.eclipse.core.resources.IFile"/>
- <test property="org.eclipse.core.resources.extension" value="PapyrusUMLSequence_diagram"/>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="PapyrusUMLSequence_diagram"/>
</and>
<instanceof value="org.eclipse.papyrus.uml.diagram.sequence.navigator.UMLAbstractNavigatorItem"/>
</or>
@@ -620,9 +620,9 @@
activeByDefault="true">
<triggerPoints>
<or>
- <and>
- <instanceof value="org.eclipse.core.resources.IFile"/>
- <test property="org.eclipse.core.resources.extension" value="PapyrusUMLSequence"/>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="PapyrusUMLSequence"/>
</and>
<instanceof value="org.eclipse.papyrus.uml.diagram.sequence.navigator.UMLDomainNavigatorItem"/>
</or>
@@ -693,490 +693,490 @@
<extension point="org.eclipse.ui.preferencePages" id="prefpages">
<?gmfgen generated="true"?>
<page
- id="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLSequenceDiagram"
- name="PapyrusUMLSequenceDiagram Diagram"
- category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams"
- class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramGeneralPreferencePage">
+ id="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLSequenceDiagram"
+ name="PapyrusUMLSequenceDiagram Diagram"
+ category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams"
+ class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramGeneralPreferencePage">
</page>
<page
- id="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramPrintingPreferencePage"
- name="%prefpage.org.eclipse.uml2.uml.diagram.printing"
- category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLSequenceDiagram"
- class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramPrintingPreferencePage">
+ id="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramPrintingPreferencePage"
+ name="%prefpage.org.eclipse.uml2.uml.diagram.printing"
+ category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLSequenceDiagram"
+ class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramPrintingPreferencePage">
</page>
<page
- id="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramRulersAndGridPreferencePage"
- name="%prefpage.org.eclipse.uml2.uml.diagram.rulersAndGrid"
- category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLSequenceDiagram"
- class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramRulersAndGridPreferencePage">
+ id="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramRulersAndGridPreferencePage"
+ name="%prefpage.org.eclipse.uml2.uml.diagram.rulersAndGrid"
+ category="org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams.PapyrusUMLSequenceDiagram"
+ class="org.eclipse.papyrus.uml.diagram.sequence.preferences.DiagramRulersAndGridPreferencePage">
</page>
</extension>
<extension
- id="UML Plugin.palettedefinition"
- name="UML Plugin Predefined Entries"
- point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders">
-
- <?gmfgen generated="true"?>
- <paletteProvider class="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider">
- <Priority name="Lowest"/>
- <contribution
- factoryClass="org.eclipse.papyrus.uml.diagram.sequence.part.UMLPaletteFactory">
- <predefinedEntry id="standardGroup/noteStack/noteTool" remove="true"/>
+ id="UML Plugin.palettedefinition"
+ name="UML Plugin Predefined Entries"
+ point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders">
+
+ <?gmfgen generated="true"?>
+ <paletteProvider class="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider">
+ <Priority name="Lowest"/>
+ <contribution
+ factoryClass="org.eclipse.papyrus.uml.diagram.sequence.part.UMLPaletteFactory">
+ <predefinedEntry id="standardGroup/noteStack/noteTool" remove="true"/>
<predefinedEntry id="standardGroup/noteStack/textTool" remove="true"/>
<predefinedEntry id="standardGroup/noteStack/noteattachmentTool" remove="true"/>
- <entry
- defineOnly="true"
- description="Create a Lifeline"
- id="createLifeline1CreationTool"
- kind="tool"
- label="Lifeline"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Lifeline.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Lifeline.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create an Action Execution Specification"
- id="createActionExecutionSpecification2CreationTool"
- kind="tool"
- label="Action Execution Specification"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/ActionExecutionSpecification.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/ActionExecutionSpecification.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create an BehaviorExecutionSpecification"
- id="createBehaviorExecutionSpecification3CreationTool"
- kind="tool"
- label=" Behavior Execution Specification"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/BehaviorExecutionSpecification.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/BehaviorExecutionSpecification.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create InteractionUse"
- id="createInteractionUse4CreationTool"
- kind="tool"
- label="InteractionUse"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionUse.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionUse.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create Combined Fragment"
- id="createCombinedFragment5CreationTool"
- kind="tool"
- label="Combined Fragment"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create Interaction Operand"
- id="createInteractionOperand6CreationTool"
- kind="tool"
- label="Interaction Operand"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionOperand.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionOperand.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create Continuation"
- id="createContinuation7CreationTool"
- kind="tool"
- label="Continuation"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Continuation.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Continuation.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create StateInvariant"
- id="createStateInvariant8CreationTool"
- kind="tool"
- label="StateInvariant"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/StateInvariant.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/StateInvariant.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a comment"
- id="createComment9CreationTool"
- kind="tool"
- label="Comment"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a constraint"
- id="createConstraint10CreationTool"
- kind="tool"
- label="Constraint"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a CoRegion"
- id="createCoRegion11CreationTool"
- kind="tool"
- label="CoRegion"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a Duration Observation on a Message"
- id="createDurationObservation12CreationTool"
- kind="tool"
- label="Duration Observation"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationObservation.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationObservation.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a Time Constraint"
- id="createTimeConstraint13CreationTool"
- kind="tool"
- label="Time Constraint"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeConstraint.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeConstraint.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a Time Observation"
- id="createTimeObservation14CreationTool"
- kind="tool"
- label="Time Observation"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeObservation.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeObservation.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a Duration Constraint"
- id="createDurationConstraint15CreationTool"
- kind="tool"
- label="Duration Constraint"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationConstraint.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationConstraint.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a Destruction Event"
- id="createDestructionEvent16CreationTool"
- kind="tool"
- label="Destruction Event"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DestructionEvent.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DestructionEvent.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageSync"
- id="createMessageSync1CreationTool"
- kind="tool"
- label="Message Sync"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_synchCall.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_synchCall.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageAsync"
- id="createMessageAsync2CreationTool"
- kind="tool"
- label="Message Async"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_asynchCall.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_asynchCall.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageReply"
- id="createMessageReply3CreationTool"
- kind="tool"
- label="Message Reply"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_reply.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_reply.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageCreate"
- id="createMessageCreate4CreationTool"
- kind="tool"
- label="Message Create"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_createMessage.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_createMessage.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageDelete"
- id="createMessageDelete5CreationTool"
- kind="tool"
- label="Message Delete"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_deleteMessage.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_deleteMessage.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageLost"
- id="createMessageLost6CreationTool"
- kind="tool"
- label="Message Lost"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create MessageFound"
- id="createMessageFound7CreationTool"
- kind="tool"
- label="Message Found"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create GeneralOrdering"
- id="createGeneralOrdering8CreationTool"
- kind="tool"
- label="General Ordering"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/GeneralOrdering.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/GeneralOrdering.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a comment link"
- id="createCommentlink9CreationTool"
- kind="tool"
- label="Comment link"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Create a constraint link"
- id="createConstraintlink10CreationTool"
- kind="tool"
- label="Constraint link"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif">
- </entry>
- <entry
- defineOnly="true"
- description="Creation of a context link for a Constraint"
- id="createContextLink11CreationTool"
- kind="tool"
- label="ContextLink"
- large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Association.gif"
- path=""
- small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Association.gif">
- </entry>
-
- </contribution>
- </paletteProvider>
-
- </extension>
+ <entry
+ defineOnly="true"
+ description="Create a Lifeline"
+ id="createLifeline1CreationTool"
+ kind="tool"
+ label="Lifeline"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Lifeline.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Lifeline.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create an Action Execution Specification"
+ id="createActionExecutionSpecification2CreationTool"
+ kind="tool"
+ label="Action Execution Specification"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/ActionExecutionSpecification.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/ActionExecutionSpecification.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create an BehaviorExecutionSpecification"
+ id="createBehaviorExecutionSpecification3CreationTool"
+ kind="tool"
+ label=" Behavior Execution Specification"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/BehaviorExecutionSpecification.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/BehaviorExecutionSpecification.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create InteractionUse"
+ id="createInteractionUse4CreationTool"
+ kind="tool"
+ label="InteractionUse"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionUse.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionUse.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create Combined Fragment"
+ id="createCombinedFragment5CreationTool"
+ kind="tool"
+ label="Combined Fragment"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create Interaction Operand"
+ id="createInteractionOperand6CreationTool"
+ kind="tool"
+ label="Interaction Operand"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionOperand.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/InteractionOperand.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create Continuation"
+ id="createContinuation7CreationTool"
+ kind="tool"
+ label="Continuation"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Continuation.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Continuation.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create StateInvariant"
+ id="createStateInvariant8CreationTool"
+ kind="tool"
+ label="StateInvariant"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/StateInvariant.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/StateInvariant.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a comment"
+ id="createComment9CreationTool"
+ kind="tool"
+ label="Comment"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a constraint"
+ id="createConstraint10CreationTool"
+ kind="tool"
+ label="Constraint"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a CoRegion"
+ id="createCoRegion11CreationTool"
+ kind="tool"
+ label="CoRegion"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CombinedFragment.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a Duration Observation on a Message"
+ id="createDurationObservation12CreationTool"
+ kind="tool"
+ label="Duration Observation"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationObservation.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationObservation.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a Time Constraint"
+ id="createTimeConstraint13CreationTool"
+ kind="tool"
+ label="Time Constraint"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeConstraint.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeConstraint.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a Time Observation"
+ id="createTimeObservation14CreationTool"
+ kind="tool"
+ label="Time Observation"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeObservation.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TimeObservation.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a Duration Constraint"
+ id="createDurationConstraint15CreationTool"
+ kind="tool"
+ label="Duration Constraint"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationConstraint.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DurationConstraint.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a Destruction Event"
+ id="createDestructionEvent16CreationTool"
+ kind="tool"
+ label="Destruction Event"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DestructionEvent.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DestructionEvent.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageSync"
+ id="createMessageSync1CreationTool"
+ kind="tool"
+ label="Message Sync"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_synchCall.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_synchCall.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageAsync"
+ id="createMessageAsync2CreationTool"
+ kind="tool"
+ label="Message Async"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_asynchCall.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_asynchCall.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageReply"
+ id="createMessageReply3CreationTool"
+ kind="tool"
+ label="Message Reply"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_reply.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_reply.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageCreate"
+ id="createMessageCreate4CreationTool"
+ kind="tool"
+ label="Message Create"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_createMessage.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_createMessage.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageDelete"
+ id="createMessageDelete5CreationTool"
+ kind="tool"
+ label="Message Delete"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_deleteMessage.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message_deleteMessage.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageLost"
+ id="createMessageLost6CreationTool"
+ kind="tool"
+ label="Message Lost"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create MessageFound"
+ id="createMessageFound7CreationTool"
+ kind="tool"
+ label="Message Found"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Message.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create GeneralOrdering"
+ id="createGeneralOrdering8CreationTool"
+ kind="tool"
+ label="General Ordering"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/GeneralOrdering.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/GeneralOrdering.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a comment link"
+ id="createCommentlink9CreationTool"
+ kind="tool"
+ label="Comment link"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Create a constraint link"
+ id="createConstraintlink10CreationTool"
+ kind="tool"
+ label="Constraint link"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif">
+ </entry>
+ <entry
+ defineOnly="true"
+ description="Creation of a context link for a Constraint"
+ id="createContextLink11CreationTool"
+ kind="tool"
+ label="ContextLink"
+ large_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Association.gif"
+ path=""
+ small_icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Association.gif">
+ </entry>
+
+ </contribution>
+ </paletteProvider>
+
+ </extension>
<extension
- id="UML Plugin.standard"
- name="UML Plugin Standard Palette"
- point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders">
-
- <?gmfgen generated="true"?>
- <paletteProvider class="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider">
- <Priority name="Low"/>
- <contribution
- factoryClass="org.eclipse.papyrus.uml.diagram.sequence.part.UMLPaletteFactory">
- <predefinedEntry id="standardGroup/noteStack/noteTool" remove="true"/>
- <predefinedEntry id="standardGroup/noteStack/textTool" remove="true"/>
- <predefinedEntry id="standardGroup/noteStack/noteattachmentTool" remove="true"/>
- <entry
- description=""
- id="createNodes1Group"
- kind="drawer"
- label="Nodes"
- large_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif"
- path="/"
- small_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif">
- <expand
- force="true">
- </expand>
- </entry>
+ id="UML Plugin.standard"
+ name="UML Plugin Standard Palette"
+ point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders">
+
+ <?gmfgen generated="true"?>
+ <paletteProvider class="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider">
+ <Priority name="Low"/>
+ <contribution
+ factoryClass="org.eclipse.papyrus.uml.diagram.sequence.part.UMLPaletteFactory">
+ <predefinedEntry id="standardGroup/noteStack/noteTool" remove="true"/>
+ <predefinedEntry id="standardGroup/noteStack/textTool" remove="true"/>
+ <predefinedEntry id="standardGroup/noteStack/noteattachmentTool" remove="true"/>
+ <entry
+ description=""
+ id="createNodes1Group"
+ kind="drawer"
+ label="Nodes"
+ large_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif"
+ path="/"
+ small_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif">
+ <expand
+ force="true">
+ </expand>
+ </entry>
- <predefinedEntry
- id="createLifeline1CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createActionExecutionSpecification2CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createBehaviorExecutionSpecification3CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createInteractionUse4CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createCombinedFragment5CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createInteractionOperand6CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createContinuation7CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createStateInvariant8CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createComment9CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createConstraint10CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createCoRegion11CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createDurationObservation12CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createTimeConstraint13CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createTimeObservation14CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createDurationConstraint15CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
- <predefinedEntry
- id="createDestructionEvent16CreationTool"
- path="/createNodes1Group">
- </predefinedEntry>
+ <predefinedEntry
+ id="createLifeline1CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createActionExecutionSpecification2CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createBehaviorExecutionSpecification3CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createInteractionUse4CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createCombinedFragment5CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createInteractionOperand6CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createContinuation7CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createStateInvariant8CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createComment9CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createConstraint10CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createCoRegion11CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createDurationObservation12CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createTimeConstraint13CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createTimeObservation14CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createDurationConstraint15CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createDestructionEvent16CreationTool"
+ path="/createNodes1Group">
+ </predefinedEntry>
- <entry
- description="Message tools"
- id="createEdges2Group"
- kind="drawer"
- label="Edges"
- large_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif"
- path="/"
- small_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif">
- <expand
- force="true">
- </expand>
- </entry>
+ <entry
+ description="Message tools"
+ id="createEdges2Group"
+ kind="drawer"
+ label="Edges"
+ large_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif"
+ path="/"
+ small_icon="platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif">
+ <expand
+ force="true">
+ </expand>
+ </entry>
- <predefinedEntry
- id="createMessageSync1CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createMessageAsync2CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createMessageReply3CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createMessageCreate4CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createMessageDelete5CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createMessageLost6CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createMessageFound7CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createGeneralOrdering8CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createCommentlink9CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createConstraintlink10CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
- <predefinedEntry
- id="createContextLink11CreationTool"
- path="/createEdges2Group">
- </predefinedEntry>
+ <predefinedEntry
+ id="createMessageSync1CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createMessageAsync2CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createMessageReply3CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createMessageCreate4CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createMessageDelete5CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createMessageLost6CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createMessageFound7CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createGeneralOrdering8CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createCommentlink9CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createConstraintlink10CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
+ <predefinedEntry
+ id="createContextLink11CreationTool"
+ path="/createEdges2Group">
+ </predefinedEntry>
- </contribution>
- <editor id="org.eclipse.papyrus.uml.diagram.sequence"/>
- </paletteProvider>
-
- </extension>
+ </contribution>
+ <editor id="org.eclipse.papyrus.uml.diagram.sequence"/>
+ </paletteProvider>
+
+ </extension>
<extension point="org.eclipse.gmf.runtime.common.ui.services.markerNavigationProviders" id="markers-navigation">
- <?gmfgen generated="true"?>
- <MarkerNavigationProvider class="org.eclipse.papyrus.uml.diagram.sequence.providers.UMLMarkerNavigationProvider">
- <MarkerType name="org.eclipse.papyrus.uml.diagram.sequence.diagnostic"/>
- <Priority name="Lowest"/>
- </MarkerNavigationProvider>
- </extension>
+ <?gmfgen generated="true"?>
+ <MarkerNavigationProvider class="org.eclipse.papyrus.uml.diagram.sequence.providers.UMLMarkerNavigationProvider">
+ <MarkerType name="org.eclipse.papyrus.uml.diagram.sequence.diagnostic"/>
+ <Priority name="Lowest"/>
+ </MarkerNavigationProvider>
+ </extension>
<extension id="diagnostic" name="UML Plugin problems" point="org.eclipse.core.resources.markers">
- <?gmfgen generated="true"?>
- <super type="org.eclipse.core.resources.problemmarker"/>
- <super type="org.eclipse.gmf.runtime.common.ui.services.marker"/>
- <persistent value="true"/>
- </extension>
+ <?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="false"?>
<category id="org.eclipse.uml2.uml.util.UMLValidator.validate" mandatory="false" name="validateUMLModel">
@@ -1246,19 +1246,19 @@
</extension>
<extension id="validationDecoratorProvider" name="ValidationDecorations" point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
- <?gmfgen generated="true"?>
- <decoratorProvider class="org.eclipse.papyrus.uml.diagram.sequence.providers.UMLValidationDecoratorProvider">
- <Priority name="Lowest"/>
- <object class="org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart(org.eclipse.gmf.runtime.diagram.ui)" id="PRIMARY_VIEW"/>
- <context decoratorTargets="PRIMARY_VIEW"/>
- </decoratorProvider>
- </extension>
+ <?gmfgen generated="true"?>
+ <decoratorProvider class="org.eclipse.papyrus.uml.diagram.sequence.providers.UMLValidationDecoratorProvider">
+ <Priority name="Lowest"/>
+ <object class="org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart(org.eclipse.gmf.runtime.diagram.ui)" id="PRIMARY_VIEW"/>
+ <context decoratorTargets="PRIMARY_VIEW"/>
+ </decoratorProvider>
+ </extension>
<extension point="org.eclipse.emf.validation.ui.UIRegisteredClientContext">
<?gmfgen generated="true"?>
- <clientContext id="org.eclipse.papyrus.uml.diagram.sequenceDefaultCtx"/>
- <clientContext id="org.eclipse.papyrus.uml.diagram.sequenceCtx_3001"/>
- </extension>
+ <clientContext id="org.eclipse.papyrus.uml.diagram.sequenceDefaultCtx"/>
+ <clientContext id="org.eclipse.papyrus.uml.diagram.sequenceCtx_3001"/>
+ </extension>
<extension
point="org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders">
<editpolicyProvider
@@ -1839,4 +1839,12 @@
target="1.2.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.sequence.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLSequenceDiagram">
+ </visualTypeProvider>
+ </extension>
+
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/src/org/eclipse/papyrus/uml/diagram/sequence/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/src/org/eclipse/papyrus/uml/diagram/sequence/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..95dd01c6a4d
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/src/org/eclipse/papyrus/uml/diagram/sequence/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.sequence.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.sequence.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.classpath
index 70fd64edede..b93766b3474 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF
index 9991b8eed46..836ec6c2038 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/META-INF/MANIFEST.MF
@@ -23,7 +23,7 @@ Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Localization: plugin
Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.core.expressions,
org.eclipse.core.resources,
org.eclipse.core.runtime,
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/canonical/StateMachineCanonicalCreationTargetStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/canonical/StateMachineCanonicalCreationTargetStrategy.java
deleted file mode 100644
index 1bf312ec8d7..00000000000
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/canonical/StateMachineCanonicalCreationTargetStrategy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2015 Christian W. Damus and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Christian W. Damus - Initial API and implementation
- *
- *****************************************************************************/
-
-package org.eclipse.papyrus.uml.diagram.statemachine.custom.canonical;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IResizableCompartmentEditPart;
-import org.eclipse.papyrus.infra.gmfdiag.canonical.strategy.ICreationTargetStrategy;
-import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
-import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineCompartmentEditPart;
-import org.eclipse.uml2.uml.Region;
-import org.eclipse.uml2.uml.Transition;
-
-import com.google.common.collect.Iterators;
-
-/**
- * Target edit part strategy for canonical view creation in state machine diagrams.
- */
-public class StateMachineCanonicalCreationTargetStrategy implements ICreationTargetStrategy {
-
- public StateMachineCanonicalCreationTargetStrategy() {
- super();
- }
-
- @Override
- public EditPart getTargetEditPart(EditPart host, EObject element) {
- EditPart result = null;
-
- if (element instanceof Transition) {
- // Get the nearest containing shape compartment. It can create the edge view
- for (EditPart candidate = host; (result == null) && (candidate != null); candidate = candidate.getParent()) {
- if (candidate instanceof IResizableCompartmentEditPart) {
- result = candidate;
- } else {
- // TODO: Border items (e.g., connection points)
- }
- }
- } else if (element instanceof Region) {
- // Only the first region can be dropped onto a composite state or state machine's compartment.
- // Additional regions have to be dropped on a previous region because regions fill the entire
- // space of their parent compartment
- for (EditPart candidate = host; (result == null) && (candidate != null); candidate = candidate.getParent()) {
- if ((candidate instanceof StateMachineCompartmentEditPart) || (candidate instanceof StateCompartmentEditPart)) {
- Iterator<RegionCompartmentEditPart> regions = Iterators.filter(DiagramEditPartsUtil.getAllContents(candidate, false), RegionCompartmentEditPart.class);
- result = Iterators.getLast(regions, candidate);
- }
- }
- }
-
- return result;
- }
-}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomRegionCompartmentCreationEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomRegionCompartmentCreationEditPolicy.java
index 8cffee5a8b6..31d3b85c804 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomRegionCompartmentCreationEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomRegionCompartmentCreationEditPolicy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2015 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -8,6 +8,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 477384
*/
package org.eclipse.papyrus.uml.diagram.statemachine.custom.policies;
@@ -42,12 +43,13 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.commands.wrappers.EMFtoGMFCommandWrapper;
-import org.eclipse.papyrus.uml.diagram.common.commands.SemanticAdapter;
+import org.eclipse.papyrus.infra.gmfdiag.common.adapter.SemanticAdapter;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.CustomRegionCreateElementCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.EMFCustomTransitionRetargetContainerCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.figures.RegionFigure;
@@ -71,7 +73,7 @@ public class CustomRegionCompartmentCreationEditPolicy extends CreationEditPolic
@Override
protected Command getReparentCommand(ChangeBoundsRequest changeBoundsRequest) {
- View container = (View) getHost().getAdapter(View.class);
+ View container = getHost().getAdapter(View.class);
EObject context = container == null ? null : ViewUtil.resolveSemanticElement(container);
CompositeCommand cc = new CompositeCommand("move (re-parent) state");
Iterator<?> it = changeBoundsRequest.getEditParts().iterator();
@@ -85,15 +87,14 @@ public class CustomRegionCompartmentCreationEditPolicy extends CreationEditPolic
if (ep instanceof GroupEditPart) {
cc.compose(getReparentGroupCommand((GroupEditPart) ep));
}
- View view = (View) ep.getAdapter(View.class);
+ View view = ep.getAdapter(View.class);
if (view == null) {
continue;
}
EObject semantic = ViewUtil.resolveSemanticElement(view);
if (semantic == null) {
cc.compose(getReparentViewCommand((IGraphicalEditPart) ep));
- }
- else if (context != null && shouldReparent(semantic, context)) {
+ } else if (context != null && shouldReparent(semantic, context)) {
cc.compose(getReparentCommand((IGraphicalEditPart) ep));
if (semantic instanceof State) {
State state = (State) semantic;
@@ -139,6 +140,29 @@ public class CustomRegionCompartmentCreationEditPolicy extends CreationEditPolic
return new ICommandProxy(cc.reduce());
}
}
+ } else if (request instanceof CreateViewRequest) {
+ CreateViewRequest create = (CreateViewRequest) request;
+ for (CreateViewRequest.ViewDescriptor descriptor : create.getViewDescriptors()) {
+ if (((IHintedType) UMLElementTypes.Region_3000).getSemanticHint().equals(descriptor.getSemanticHint())) {
+ // Creating a region view as a sibling of the region owning this compartment
+ IAdaptable compartment = new SemanticAdapter(null, ((View) getHost().getModel()).eContainer());
+
+ // Create the view with a reasonable initial layout
+ CustomRegionCreateElementCommand command = new CustomRegionCreateElementCommand(
+ compartment, descriptor.getElementAdapter(),
+ ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint(),
+ editingDomain, DiagramUIMessages.CreateCommand_Label, dropLocation);
+ cc.compose(command);
+ }
+ }
+
+ // It's all-or-nothing: if anything besides regions were being created (which
+ // would be an odd sort of a compound request), then only the regions will be
+ if (!cc.isEmpty()) {
+ return new ICommandProxy(cc.reduce());
+ } else {
+ return super.getCommand(request);
+ }
} else if (request instanceof ChangeBoundsRequest) {
return getReparentCommand((ChangeBoundsRequest) request);
/*
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateCompartmentCreationEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateCompartmentCreationEditPolicy.java
index ff5c8d7104d..1149ff781b4 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateCompartmentCreationEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateCompartmentCreationEditPolicy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2015 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -8,6 +8,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 477384
*/
package org.eclipse.papyrus.uml.diagram.statemachine.custom.policies;
@@ -29,17 +30,21 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.uml.diagram.common.commands.SemanticAdapter;
+import org.eclipse.papyrus.infra.gmfdiag.common.adapter.SemanticAdapter;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.CustomFirstRegionInCompositeStateCreateElementCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.helpers.Zone;
+import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.UMLElementTypes;
+import com.google.common.collect.Iterables;
+
public class CustomStateCompartmentCreationEditPolicy extends CreationEditPolicy {
IFigure sizeOnDropFeedback = null;
String dropLocation = Zone.NONE;
@@ -93,6 +98,36 @@ public class CustomStateCompartmentCreationEditPolicy extends CreationEditPolicy
}
@Override
+ protected Command getCreateCommand(CreateViewRequest request) {
+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
+ CompositeTransactionalCommand cc = null;
+
+ for (CreateViewRequest.ViewDescriptor descriptor : request.getViewDescriptors()) {
+ if (((IHintedType) UMLElementTypes.Region_3000).getSemanticHint().equals(descriptor.getSemanticHint())) {
+ // Creating a region view in this compartment
+ IAdaptable compartment = new SemanticAdapter(null, getHost().getModel());
+
+ // Create the view with a reasonable initial layout
+ CustomFirstRegionInCompositeStateCreateElementCommand command = new CustomFirstRegionInCompositeStateCreateElementCommand(
+ compartment, descriptor.getElementAdapter(),
+ ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint(),
+ editingDomain, DiagramUIMessages.CreateCommand_Label, dropLocation);
+
+ if (cc == null) {
+ cc = new CompositeTransactionalCommand(editingDomain, DiagramUIMessages.AddCommand_Label);
+ cc.compose(command);
+ }
+ }
+ }
+
+ // It's all-or-nothing: if anything besides regions were being created (which
+ // would be an odd sort of a compound request), then only the regions will be
+ return (cc != null)
+ ? new ICommandProxy(cc.reduce())
+ : super.getCommand(request);
+ }
+
+ @Override
public EditPart getTargetEditPart(Request request) {
if (request instanceof CreateUnspecifiedTypeRequest) {
CreateUnspecifiedTypeRequest createUnspecifiedTypeRequest = (CreateUnspecifiedTypeRequest) request;
@@ -107,6 +142,21 @@ public class CustomStateCompartmentCreationEditPolicy extends CreationEditPolicy
}
}
}
+ } else if (request instanceof CreateViewRequest) {
+ CreateViewRequest create = (CreateViewRequest) request;
+ // If we are creating any regions, and there are already existing regions, redirect
+ // to the last existing region
+ for (CreateViewRequest.ViewDescriptor descriptor : create.getViewDescriptors()) {
+ if (((IHintedType) UMLElementTypes.Region_3000).getSemanticHint().equals(descriptor.getSemanticHint())) {
+ RegionEditPart existingRegion = Iterables.getLast(Iterables.filter(getHost().getChildren(), RegionEditPart.class), null);
+ if (existingRegion != null) {
+ RegionCompartmentEditPart compartment = Iterables.getFirst(Iterables.filter(existingRegion.getChildren(), RegionCompartmentEditPart.class), null);
+ if (compartment != null) {
+ return compartment.getTargetEditPart(request);
+ }
+ }
+ }
+ }
}
return super.getTargetEditPart(request);
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateMachineCompartmentCreationEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateMachineCompartmentCreationEditPolicy.java
index 0f49cf78959..d5da05417d3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateMachineCompartmentCreationEditPolicy.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/policies/CustomStateMachineCompartmentCreationEditPolicy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2015 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -8,6 +8,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 477384
*/
package org.eclipse.papyrus.uml.diagram.statemachine.custom.policies;
@@ -16,6 +17,7 @@ import java.util.Iterator;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.draw2d.IFigure;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.EditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.requests.ChangeBoundsRequest;
@@ -24,6 +26,7 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
@@ -31,8 +34,12 @@ import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.common.commands.SemanticAdapter;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.commands.CustomFirstRegionInStateMachineCreateElementCommand;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.helpers.Zone;
+import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionCompartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.providers.UMLElementTypes;
+import com.google.common.collect.Iterables;
+
public class CustomStateMachineCompartmentCreationEditPolicy extends CreationEditPolicy {
IFigure sizeOnDropFeedback = null;
String dropLocation = Zone.RIGHT;
@@ -62,12 +69,32 @@ public class CustomStateMachineCompartmentCreationEditPolicy extends CreationEdi
return new ICommandProxy(cc.reduce());
}
}
- }
- else if (request instanceof ChangeBoundsRequest) {
+ } else if (request instanceof ChangeBoundsRequest) {
return getReparentCommand((ChangeBoundsRequest) request);
}
return super.getCommand(request);
}
return null;
}
+
+ @Override
+ public EditPart getTargetEditPart(Request request) {
+ if (request instanceof CreateViewRequest) {
+ CreateViewRequest create = (CreateViewRequest) request;
+ // If we are creating any regions, and there are already existing regions, redirect
+ // to the last existing region
+ for (CreateViewRequest.ViewDescriptor descriptor : create.getViewDescriptors()) {
+ if (((IHintedType) UMLElementTypes.Region_3000).getSemanticHint().equals(descriptor.getSemanticHint())) {
+ RegionEditPart existingRegion = Iterables.getLast(Iterables.filter(getHost().getChildren(), RegionEditPart.class), null);
+ if (existingRegion != null) {
+ RegionCompartmentEditPart compartment = Iterables.getFirst(Iterables.filter(existingRegion.getChildren(), RegionCompartmentEditPart.class), null);
+ if (compartment != null) {
+ return compartment.getTargetEditPart(request);
+ }
+ }
+ }
+ }
+ }
+ return super.getTargetEditPart(request);
+ }
}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/model/stateMachineDiagram.gmfgen b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/model/stateMachineDiagram.gmfgen
index 14522d0e3f7..7b15b6961a5 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/model/stateMachineDiagram.gmfgen
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/model/stateMachineDiagram.gmfgen
@@ -2302,6 +2302,10 @@
xsi:type="gmfgen:CustomBehaviour"
key="org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.DRAG_DROP_ROLE"
editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.statemachine.custom.policies.CustomStateMachineDiagramDragDropEditPolicy"/>
+ <behaviour
+ xsi:type="gmfgen:CustomBehaviour"
+ key="org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE"
+ editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.statemachine.custom.policies.CustomStateMachineCompartmentCreationEditPolicy"/>
</compartments>
<compartments
visualID="6002"
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml
index ad635373371..c39084e3db6 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/plugin.xml
@@ -838,22 +838,6 @@
<extension
- point="org.eclipse.papyrus.infra.gmfdiag.canonical.strategies">
- <creationTargetStrategy
- class="org.eclipse.papyrus.uml.diagram.statemachine.custom.canonical.StateMachineCanonicalCreationTargetStrategy">
- <enablement>
- <with
- variable="element">
- <or>
- <instanceof value="org.eclipse.uml2.uml.Vertex"/>
- <instanceof value="org.eclipse.uml2.uml.StateMachine"/>
- </or>
- </with>
- </enablement>
- </creationTargetStrategy>
- </extension>
-
- <extension
point="org.eclipse.papyrus.infra.elementtypesconfigurations.elementTypeSetConfiguration">
<elementTypeSet
id="org.eclipse.papyrus.uml.diagram.statemachine.elementTypeSet"
@@ -878,6 +862,13 @@
target="1.2.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.statemachine.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLStateMachineDiagram">
+ </visualTypeProvider>
+ </extension>
<extension
point="org.eclipse.papyrus.infra.hyperlink.hyperlinkContributor">
<contributor
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/parts/StateMachineCompartmentEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/parts/StateMachineCompartmentEditPart.java
index f4e3e9818ba..1f34aad7ae1 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/parts/StateMachineCompartmentEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/edit/parts/StateMachineCompartmentEditPart.java
@@ -30,6 +30,7 @@ import org.eclipse.gmf.tooling.runtime.linklf.LinkLFShapeCompartmentEditPart;
import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCompartmentSemanticEditPolicy;
import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCreationEditPolicy;
import org.eclipse.papyrus.uml.diagram.common.editpolicies.PasteEditPolicy;
+import org.eclipse.papyrus.uml.diagram.statemachine.custom.policies.CustomStateMachineCompartmentCreationEditPolicy;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.policies.CustomStateMachineCompartmentXYLayoutEditPolicy;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.policies.CustomStateMachineDiagramDragDropEditPolicy;
import org.eclipse.papyrus.uml.diagram.statemachine.custom.policies.RemoveOrphanViewPolicy;
@@ -86,6 +87,7 @@ public class StateMachineCompartmentEditPart extends LinkLFShapeCompartmentEditP
installEditPolicy("RemoveOrphanView", new RemoveOrphanViewPolicy()); //$NON-NLS-1$
installEditPolicy(EditPolicy.LAYOUT_ROLE, new CustomStateMachineCompartmentXYLayoutEditPolicy());
installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new CustomStateMachineDiagramDragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CustomStateMachineCompartmentCreationEditPolicy());
}
/**
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..a8da77d69bd
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/src/org/eclipse/papyrus/uml/diagram/statemachine/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.statemachine.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.classpath
index b3d4acc64d3..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/META-INF/MANIFEST.MF
index ac99a966533..7cb652c7688 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/META-INF/MANIFEST.MF
@@ -1,80 +1,79 @@
-Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.uml.diagram.timing.custom;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.edit.commands;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.edit.parts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.edit.policies;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.figures;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.layouts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.parsers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.parts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.providers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.custom.utils;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.edit.commands;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.edit.helpers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.edit.parts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.edit.policies;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.navigator;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.parsers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.part;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.preferences;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.providers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
- org.eclipse.papyrus.uml.diagram.timing.sheet;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Bundle-Name: %pluginName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.eclipse.emf.ecore,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.core.expressions,
- org.eclipse.jface,
- org.eclipse.ui.ide,
- org.eclipse.ui.views,
- org.eclipse.ui.navigator,
- org.eclipse.ui.navigator.resources,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.emf.edit.ui,
- org.eclipse.gmf.runtime.emf.core,
- org.eclipse.gmf.runtime.emf.commands.core,
- org.eclipse.gmf.runtime.emf.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui,
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
- org.eclipse.gmf.runtime.diagram.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui.providers,
- org.eclipse.gmf.runtime.diagram.ui.providers.ide,
- org.eclipse.gmf.runtime.diagram.ui.render,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
- org.eclipse.gmf.runtime.draw2d.ui,
- org.eclipse.uml2.uml,
- org.eclipse.uml2.uml.edit,
- org.eclipse.emf.ecore.edit,
- org.eclipse.ocl.ecore,
- org.eclipse.emf.validation,
- org.eclipse.gef,
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
- org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
- org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,
- 4.0.0)",
- org.eclipse.draw2d,
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.2.0"
-Bundle-Vendor: %providerName
-Eclipse-LazyStart: true
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.uml.diagram.timing.custom;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.edit.commands;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.edit.parts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.edit.policies;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.figures;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.layouts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.parsers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.parts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.providers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.custom.utils;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.edit.commands;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.edit.helpers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.edit.parts;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.edit.policies;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.navigator;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.parsers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.part;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.preferences;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.providers;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests,
+ org.eclipse.papyrus.uml.diagram.timing.sheet;x-friends:=org.eclipse.papyrus.uml.diagram.timing.tests
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.emf.ecore,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.core.expressions,
+ org.eclipse.jface,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.views,
+ org.eclipse.ui.navigator,
+ org.eclipse.ui.navigator.resources,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.gmf.runtime.emf.core,
+ org.eclipse.gmf.runtime.emf.commands.core,
+ org.eclipse.gmf.runtime.emf.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui.providers,
+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,
+ org.eclipse.gmf.runtime.diagram.ui.render,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
+ org.eclipse.gmf.runtime.draw2d.ui,
+ org.eclipse.uml2.uml,
+ org.eclipse.uml2.uml.edit,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.ocl.ecore,
+ org.eclipse.emf.validation,
+ org.eclipse.gef,
+ org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
+ org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.draw2d,
+ org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Eclipse-LazyStart: true
Bundle-Version: 1.2.0.qualifier
-Bundle-Activator: org.eclipse.papyrus.uml.diagram.timing.part.UMLDiagramEditorPlugin
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.timing; singleton:=true
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.timing.part.UMLDiagramEditorPlugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.timing; singleton:=true
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/plugin.xml
index 240268ee17d..c8a1a70a67f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/plugin.xml
@@ -1229,6 +1229,14 @@
target="1.2.0">
</diagramReconciler>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.timing.providers.UMLVisualTypeProvider"
+ diagramType="PapyrusUMLTimingDiagram">
+ </visualTypeProvider>
+ </extension>
+
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/src/org/eclipse/papyrus/uml/diagram/timing/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/src/org/eclipse/papyrus/uml/diagram/timing/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..3d7284c8d5e
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.timing/src/org/eclipse/papyrus/uml/diagram/timing/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.timing.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.timing.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.classpath b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.classpath
index b3d4acc64d3..cf9a62af9c3 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.classpath
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="custom-src"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.settings/org.eclipse.jdt.core.prefs b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.settings/org.eclipse.jdt.core.prefs
index 94d61f00da6..b3aa6d60f94 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
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_annotation=0
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/META-INF/MANIFEST.MF b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/META-INF/MANIFEST.MF
index d919064e243..619dc1e4916 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/META-INF/MANIFEST.MF
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/META-INF/MANIFEST.MF
@@ -1,88 +1,87 @@
-Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.uml.diagram.usecase,
- org.eclipse.papyrus.uml.diagram.usecase.command,
- org.eclipse.papyrus.uml.diagram.usecase.custom.edit.parts,
- org.eclipse.papyrus.uml.diagram.usecase.custom.factory,
- org.eclipse.papyrus.uml.diagram.usecase.custom.providers,
- org.eclipse.papyrus.uml.diagram.usecase.edit.helpers,
- org.eclipse.papyrus.uml.diagram.usecase.edit.parts,
- org.eclipse.papyrus.uml.diagram.usecase.edit.policies,
- org.eclipse.papyrus.uml.diagram.usecase.expressions,
- org.eclipse.papyrus.uml.diagram.usecase.figure,
- org.eclipse.papyrus.uml.diagram.usecase.handler,
- org.eclipse.papyrus.uml.diagram.usecase.helper,
- org.eclipse.papyrus.uml.diagram.usecase.navigator,
- org.eclipse.papyrus.uml.diagram.usecase.parsers,
- org.eclipse.papyrus.uml.diagram.usecase.part,
- org.eclipse.papyrus.uml.diagram.usecase.preferences,
- org.eclipse.papyrus.uml.diagram.usecase.providers,
- org.eclipse.papyrus.uml.diagram.usecase.sheet
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.core.expressions,
- org.eclipse.jface,
- org.eclipse.ui.ide,
- org.eclipse.ui.views,
- org.eclipse.gmf.runtime.emf.core,
- org.eclipse.gmf.runtime.emf.commands.core,
- org.eclipse.gmf.runtime.emf.ui.properties,
- org.eclipse.gmf.runtime.diagram.ui,
- org.eclipse.gmf.runtime.diagram.ui.providers,
- org.eclipse.gmf.runtime.diagram.ui.providers.ide,
- org.eclipse.gmf.runtime.diagram.ui.render,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
- org.eclipse.uml2.uml,
- org.eclipse.gmf.runtime.draw2d.ui,
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
- org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
- org.eclipse.emf.validation,
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.profile;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.appearance;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
- org.eclipse.gmf.runtime.diagram.ui.properties;bundle-version="1.4.2",
- org.eclipse.ui.navigator;bundle-version="3.5.200",
- org.eclipse.ocl.ecore;bundle-version="3.2.0",
- org.eclipse.ui.navigator.resources;bundle-version="3.4.400",
- org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
- org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
- org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.2.0",
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.emf.edit.ui,
- org.eclipse.draw2d;visibility:=reexport,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.edit;visibility:=reexport,
- org.eclipse.gef,
- org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,
- 4.0.0)",
- org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.elementtypesconfigurations;bundle-version="1.2.0",
- org.eclipse.core.databinding.observable,
- org.eclipse.papyrus.infra.gmfdiag.dnd;bundle-version="1.2.0"
-Bundle-Vendor: %providerName
-Eclipse-LazyStart: true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Activator: org.eclipse.papyrus.uml.diagram.usecase.part.UMLDiagramEditorPlugin
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.usecase; singleton:=true
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.uml.diagram.usecase,
+ org.eclipse.papyrus.uml.diagram.usecase.command,
+ org.eclipse.papyrus.uml.diagram.usecase.custom.edit.parts,
+ org.eclipse.papyrus.uml.diagram.usecase.custom.factory,
+ org.eclipse.papyrus.uml.diagram.usecase.custom.providers,
+ org.eclipse.papyrus.uml.diagram.usecase.edit.helpers,
+ org.eclipse.papyrus.uml.diagram.usecase.edit.parts,
+ org.eclipse.papyrus.uml.diagram.usecase.edit.policies,
+ org.eclipse.papyrus.uml.diagram.usecase.expressions,
+ org.eclipse.papyrus.uml.diagram.usecase.figure,
+ org.eclipse.papyrus.uml.diagram.usecase.handler,
+ org.eclipse.papyrus.uml.diagram.usecase.helper,
+ org.eclipse.papyrus.uml.diagram.usecase.navigator,
+ org.eclipse.papyrus.uml.diagram.usecase.parsers,
+ org.eclipse.papyrus.uml.diagram.usecase.part,
+ org.eclipse.papyrus.uml.diagram.usecase.preferences,
+ org.eclipse.papyrus.uml.diagram.usecase.providers,
+ org.eclipse.papyrus.uml.diagram.usecase.sheet
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.core.expressions,
+ org.eclipse.jface,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.views,
+ org.eclipse.gmf.runtime.emf.core,
+ org.eclipse.gmf.runtime.emf.commands.core,
+ org.eclipse.gmf.runtime.emf.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.gmf.runtime.diagram.ui.providers,
+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,
+ org.eclipse.gmf.runtime.diagram.ui.render,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
+ org.eclipse.uml2.uml,
+ org.eclipse.gmf.runtime.draw2d.ui,
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.common;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.2.0",
+ org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.2.0",
+ org.eclipse.emf.validation,
+ org.eclipse.papyrus.infra.services.edit;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.profile;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.appearance;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.diagram.ui.properties;bundle-version="1.4.2",
+ org.eclipse.ui.navigator;bundle-version="3.5.200",
+ org.eclipse.ocl.ecore;bundle-version="3.2.0",
+ org.eclipse.ui.navigator.resources;bundle-version="3.4.400",
+ org.eclipse.papyrus.infra.core;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.2.0",
+ org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.2.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.draw2d;visibility:=reexport,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.gef,
+ org.eclipse.gmf.tooling.runtime;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.infra.elementtypesconfigurations;bundle-version="1.2.0",
+ org.eclipse.core.databinding.observable,
+ org.eclipse.papyrus.infra.gmfdiag.dnd;bundle-version="1.2.0"
+Bundle-Vendor: %providerName
+Eclipse-LazyStart: true
+Bundle-Version: 1.2.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.usecase.part.UMLDiagramEditorPlugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.usecase; singleton:=true
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/plugin.xml
index 359e08f73df..0a94ef2de3a 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/plugin.xml
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/plugin.xml
@@ -1022,6 +1022,14 @@
strategy="org.eclipse.papyrus.uml.diagram.usecase.dnd.strategy.UsecaseToSubjectinUsecaseDiagramDropStrategy">
</strategy>
</extension>
+ <extension point="org.eclipse.papyrus.infra.gmfdiag.common.visualTypeProviders">
+ <?gmfgen generated="true"?>
+ <visualTypeProvider
+ class="org.eclipse.papyrus.uml.diagram.usecase.providers.UMLVisualTypeProvider"
+ diagramType="UseCase">
+ </visualTypeProvider>
+ </extension>
+
</plugin>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/src/org/eclipse/papyrus/uml/diagram/usecase/providers/UMLVisualTypeProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/src/org/eclipse/papyrus/uml/diagram/usecase/providers/UMLVisualTypeProvider.java
new file mode 100644
index 00000000000..d892898338d
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/src/org/eclipse/papyrus/uml/diagram/usecase/providers/UMLVisualTypeProvider.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.diagram.usecase.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.AbstractVisualTypeProvider;
+import org.eclipse.papyrus.uml.diagram.usecase.part.UMLVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class UMLVisualTypeProvider extends AbstractVisualTypeProvider {
+
+ /**
+ * @generated
+ */
+ public UMLVisualTypeProvider() {
+ super();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public IElementType getElementType(Diagram diagram, String viewType) {
+ IElementType result = null;
+
+ try {
+ result = UMLElementTypes.getElementType(Integer.parseInt(viewType));
+ } catch (NumberFormatException e) {
+ // Not supported by this diagram
+ }
+
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getNodeType(View parentView, EObject element) {
+ int result = UMLVisualIDRegistry.getNodeVisualID(parentView, element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public String getLinkType(Diagram diagram, EObject element) {
+ int result = UMLVisualIDRegistry.getLinkWithClassVisualID(element);
+ return (result < 0) ? null : Integer.toString(result);
+ }
+
+}

Back to the top