Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamille Letavernier2015-04-27 08:44:36 -0400
committerCamille Letavernier2015-04-27 08:44:36 -0400
commit1693abeef15208dabad6e12b05f983e4e41535d5 (patch)
tree43011d187f1a26075751f2193aee9cfa74125d08
parenteb557d11ab23518fcbe3de6d447b6a05d644e6c7 (diff)
parentf5d0993829fc8d5302fe932a1d69bc0ec7e15ce3 (diff)
downloadorg.eclipse.papyrus-bugs/463469-properties.tar.gz
org.eclipse.papyrus-bugs/463469-properties.tar.xz
org.eclipse.papyrus-bugs/463469-properties.zip
Synchronize with masterbugs/463469-properties
-rw-r--r--examples/uml/org.eclipse.papyrus.uml.textual.editors.example/model/UML/ui/PropertyExample.xwt3
-rw-r--r--extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/META-INF/MANIFEST.MF6
-rw-r--r--extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/src/org/eclipse/papyrus/cdo/uml/diagram/internal/ui/wizards/CDONewModelStorageProvider.java4
-rw-r--r--extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ImportTransformationLauncher.java1
-rw-r--r--extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/RepairStereotypes.java11
-rw-r--r--extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlModelWizard.java4
-rw-r--r--extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlProjectWizard.java4
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/META-INF/MANIFEST.MF39
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/Protocol.custom155
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/SimpleUMLRT.custom43
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_in.gifbin0 -> 541 bytes
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_inout.gifbin0 -> 910 bytes
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_out.gifbin0 -> 327 bytes
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_undefined.gifbin0 -> 333 bytes
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/newchildmenu/newChildMenu.xmi4
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/plugin.xml12
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/provider/UMLRTFilteredLabelProvider.java61
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java35
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetFilteredProtocolsPackageElementsQuery.java39
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInFromProtocolContainerQuery.java2
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInOutFromProtocolContainerQuery.java2
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageOutFromProtocolContainerQuery.java2
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetRTMessagesInQuery.java38
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/HideProtocolContainersQuery.java50
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainerQuery.java15
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainersContainerQuery.java31
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolQuery.java32
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTModelWizard.java5
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTProjectWizard.java4
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.elementtypesconfigurations16
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.umlclassdiagram.elementtypesconfigurations10
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/IUMLRTElementTypes.java5
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/UMLRTElementTypesEnumerator.java8
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/BehavioredClassifierEditHelperAdvice.java4
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/MessageSetEditHelperAdvice.java68
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/ProtocolContainerEditHelperAdvice.java37
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageInMatcher.java34
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageMatcher.java33
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/MessageSetUtils.java15
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolContainerUtils.java214
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolUtils.java43
-rw-r--r--extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/RTMessageUtils.java73
-rw-r--r--plugins/developer/org.eclipse.papyrus.doc/intro/firststeps.xml2
-rw-r--r--plugins/developer/org.eclipse.papyrus.doc/intro/overview.xml2
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.uml.textedit.doc/META-INF/MANIFEST.MF2
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.uml.textedit.doc/site/mediawiki/textedit.mediawiki4
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedMode.pngbin0 -> 2848 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedModeXText.pngbin0 -> 2453 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonSwitch.pngbin0 -> 1919 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonsEdit.pngbin0 -> 1213 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/preferencesMultiplicityEditor.pngbin0 -> 26511 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleMode.pngbin0 -> 1477 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleModeDisabled.pngbin0 -> 1441 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view-main-toc.xml14
-rw-r--r--plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view.mediawiki692
-rw-r--r--plugins/editor/org.eclipse.papyrus.editor/plugin.xml100
-rw-r--r--plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/NextTabHandler.java29
-rw-r--r--plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/PreviousTabHandler.java29
-rw-r--r--plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/TraverseTabHandler.java69
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java304
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java2826
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/ExpansionElementDropStrategy.java382
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java55
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/icons/Switch_12x12.gifbin0 -> 304 bytes
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/AbstractReferenceDialog.java178
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/IReferenceValueEditor.java73
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultiplicityDialog.java605
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/ReferenceDialog.java28
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextReferenceDialog.java38
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextStringEditor.java122
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/Messages.java273
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/messages.properties111
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/MultiplicityConstants.java45
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLModelWizard.java11
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLProjectWizard.java9
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/BDDconfig.xmi63
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/palette/blockDiagram.paletteconfiguration141
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/factory/PortViewFactory.java69
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeStructureDiagram.elementtypesconfigurations795
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14UMLClassDiagram.elementtypesconfigurations493
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration56
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.parametric/resources/palette/parametricDiagramPalette.paletteconfiguration795
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.requirement/resources/palette/requirementDiagram.paletteconfiguration900
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.service.types/model/SysML14.elementtypesconfigurations199
-rw-r--r--plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.ui/resources/SysML14.creationmenumodel29
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editparts/BorderItemNameEditPart.java1358
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/META-INF/MANIFEST.MF4
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/canonical/LifelineSemanticChildrenStrategy.java76
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/parts/CustomLifelineEditPart.java39
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/edit/policies/CustomDiagramDragDropEditPolicy.java21
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/plugin.xml8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/.classpath2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/.project10
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/DeveloperDoc.html1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/META-INF/MANIFEST.MF21
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/build.properties9
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/help/helpContext.xml16
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/icons/checked.gifbin0 -> 1627 bytes
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/icons/unchecked.gifbin0 -> 1628 bytes
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/imgDOC/ClassDiagram.pngbin0 -> 3683 bytes
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/imgDOC/Component_Diagram.pngbin0 -> 5937 bytes
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/imgDOC/NewComponentDiagram.pngbin0 -> 3622 bytes
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/imgDOC/UseCaseDiagram.pngbin0 -> 29068 bytes
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/model/model.di2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/model/model.notation818
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/model/model.uml302
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/plugin.xml15
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/schema/templates.exsd57
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/AbstractNewModelStorageProvider.java84
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/AbstractSelectStorageProviderPart.java83
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/CreateModelWizard.java855
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/CreateSeveralModelsWizard.java239
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/INewModelStorageProvider.java129
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/InitDiagramAction.java86
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/InitModelWizard.java278
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/Messages.java161
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/ModelCopyWizard.java203
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/NewModelStorageProviderRegistry.java260
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/NewPapyrusProjectWithMultiModelsWizard.java90
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/NewPapyrusProjectWizard.java154
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/NewProjectAction.java42
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/WorkspaceNewModelStorageProvider.java154
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/action/NewProjectAction.java59
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/category/DiagramCategoryRegistry.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/category/NewPapyrusModelCommand.java43
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/category/PapyrusModelFromExistingDomainModelCommand.java84
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/command/CopyModelCommand.java42
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/command/InitFromTemplateCommand.java204
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/command/NewPapyrusModelCommand.java51
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/command/PapyrusModelFromExistingDomainModelCommand.java109
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/kind/DiagramKindComposite.java344
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/kind/DiagramKindLabelProvider.java2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/messages/Messages.java172
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/messages/messages.properties (renamed from plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/messages.properties)20
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/NewDiagramForExistingModelPage.java71
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/NewModelFilePage.java47
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/PapyrusProjectCreationPage.java113
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/SelectDiagramCategoryPage.java81
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/SelectDiagramKindPage.java277
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/SelectRootElementPage.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/pages/SelectStorageProviderPage.java13
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/providers/AbstractNewModelStorageProvider.java58
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/providers/AbstractSelectStorageProviderPart.java63
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/providers/INewModelStorageProvider.java113
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/providers/NewModelStorageProviderRegistry.java223
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/providers/WorkspaceNewModelStorageProvider.java169
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/AbstractModelTemplateContentProvider.java137
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/InitFromTemplateCommand.java266
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/ModelTemplateDescription.java35
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/ModelTemplateTransfoProvider.java59
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/ModelTemplatesContentProvider.java108
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/ModelTemplatesLabelProvider.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/template/SelectModelTemplateComposite.java167
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/transformation/IGenerator.java28
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/transformation/QVToGenerator.java154
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/utils/SettingsHelper.java (renamed from plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/SettingsHelper.java)23
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/utils/WizardsHelper.java8
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/widget/ExtensionFilter.java62
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/widget/FileChooser.java155
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/wizards/CreateModelWizard.java943
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/wizards/CreateSeveralModelsWizard.java218
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/wizards/InitModelWizard.java235
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/wizards/ModelCopyWizard.java172
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/wizards/NewPapyrusProjectWithMultiModelsWizard.java99
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/src/org/eclipse/papyrus/uml/diagram/wizards/wizards/NewPapyrusProjectWizard.java158
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/transforms/ProfileCopyTemplateTransfo.qvto10
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards/transforms/UMLCopyTemplateTransfo.qvto10
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.perspective/plugin.xml2
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.perspective/src/org/eclipse/papyrus/uml/perspective/PapyrusPerspective.java8
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.validation/src/org/eclipse/papyrus/uml/service/validation/OCLEValidatorAdapter.java20
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.templaterepository/META-INF/MANIFEST.MF6
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.templaterepository/plugin.xml17
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.templaterepository/src/org/eclipse/papyrus/uml/templaterepository/Activator.java9
-rwxr-xr-xplugins/uml/org.eclipse.papyrus.uml.templaterepository/src/org/eclipse/papyrus/uml/templaterepository/ImportUMLPrimitiveTypesInModel.java96
-rwxr-xr-xplugins/uml/org.eclipse.papyrus.uml.templaterepository/src/org/eclipse/papyrus/uml/templaterepository/ImportUMLPrimitiveTypesInProfile.java103
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties.xtext/model/environment.xmi5
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties.xtext/src/org/eclipse/papyrus/uml/properties/xtext/widget/MultiplicityXTextValueEditor.java142
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties.xtext/src/org/eclipse/papyrus/uml/properties/xtext/widget/UMLXtextReferenceValueEditor.java110
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties.xtext/src/org/eclipse/papyrus/uml/properties/xtext/widget/property/MultiplicityXTextDialog.java117
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/META-INF/MANIFEST.MF1
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/Environment.xmi5
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/MemberEnd.xwt37
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/MultipleProperty.xwt66
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleActionInputPin.xwt106
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleConnectorEnd.xwt47
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleInputPin.xwt106
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleMultiplicityElement.xwt45
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleOutputPin.xwt106
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleParameter.xwt84
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SinglePin.xwt106
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SinglePort.xwt118
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleProperty.xwt83
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleStructuralFeature.xwt82
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleValuePin.xwt106
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/Model/UML/ui/SingleVariable.xwt76
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/plugin.xml175
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/messages/Messages.java114
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/messages/messages.properties28
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/modelelement/MemberEndModelElement.java284
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/preferences/MultiplicityEditorPreferenceInitializer.java42
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/preferences/MultiplicityEditorPreferencePage.java91
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/preferences/MultiplicityEditorPreferences.java51
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/widgets/ExtendedMultiplicityDialog.java74
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/widgets/MultiplicityDialog.java147
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.ui/plugin.xml26
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.ui/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/ui/constraint/MultiplicityLowerValueDirectEditorConstraint.java67
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.ui/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/ui/constraint/MultiplicityUpperValueDirectEditorConstraint.java67
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.ui/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/ui/contribution/MultiplicityLowerValueSpecificationXtextDirectEditorConfiguration.java51
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.ui/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/ui/contribution/MultiplicityUpperValueSpecificationXtextDirectEditorConfiguration.java51
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.ui/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/ui/contribution/ValueSpecificationXtextDirectEditorConfiguration.java4
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.utils/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/utils/commands/AbstractMultiplicityValueSpecificationSetCommand.java110
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.utils/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/utils/commands/MultiplicityLowerValueSetCommand.java129
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.utils/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/utils/commands/MultiplicityUpperValueSetCommand.java139
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.xtext.utils/src/org/eclipse/papyrus/uml/textedit/valuespecification/xtext/utils/commands/ValueSpecificationSetCommand.java6
-rw-r--r--plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/ExtendedMultiplicityObservableValue.java85
-rw-r--r--plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/MultiplicityObservableValue.java453
-rw-r--r--tests/junit/extraplugins/sysml14/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/SysML14CompositeStructureDiagramElementTypesTest.java645
-rw-r--r--tests/junit/extraplugins/sysml14/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/SysML14UMLClassDiagramElementTypesTest.java104
-rw-r--r--tests/junit/extraplugins/sysml14/org.eclipse.papyrus.sysml14.service.types.tests/src/org/eclipse/papyrus/sysml14/service/types/tests/SysML14ElementTypesTest.java32
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/org.eclipse.papyrus.uml.diagram.sequence.tests.launch85
-rwxr-xr-x[-rw-r--r--]tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/META-INF/MANIFEST.MF12
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateModelFromExistingModelWizard.java19
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateModelWizard.java17
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestInitModelWizard.java15
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewModelWizardBase.java16
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewProjectWizard.java5
-rw-r--r--tests/junit/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.tests/src/org/eclipse/papyrus/uml/textedit/valuespecification/tests/suites/AllTests.java4
-rw-r--r--tests/junit/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.tests/src/org/eclipse/papyrus/uml/textedit/valuespecification/tests/suites/MultiplicityLowerValueSpecificationGrammarTests.java81
-rw-r--r--tests/junit/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.valuespecification.tests/src/org/eclipse/papyrus/uml/textedit/valuespecification/tests/suites/MultiplicityUpperValueSpecificationGrammarTests.java81
230 files changed, 17068 insertions, 9766 deletions
diff --git a/examples/uml/org.eclipse.papyrus.uml.textual.editors.example/model/UML/ui/PropertyExample.xwt b/examples/uml/org.eclipse.papyrus.uml.textual.editors.example/model/UML/ui/PropertyExample.xwt
index afde1ae27a9..c9e45dd834a 100644
--- a/examples/uml/org.eclipse.papyrus.uml.textual.editors.example/model/UML/ui/PropertyExample.xwt
+++ b/examples/uml/org.eclipse.papyrus.uml.textual.editors.example/model/UML/ui/PropertyExample.xwt
@@ -32,7 +32,8 @@
customLabel="defaultEditor"></ppe:ReferenceDialog>
<ppe:CompletionStyledTextReferenceDialog
input="{Binding}" property="UML:TypedElement:type" customLabel="newType"></ppe:CompletionStyledTextReferenceDialog>
- <ppe:StringCombo input="{Binding}" property="Multiplicity:multiplicity"></ppe:StringCombo>
+ <xtexteditor:MultiplicityXTextDialog
+ property="Multiplicity:multiplicity" input="{Binding}"></xtexteditor:MultiplicityXTextDialog>
<ppe:ReferenceDialog input="{Binding}"
property="UML:Property:defaultValue"></ppe:ReferenceDialog>
<xtexteditor:UMLStyledTextReferenceDialog
diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/META-INF/MANIFEST.MF b/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/META-INF/MANIFEST.MF
index d03ebdcfae2..a7d88c068ca 100644
--- a/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/META-INF/MANIFEST.MF
+++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/META-INF/MANIFEST.MF
@@ -15,10 +15,8 @@ Bundle-ActivationPolicy: lazy
Bundle-Version: 1.1.0.qualifier
Bundle-Localization: plugin
Bundle-Name: %pluginName
-Bundle-Activator: org.eclipse.papyrus.cdo.uml.diagram.internal.ui.Acti
- vator
+Bundle-Activator: org.eclipse.papyrus.cdo.uml.diagram.internal.ui.Activator
Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.cdo.uml.diagram.ui;singleton:
- =true
+Bundle-SymbolicName: org.eclipse.papyrus.cdo.uml.diagram.ui;singleton:=true
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Description: %pluginDescription
diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/src/org/eclipse/papyrus/cdo/uml/diagram/internal/ui/wizards/CDONewModelStorageProvider.java b/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/src/org/eclipse/papyrus/cdo/uml/diagram/internal/ui/wizards/CDONewModelStorageProvider.java
index b125c500137..9b323971238 100644
--- a/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/src/org/eclipse/papyrus/cdo/uml/diagram/internal/ui/wizards/CDONewModelStorageProvider.java
+++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.uml.diagram.ui/src/org/eclipse/papyrus/cdo/uml/diagram/internal/ui/wizards/CDONewModelStorageProvider.java
@@ -33,8 +33,8 @@ import org.eclipse.papyrus.cdo.core.IPapyrusRepository;
import org.eclipse.papyrus.cdo.internal.core.CDOUtils;
import org.eclipse.papyrus.cdo.internal.core.PapyrusRepositoryManager;
import org.eclipse.papyrus.uml.diagram.wizards.AbstractNewModelStorageProvider;
-import org.eclipse.papyrus.uml.diagram.wizards.CreateModelWizard;
-import org.eclipse.papyrus.uml.diagram.wizards.InitModelWizard;
+import org.eclipse.papyrus.uml.diagram.wizards.wizards.CreateModelWizard;
+import org.eclipse.papyrus.uml.diagram.wizards.wizards.InitModelWizard;
import org.eclipse.swt.widgets.Composite;
import com.google.common.base.Supplier;
diff --git a/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ImportTransformationLauncher.java b/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ImportTransformationLauncher.java
index 7a7fdfe0daa..d3135f553f4 100644
--- a/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ImportTransformationLauncher.java
+++ b/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ImportTransformationLauncher.java
@@ -698,6 +698,7 @@ public class ImportTransformationLauncher {
options.put(Transaction.OPTION_NO_UNDO, true);
options.put(Transaction.OPTION_NO_VALIDATION, true);
options.put(Transaction.OPTION_NO_TRIGGERS, true);
+ options.put(Transaction.OPTION_UNPROTECTED, true);
// We're in a batch environment, with no undo/redo support. Run a vanilla transaction to improve performances
Transaction fastTransaction = internalDomain.startTransaction(false, options);
diff --git a/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/RepairStereotypes.java b/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/RepairStereotypes.java
index f13de92d7e1..db122ffe79f 100644
--- a/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/RepairStereotypes.java
+++ b/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/RepairStereotypes.java
@@ -78,7 +78,7 @@ public class RepairStereotypes {
* Finds all zombie stereotypes, and repair them with the default action.
*
* If the profile can't be found automatically, the profileMappings map is used
- *
+ *
* @throws InterruptedException
* @throws RollbackException
*/
@@ -97,13 +97,13 @@ public class RepairStereotypes {
for (Resource resource : resourcesToRepair) {
Element rootElement = (Element) EcoreUtil.getObjectByType(resource.getContents(), UMLPackage.Literals.ELEMENT);
-
- if (rootElement == null || rootElement.getNearestPackage() == null){
+
+ if (rootElement == null || rootElement.getNearestPackage() == null) {
continue;
}
-
+
Package rootPackage = rootElement.getNearestPackage();
-
+
Collection<ProfileApplication> profileApplications = Lists.newArrayList();
for (TreeIterator<EObject> iter = EcoreUtil.getAllProperContents(Collections.singleton(rootPackage), false); iter.hasNext();) {
EObject next = iter.next();
@@ -145,6 +145,7 @@ public class RepairStereotypes {
options.put(Transaction.OPTION_NO_UNDO, true);
options.put(Transaction.OPTION_NO_VALIDATION, true);
options.put(Transaction.OPTION_NO_TRIGGERS, true);
+ options.put(Transaction.OPTION_UNPROTECTED, true);
// We're in a batch environment, with no undo/redo support. Run a vanilla transaction to improve performances
Transaction fastTransaction = internalDomain.startTransaction(false, options);
diff --git a/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlModelWizard.java b/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlModelWizard.java
index 69d92a15111..ab02794cf67 100644
--- a/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlModelWizard.java
+++ b/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlModelWizard.java
@@ -71,4 +71,8 @@ public class NewRobotmlModelWizard extends CreateModelWizard {
// here RobotML is the only available category
}
+ @Override
+ public boolean isPapyrusRootWizard() {
+ return false;
+ }
}
diff --git a/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlProjectWizard.java b/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlProjectWizard.java
index 476eea946ea..b04014872cb 100644
--- a/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlProjectWizard.java
+++ b/extraplugins/robotml/org.eclipse.papyrus.robotml.diagram.ui/src/org/eclipse/papyrus/robotml/diagram/ui/NewRobotmlProjectWizard.java
@@ -69,5 +69,9 @@ public class NewRobotmlProjectWizard extends NewPapyrusProjectWizard {
return new String[] { CreateRobotmlModelCommand.COMMAND_ID };
}
+ @Override
+ public boolean isPapyrusRootWizard() {
+ return false;
+ }
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/META-INF/MANIFEST.MF b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/META-INF/MANIFEST.MF
index 80131cb47bb..e61c2bc8a30 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/META-INF/MANIFEST.MF
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/META-INF/MANIFEST.MF
@@ -1,27 +1,26 @@
Manifest-Version: 1.0
Bundle-SymbolicName: org.eclipse.papyrus.umlrt.ui;singleton:=true
-Export-Package: org.eclipse.papyrus.umlrt.ui
+Export-Package: org.eclipse.papyrus.umlrt.ui,org.eclipse.papyrus.umlrt
+ .ui.provider,org.eclipse.papyrus.umlrt.ui.queries
Bundle-Name: UML-RT UI plugin
Bundle-Version: 1.1.0.qualifier
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.1.0",
- org.eclipse.papyrus.umlrt;bundle-version="1.1.0",
- org.eclipse.papyrus.infra.newchild;bundle-version="1.1.0",
- org.eclipse.papyrus.infra.elementtypesconfigurations;bundle-version="1.1.0",
- org.eclipse.emf.ecore,
- org.eclipse.uml2.uml,
- org.eclipse.papyrus.emf.facet.efacet.core;bundle-version="1.1.0",
- org.eclipse.papyrus.emf.facet.query.java.core;bundle-version="1.1.0",
- org.eclipse.papyrus.uml.tools;bundle-version="1.1.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.1.0",
- org.eclipse.papyrus.emf.facet.custom.metamodel;bundle-version="1.1.0",
- org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.9.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.1.0",
- org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="1.1.0",
- org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.1.0",
- org.eclipse.papyrus.emf.facet.custom.core;bundle-version="1.1.0",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.1.0"
+Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.pa
+ pyrus.uml.diagram.common;bundle-version="1.1.0",org.eclipse.papyrus.u
+ mlrt;bundle-version="1.1.0",org.eclipse.papyrus.infra.newchild;bundle
+ -version="1.1.0",org.eclipse.papyrus.infra.elementtypesconfigurations
+ ;bundle-version="1.1.0",org.eclipse.emf.ecore,org.eclipse.uml2.uml,or
+ g.eclipse.papyrus.emf.facet.efacet.core;bundle-version="1.1.0",org.ec
+ lipse.papyrus.emf.facet.query.java.core;bundle-version="1.1.0",org.ec
+ lipse.papyrus.uml.tools;bundle-version="1.1.0",org.eclipse.papyrus.in
+ fra.emf;bundle-version="1.1.0",org.eclipse.papyrus.emf.facet.custom.m
+ etamodel;bundle-version="1.1.0",org.eclipse.gmf.runtime.emf.type.core
+ ;bundle-version="1.9.0",org.eclipse.papyrus.infra.core.log;bundle-ver
+ sion="1.1.0",org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="
+ 1.1.0",org.eclipse.papyrus.infra.services.labelprovider;bundle-versio
+ n="1.1.0",org.eclipse.papyrus.emf.facet.custom.core;bundle-version="1
+ .1.0",org.eclipse.papyrus.infra.widgets;bundle-version="1.1.0",org.ec
+ lipse.papyrus.uml.modelexplorer;bundle-version="1.1.0",org.eclipse.pa
+ pyrus.views.modelexplorer;bundle-version="1.1.0"
Bundle-ManifestVersion: 2
Bundle-Activator: org.eclipse.papyrus.umlrt.ui.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/Protocol.custom b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/Protocol.custom
index e64f482049b..3bb6d1bd92d 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/Protocol.custom
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/Protocol.custom
@@ -14,9 +14,9 @@
rank="-1">
<eClassifiers
xsi:type="efacet:Facet"
- name="ProtocolContainerAsAProtocol"
+ name="ProtocolContainerFacet"
documentation="This element represents the Package stereotyped PackageContainer as protocol definition"
- conformanceTypedElement="//ProtocolContainerAsAProtocol/isProtocolContainer">
+ conformanceTypedElement="//ProtocolContainerFacet/isProtocolContainer">
<extendedMetaclass
href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
<facetOperations
@@ -31,131 +31,116 @@
</facetOperations>
</eClassifiers>
<eClassifiers
- xsi:type="custom:EClassCustomization"
- name="ProtocolContainerAsMainProtocolEntry"
- documentation="Customize the display of a Protocol Container as a Protocol definition"
- conformanceTypedElement="//ProtocolContainerAsAProtocol/isProtocolContainer">
+ xsi:type="efacet:Facet"
+ name="ProtocolContainerContainersFacet"
+ documentation="This element represents the Packages that contain ProtocolContainers">
<extendedMetaclass
href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
<facetOperations
- name="GetProtocolImage">
+ name="isProtocolContainersContainer">
<eType
xsi:type="ecore:EDataType"
- href="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom_primitive_types#//Image"/>
- <eParameters
- name="eObject">
- <eType
- xsi:type="ecore:EClass"
- href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
- </eParameters>
+ href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<query
xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetProtocolImageQuery"/>
- <override
- xsi:type="efacet:FacetOperation"
- href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/image"/>
+ implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.IsProtocolContainersContainerQuery"/>
</facetOperations>
- <extendedFacets
- href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject"/>
</eClassifiers>
<eClassifiers
xsi:type="custom:FacetCustomization"
- name="ProtocolContainer_MessagesContainer"
- documentation="Representation of the operations contained in the &quot;In&quot; Interface holder"
- extendedFacets="//ProtocolContainerAsAProtocol"
- customizedFacet="//ProtocolContainerAsAProtocol">
+ name="ProtocolContainerHidden"
+ documentation="hide the protocol containers from their parent package"
+ extendedFacets="//ProtocolContainerContainersFacet">
<facetElements
xsi:type="efacet:FacetReference"
- name="in"
- lowerBound="-1"
+ name="filteredPackagedElements"
upperBound="-1"
derived="true"
- documentation="Representation of all the operations for the given protocol, direction in">
+ documentation="Representation of the packaged Elements, replacing protocolcontainers by protocols">
<eType
xsi:type="ecore:EClass"
- href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ href="http://www.eclipse.org/uml2/5.0.0/UML#//PackageableElement"/>
<query
xsi:type="query:OperationCallQuery"
- operation="//ProtocolContainer_MessagesContainer/GetMessageInFromProtocolContainer"/>
+ operation="//ProtocolContainerHidden/GetFilteredProtocolsPackageElements"/>
</facetElements>
- <facetElements
- xsi:type="efacet:FacetReference"
- name="out"
- lowerBound="-1"
- upperBound="-1"
- derived="true"
- documentation="Representation of all the operations for the given protocol, direction out">
- <eType
- xsi:type="ecore:EClass"
- href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
- <query
- xsi:type="query:OperationCallQuery"
- operation="//ProtocolContainer_MessagesContainer/GetMessageOutFromProtocolContainer"/>
- </facetElements>
- <facetElements
- xsi:type="efacet:FacetReference"
- name="inout"
- lowerBound="-1"
- upperBound="-1"
- derived="true"
- documentation="Representation of all the operations for the given protocol, both direction">
+ <facetOperations
+ name="HideProtocolContainers">
<eType
- xsi:type="ecore:EClass"
- href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ xsi:type="ecore:EDataType"
+ href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters
+ name="eStructuralFeature">
+ <eType
+ xsi:type="ecore:EClass"
+ href="http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+ </eParameters>
<query
- xsi:type="query:OperationCallQuery"
- operation="//ProtocolContainer_MessagesContainer/GetMessageInOutFromProtocolContainer"/>
- </facetElements>
+ xsi:type="javaQuery:JavaQuery"
+ implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.HideProtocolContainersQuery"/>
+ <override
+ xsi:type="efacet:FacetOperation"
+ href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/isVisible"/>
+ </facetOperations>
<facetOperations
- name="GetMessageInFromProtocolContainer"
+ name="GetFilteredProtocolsPackageElements"
upperBound="-1">
<eType
xsi:type="ecore:EClass"
- href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ href="http://www.eclipse.org/uml2/5.0.0/UML#//PackageableElement"/>
<query
xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetMessageInFromProtocolContainerQuery"/>
+ implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetFilteredProtocolsPackageElementsQuery"/>
</facetOperations>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="efacet:Facet"
+ name="ProtocolFacet"
+ documentation="Facet that represents Protocol Collaboration as the main holder for RT protocols">
+ <extendedMetaclass
+ href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
<facetOperations
- name="GetMessageOutFromProtocolContainer"
- upperBound="-1">
+ name="isProtocol">
<eType
- xsi:type="ecore:EClass"
- href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ xsi:type="ecore:EDataType"
+ href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<query
xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetMessageOutFromProtocolContainerQuery"/>
+ implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.IsProtocolQuery"/>
</facetOperations>
- <facetOperations
- name="GetMessageInOutFromProtocolContainer"
- upperBound="-1">
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="custom:FacetCustomization"
+ name="ProtocolContainment_OnlyRTMessages"
+ documentation="Display RTMessages under the protocol and nothing else"
+ extendedFacets="//ProtocolFacet">
+ <facetElements
+ xsi:type="efacet:FacetReference"
+ name="in"
+ upperBound="-1"
+ volatile="true"
+ transient="true"
+ derived="true">
<eType
xsi:type="ecore:EClass"
href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
<query
- xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetMessageInOutFromProtocolContainerQuery"/>
- </facetOperations>
+ xsi:type="query:OperationCallQuery"
+ operation="//ProtocolContainment_OnlyRTMessages/GetRTMessagesIn"/>
+ </facetElements>
<facetOperations
- name="DisplayMessageSetsOnly">
+ name="GetRTMessagesIn"
+ upperBound="-1"
+ documentation="Returns all Messages from the IN MessageSets">
<eType
- xsi:type="ecore:EDataType"
- href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
- <eParameters
- name="eStructuralFeature">
- <eType
- xsi:type="ecore:EClass"
- href="http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
- </eParameters>
+ xsi:type="ecore:EClass"
+ href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
<query
xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.DisplayMessageSetsOnlyQuery"/>
- <override
- xsi:type="efacet:FacetOperation"
- href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/isVisible"/>
+ implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetRTMessagesInQuery"/>
</facetOperations>
<facetOperations
- name="NotCollapseMessageSets">
+ name="DisplayMessageSetsOnly">
<eType
xsi:type="ecore:EDataType"
href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
@@ -167,10 +152,10 @@
</eParameters>
<query
xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.NotCollapseMessageSetQuery"/>
+ implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.DisplayMessagesOnlyQuery"/>
<override
xsi:type="efacet:FacetOperation"
- href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/collapseLink"/>
+ href="platform:/plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/isVisible"/>
</facetOperations>
</eClassifiers>
</custom:Customization>
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/SimpleUMLRT.custom b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/SimpleUMLRT.custom
index dcd4c17f919..76ff4a53c90 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/SimpleUMLRT.custom
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/facet/SimpleUMLRT.custom
@@ -1,38 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<custom:Customization
- xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:custom="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom"
- xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:efacet="http://www.eclipse.org/papyrus/emf/facet/efacet/0.2.incubation/efacet"
- xmlns:javaQuery="http://www.eclipse.org/papyrus/emf/facet/query/java/0.2.incubation/javaquery"
- name="simpleUMLRT"
- documentation="Display structure of a UML-RT model">
- <eClassifiers
- xsi:type="custom:EClassCustomization"
- name="Element">
- <extendedMetaclass
- href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <facetOperations
- name="GetLabel">
- <eType
- xsi:type="ecore:EDataType"
- href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eParameters
- name="eObject">
- <eType
- xsi:type="ecore:EClass"
- href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+<custom:Customization xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:custom="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:efacet="http://www.eclipse.org/papyrus/emf/facet/efacet/0.2.incubation/efacet" xmlns:javaQuery="http://www.eclipse.org/papyrus/emf/facet/query/java/0.2.incubation/javaquery" name="simpleUMLRT" documentation="Display structure of a UML-RT model">
+ <eClassifiers xsi:type="custom:EClassCustomization" name="Element">
+ <extendedMetaclass href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ <facetOperations name="GetLabel">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="eObject">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</eParameters>
- <query
- xsi:type="javaQuery:JavaQuery"
- implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetLabelQuery"/>
- <override
- xsi:type="efacet:FacetOperation"
- href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/label"/>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.umlrt.ui.queries.GetLabelQuery"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/label"/>
</facetOperations>
- <extendedFacets
- href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject"/>
+ <extendedFacets href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject"/>
</eClassifiers>
</custom:Customization>
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_in.gif b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_in.gif
new file mode 100644
index 00000000000..19567890aa8
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_in.gif
Binary files differ
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_inout.gif b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_inout.gif
new file mode 100644
index 00000000000..d22392de13e
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_inout.gif
Binary files differ
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_out.gif b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_out.gif
new file mode 100644
index 00000000000..4fb41501036
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_out.gif
Binary files differ
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_undefined.gif b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_undefined.gif
new file mode 100644
index 00000000000..486faff8aac
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/icons/rt_message_undefined.gif
Binary files differ
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/newchildmenu/newChildMenu.xmi b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/newchildmenu/newChildMenu.xmi
index d4c241bd866..83878d81d7b 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/newchildmenu/newChildMenu.xmi
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/newchildmenu/newChildMenu.xmi
@@ -30,6 +30,6 @@
label="RTMessageSet"
elementTypeIdRef="org.eclipse.papyrus.umlrt.RTMessageSet"/>
<menu xsi:type="ElementCreationMenuModel:CreationMenu"
- label="In Message"
- elementTypeIdRef="org.eclipse.papyrus.umlrt.OperationAsMessageIn"/>
+ label="IN RTMessage "
+ elementTypeIdRef="org.eclipse.papyrus.umlrt.RTMessageIn"/>
</ElementCreationMenuModel:Folder>
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/plugin.xml b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/plugin.xml
index a7f15b9b660..841d8e46318 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/plugin.xml
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/plugin.xml
@@ -48,6 +48,12 @@
<extension
point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
<modeldeclaration
+ file="facet/Protocol.custom">
+ </modeldeclaration>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
+ <modeldeclaration
file="facet/SimpleUMLRT.custom">
</modeldeclaration>
</extension>
@@ -58,11 +64,5 @@
provider="org.eclipse.papyrus.umlrt.ui.provider.UMLRTFilteredLabelProvider">
</labelProvider>
</extension>
- <extension
- point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
- <modeldeclaration
- file="facet/Protocol.custom">
- </modeldeclaration>
- </extension>
</plugin>
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/provider/UMLRTFilteredLabelProvider.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/provider/UMLRTFilteredLabelProvider.java
index 7d9597927a7..36c4669a6a1 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/provider/UMLRTFilteredLabelProvider.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/provider/UMLRTFilteredLabelProvider.java
@@ -17,6 +17,7 @@ import java.util.HashMap;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
import org.eclipse.jface.viewers.ILabelProviderListener;
@@ -26,7 +27,7 @@ import org.eclipse.papyrus.uml.tools.providers.UMLLabelProvider;
import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
import org.eclipse.papyrus.umlrt.custom.IUMLRTElementTypes;
import org.eclipse.papyrus.umlrt.custom.UMLRTElementTypesEnumerator;
-import org.eclipse.papyrus.umlrt.custom.utils.MessageSetUtils;
+import org.eclipse.papyrus.umlrt.custom.utils.RTMessageUtils;
import org.eclipse.papyrus.umlrt.ui.Activator;
import org.eclipse.swt.graphics.Image;
import org.eclipse.uml2.uml.Element;
@@ -41,10 +42,10 @@ public class UMLRTFilteredLabelProvider implements IFilteredLabelProvider {
/** path to the icons in the plugin */
protected static String ICON_PATH = "/icons/";
- protected static String RT_MESSAGE_SET_IN_ICON = ICON_PATH + "rt_messageset_in.gif";//$NON-NLS-1$
- protected static String RT_MESSAGE_SET_IN_OUT_ICON = ICON_PATH + "rt_messageset_inout.gif";//$NON-NLS-1$
- protected static String RT_MESSAGE_SET_OUT_ICON = ICON_PATH + "rt_messageset_out.gif";//$NON-NLS-1$
- protected static String RT_MESSAGE_SET_UNDEFINED_ICON = ICON_PATH + "rt_messageset_undefined.gif";//$NON-NLS-1$
+ protected static String RT_MESSAGE_IN_ICON = ICON_PATH + "rt_message_in.gif";//$NON-NLS-1$
+ protected static String RT_MESSAGE_IN_OUT_ICON = ICON_PATH + "rt_message_inout.gif";//$NON-NLS-1$
+ protected static String RT_MESSAGE_OUT_ICON = ICON_PATH + "rt_message_out.gif";//$NON-NLS-1$
+ protected static String RT_MESSAGE_UNDEFINED_ICON = ICON_PATH + "rt_message_undefined.gif";//$NON-NLS-1$
/**
* Default constructor
@@ -75,9 +76,15 @@ public class UMLRTFilteredLabelProvider implements IFilteredLabelProvider {
for (IElementType type : UMLRTElementTypesEnumerator.getAllRTTypes()) {
if (type instanceof ISpecializationType) {
- if(((ISpecializationType) type).getMatcher().matches(semanticObject)) {
- return true;
+ IElementMatcher matcher = ((ISpecializationType) type).getMatcher();
+ if (matcher != null) {
+ if (((ISpecializationType) type).getMatcher().matches(semanticObject)) {
+ return true;
+ }
+ } else {
+ Activator.log.debug("no matcher for this element type: " + type);
}
+
}
}
@@ -106,31 +113,51 @@ public class UMLRTFilteredLabelProvider implements IFilteredLabelProvider {
Image image = null;
// a match was done. give a different icon given the value
switch (matchingTypeMatcher) {
- case IUMLRTElementTypes.RT_MESSAGE_SET_ID:
+// case IUMLRTElementTypes.RT_MESSAGE_SET_ID:
+// // for RT message, direction can give different icons
+//
+// // the element has the RT messageset stereotype applied. It should be possible to retrieve it and even better the direction
+// RTMessageKind kind = MessageSetUtils.getMessageKind(semanticObject);
+// if (kind != null) {
+// switch (kind) {
+// case IN:
+// image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_IN_ICON);
+// break;
+// case OUT:
+// image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_OUT_ICON);
+// break;
+// case IN_OUT:
+// image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_IN_OUT_ICON);
+// break;
+// default:
+// image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_UNDEFINED_ICON);
+// break;
+// }
+// break;
+// }
+// image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_UNDEFINED_ICON);
+// break;
+ case IUMLRTElementTypes.RT_MESSAGE_ID:
// for RT message, direction can give different icons
- // the element has the RT messageset stereotype applied. It should be possible to retrieve it and even better the direction
- RTMessageKind kind = MessageSetUtils.getMessageKind(semanticObject);
+ RTMessageKind kind = RTMessageUtils.getMessageKind(semanticObject);
if (kind != null) {
switch (kind) {
case IN:
- image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_IN_ICON);
+ image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_IN_ICON);
break;
case OUT:
- image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_OUT_ICON);
+ image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_OUT_ICON);
break;
case IN_OUT:
- image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_IN_OUT_ICON);
+ image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_IN_OUT_ICON);
break;
default:
- image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_UNDEFINED_ICON);
+ image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_UNDEFINED_ICON);
break;
}
break;
}
- image = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage(Activator.PLUGIN_ID, RT_MESSAGE_SET_UNDEFINED_ICON);
- break;
-
default:
image = getElementImage(matchingTypeMatcher, semanticObject);
break;
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java
new file mode 100644
index 00000000000..c0531887cb9
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/DisplayMessagesOnlyQuery.java
@@ -0,0 +1,35 @@
+package org.eclipse.papyrus.umlrt.ui.queries;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetReference;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.ParameterValue;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.uml2.uml.Collaboration;
+
+public class DisplayMessagesOnlyQuery implements IJavaQuery2<Collaboration, Boolean> {
+
+ public Boolean evaluate(final Collaboration context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+
+ // display only in / out and inout features. They should not be collapsed also
+ ParameterValue parameterValue = parameterValues.getParameterValueByName("eStructuralFeature");
+ if (parameterValue == null) {
+ return false;
+ }
+ EStructuralFeature eStructuralFeature = (EStructuralFeature) parameterValue.getValue();
+ // the eStructure is a containmentReference or Facet Reference?
+ if (eStructuralFeature instanceof FacetReference) {
+ // check this is in / out or inout
+ String name = ((FacetReference)eStructuralFeature).getName();
+ if("in".equals(name) || "out".equals(name) || "inout".equals(name) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetFilteredProtocolsPackageElementsQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetFilteredProtocolsPackageElementsQuery.java
new file mode 100644
index 00000000000..b44fdb4b35e
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetFilteredProtocolsPackageElementsQuery.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.umlrt.ui.queries;
+
+import java.util.List;
+
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.umlrt.custom.utils.ProtocolContainerUtils;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * query operation to return the list of packaged elements, but replace protocol containers by protocols
+ */
+public class GetFilteredProtocolsPackageElementsQuery implements IJavaQuery2<Element, List<PackageableElement>> {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<PackageableElement> evaluate(Element source, IParameterValueList2 parameterValues, IFacetManager facetManager) throws DerivedTypedElementException {
+ return ProtocolContainerUtils.getFilteredPackagedElements(source);
+ }
+
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInFromProtocolContainerQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInFromProtocolContainerQuery.java
index 1b3c164d7f0..b247c100606 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInFromProtocolContainerQuery.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInFromProtocolContainerQuery.java
@@ -27,6 +27,6 @@ public class GetMessageInFromProtocolContainerQuery implements IJavaQuery2<Packa
final IParameterValueList2 parameterValues,
final IFacetManager facetManager)
throws DerivedTypedElementException {
- return ProtocolContainerUtils.getAllInOperations(context);
+ return ProtocolContainerUtils.getAllInRTMessages(context);
}
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInOutFromProtocolContainerQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInOutFromProtocolContainerQuery.java
index 727d41b3e5f..1fb5303ed88 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInOutFromProtocolContainerQuery.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageInOutFromProtocolContainerQuery.java
@@ -27,6 +27,6 @@ public class GetMessageInOutFromProtocolContainerQuery implements IJavaQuery2<Pa
final IParameterValueList2 parameterValues,
final IFacetManager facetManager)
throws DerivedTypedElementException {
- return ProtocolContainerUtils.getAllInOutOperations(context);
+ return ProtocolContainerUtils.getAllInOutRTMessages(context);
}
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageOutFromProtocolContainerQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageOutFromProtocolContainerQuery.java
index e674be711b1..aab7b5977d7 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageOutFromProtocolContainerQuery.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetMessageOutFromProtocolContainerQuery.java
@@ -27,6 +27,6 @@ public class GetMessageOutFromProtocolContainerQuery implements IJavaQuery2<Pack
final IParameterValueList2 parameterValues,
final IFacetManager facetManager)
throws DerivedTypedElementException {
- return ProtocolContainerUtils.getAllOutOperations(context);
+ return ProtocolContainerUtils.getAllOutRTMessages(context);
}
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetRTMessagesInQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetRTMessagesInQuery.java
new file mode 100644
index 00000000000..1a6d9d83e90
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/GetRTMessagesInQuery.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.umlrt.ui.queries;
+
+import org.eclipse.uml2.uml.Collaboration;
+import org.eclipse.uml2.uml.Operation;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
+import org.eclipse.papyrus.umlrt.custom.utils.ProtocolUtils;
+
+public class GetRTMessagesInQuery implements IJavaQuery2<EObject, List<Operation>> {
+ public List<Operation> evaluate(final EObject context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+ if (context instanceof Collaboration) {
+ return ProtocolUtils.getRTMessages((Collaboration) context, RTMessageKind.IN, true);
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/HideProtocolContainersQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/HideProtocolContainersQuery.java
new file mode 100644
index 00000000000..dafd13372a9
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/HideProtocolContainersQuery.java
@@ -0,0 +1,50 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.umlrt.ui.queries;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.ParameterValue;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.uml.modelexplorer.queries.DisplayUMLStructuralFeature;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.UMLPackage;
+
+public class HideProtocolContainersQuery extends DisplayUMLStructuralFeature implements IJavaQuery2<EObject, Boolean> {
+
+ /**
+ * {@inheritDoc}
+ */
+ public Boolean evaluate(final EObject context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+
+ ParameterValue parameterValue = parameterValues.getParameterValueByName("eStructuralFeature");
+ EStructuralFeature eStructuralFeature = (EStructuralFeature) parameterValue.getValue();
+ // This is an UML element?
+ if (parameterValue != null && context instanceof Element) {
+ // the eStructure is a containmentReference or Facet Reference?
+ if (eStructuralFeature instanceof EReference) {
+ if (UMLPackage.eINSTANCE.getPackage_PackagedElement().equals(eStructuralFeature)) {
+ return false;
+ }
+ }
+ }
+ return super.evaluate(context, parameterValues, facetManager);
+ }
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainerQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainerQuery.java
index c26240a8daa..b9a750d8392 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainerQuery.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainerQuery.java
@@ -12,14 +12,11 @@
*****************************************************************************/
package org.eclipse.papyrus.umlrt.ui.queries;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
-import org.eclipse.papyrus.umlrt.custom.IUMLRTElementTypes;
+import org.eclipse.papyrus.umlrt.custom.utils.ProtocolContainerUtils;
import org.eclipse.uml2.uml.Package;
public class IsProtocolContainerQuery implements IJavaQuery2<Package, Boolean> {
@@ -32,14 +29,6 @@ public class IsProtocolContainerQuery implements IJavaQuery2<Package, Boolean> {
final IFacetManager facetManager)
throws DerivedTypedElementException {
- // check the package is a protocol container
- IElementType type = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.PROTOCOL_CONTAINER_ID);
-
- if(type instanceof ISpecializationType) { // check at the same time UMLRT element types are correctly loaded
- return ((ISpecializationType) type).getMatcher().matches(context);
- }
-
- // by default, assumes the element is not a protocol container
- return false;
+ return ProtocolContainerUtils.isProtocolContainer(context);
}
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainersContainerQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainersContainerQuery.java
new file mode 100644
index 00000000000..7793d1a40cb
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolContainersContainerQuery.java
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.umlrt.ui.queries;
+
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.umlrt.custom.utils.ProtocolContainerUtils;
+import org.eclipse.uml2.uml.Package;
+
+public class IsProtocolContainersContainerQuery implements IJavaQuery2<Package, Boolean> {
+
+ public Boolean evaluate(final Package context, final IParameterValueList2 parameterValues, final IFacetManager facetManager) throws DerivedTypedElementException {
+ return ProtocolContainerUtils.containsProtocolContainer(context);
+ }
+}
+
+
+
+
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolQuery.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolQuery.java
new file mode 100644
index 00000000000..47fe6c0b929
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.ui/src/org/eclipse/papyrus/umlrt/ui/queries/IsProtocolQuery.java
@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/package org.eclipse.papyrus.umlrt.ui.queries;
+
+import org.eclipse.uml2.uml.Collaboration;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.umlrt.custom.utils.ProtocolUtils;
+
+public class IsProtocolQuery implements IJavaQuery2<Collaboration, Boolean> {
+
+ /**
+ * {@inheritDoc}
+ */
+ public Boolean evaluate(final Collaboration context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+ return ProtocolUtils.isProtocol(context);
+ }
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTModelWizard.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTModelWizard.java
index d2aae0c4e64..1feeab7794d 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTModelWizard.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTModelWizard.java
@@ -42,6 +42,11 @@ public class NewUMLRTModelWizard extends CreateModelWizard {
return new String[] { CreateUMLRTModelCommand.COMMAND_ID };
}
+ @Override
+ public boolean isPapyrusRootWizard() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTProjectWizard.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTProjectWizard.java
index ceb6b04d5e8..ed5db0e5ab1 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTProjectWizard.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.wizard/src/org/eclipse/papyrus/umlrt/wizard/ui/NewUMLRTProjectWizard.java
@@ -68,4 +68,8 @@ public class NewUMLRTProjectWizard extends NewPapyrusProjectWizard {
return new String[] { CreateUMLRTModelCommand.COMMAND_ID };
}
+ @Override
+ public boolean isPapyrusRootWizard() {
+ return false;
+ }
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.elementtypesconfigurations b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.elementtypesconfigurations
index 9c6ecf3130c..93893ccb1d2 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.elementtypesconfigurations
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.elementtypesconfigurations
@@ -160,8 +160,8 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_At0JAONwEeSMDu6IBsn9eg"
- name="Operation"
- identifier="org.eclipse.papyrus.umlrt.OperationAsMessage">
+ name="RTMessage"
+ identifier="org.eclipse.papyrus.umlrt.RTMessage">
<iconEntry
xmi:id="_At0JAeNwEeSMDu6IBsn9eg"
iconPath="/icons/full/obj16/Operation.gif"
@@ -174,17 +174,20 @@
identifier="org.eclipse.papyrus.umlrt.custom.advice.OperationAsMessageEditHelperAdvice"
editHelperAdviceClassName="org.eclipse.papyrus.umlrt.custom.advice.OperationAsMessageEditHelperAdvice"
inheritance="all"/>
+ <matcherConfiguration
+ xmi:id="_OPE2wOqQEeS-F5lSZrhlvg"
+ matcherClassName="org.eclipse.papyrus.umlrt.custom.advice.RTMessageMatcher"/>
</elementTypeConfigurations>
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_1puuMOToEeSW0_lDigZ13g"
- name="Operation As Message IN"
- identifier="org.eclipse.papyrus.umlrt.OperationAsMessageIn">
+ name="RTMessageIN"
+ identifier="org.eclipse.papyrus.umlrt.RTMessageIn">
<iconEntry
xmi:id="_7aYeMOToEeSW0_lDigZ13g"
iconPath="/icons/full/obj16/Operation.gif"
bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.umlrt.OperationAsMessage</specializedTypesID>
+ <specializedTypesID>org.eclipse.papyrus.umlrt.RTMessage</specializedTypesID>
<editHelperAdviceConfiguration
xmi:id="_7aZFQOToEeSW0_lDigZ13g"
name="org.eclipse.papyrus.umlrt.custom.advice.OperationAsMessageInEditHelperAdvice"
@@ -192,6 +195,9 @@
identifier="org.eclipse.papyrus.umlrt.custom.advice.OperationAsMessageInEditHelperAdvice"
editHelperAdviceClassName="org.eclipse.papyrus.umlrt.custom.advice.OperationAsMessageInEditHelperAdvice"
inheritance="all"/>
+ <matcherConfiguration
+ xmi:id="_PLPkEOqQEeS-F5lSZrhlvg"
+ matcherClassName="org.eclipse.papyrus.umlrt.custom.advice.RTMessageInMatcher"/>
</elementTypeConfigurations>
<adviceBindingsConfigurations
xsi:type="applystereotypeadviceconfiguration:ApplyStereotypeAdviceConfiguration"
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.umlclassdiagram.elementtypesconfigurations b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.umlclassdiagram.elementtypesconfigurations
index 0c75acb2097..d59635dd174 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.umlclassdiagram.elementtypesconfigurations
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/elementtypes/uml-rt.umlclassdiagram.elementtypesconfigurations
@@ -451,7 +451,7 @@
xmi:id="_UKFsweN2EeSMDu6IBsn9eg"
iconPath="/icons/full/obj16/Operation.gif"
bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.umlrt.OperationAsMessage</specializedTypesID>
+ <specializedTypesID>org.eclipse.papyrus.umlrt.RTMessage</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Operation_3003</specializedTypesID>
<matcherConfiguration
xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
@@ -469,7 +469,7 @@
xmi:id="_iggYseN2EeSMDu6IBsn9eg"
iconPath="/icons/full/obj16/Operation.gif"
bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.umlrt.OperationAsMessage</specializedTypesID>
+ <specializedTypesID>org.eclipse.papyrus.umlrt.RTMessage</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Operation_3007</specializedTypesID>
<matcherConfiguration
xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
@@ -487,7 +487,7 @@
xmi:id="_nR6SMeN2EeSMDu6IBsn9eg"
iconPath="/icons/full/obj16/Operation.gif"
bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.umlrt.OperationAsMessage</specializedTypesID>
+ <specializedTypesID>org.eclipse.papyrus.umlrt.RTMessage</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Operation_3013</specializedTypesID>
<matcherConfiguration
xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
@@ -505,7 +505,7 @@
xmi:id="_sqMlgeN2EeSMDu6IBsn9eg"
iconPath="/icons/full/obj16/Operation.gif"
bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.umlrt.OperationAsMessage</specializedTypesID>
+ <specializedTypesID>org.eclipse.papyrus.umlrt.RTMessage</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Operation_3019</specializedTypesID>
<matcherConfiguration
xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
@@ -523,7 +523,7 @@
xmi:id="_xQYGceN2EeSMDu6IBsn9eg"
iconPath="/icons/full/obj16/Operation.gif"
bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.umlrt.OperationAsMessage</specializedTypesID>
+ <specializedTypesID>org.eclipse.papyrus.umlrt.RTMessage</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Operation_3042</specializedTypesID>
<matcherConfiguration
xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/IUMLRTElementTypes.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/IUMLRTElementTypes.java
index 0814eabe2ab..ef93ca750ab 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/IUMLRTElementTypes.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/IUMLRTElementTypes.java
@@ -33,5 +33,8 @@ public interface IUMLRTElementTypes {
public static final String RT_EXCLUDED_ELEMENT_ID = "org.eclipse.papyrus.umlrt.RTRExcludedElement";//$NON-NLS-1$
- public static final String RT_OPERATION_AS_MESSAGE = "org.eclipse.papyrus.umlrt.OperationAsMessage";
+ public static final String RT_MESSAGE_ID = "org.eclipse.papyrus.umlrt.RTMessage";
+ public static final String RT_MESSAGE_IN_ID = "org.eclipse.papyrus.umlrt.RTMessageIn";
+ public static final String RT_MESSAGE_OUT_ID = "org.eclipse.papyrus.umlrt.RTMessageOut";
+ public static final String RT_MESSAGE_INOUT_ID = "org.eclipse.papyrus.umlrt.RTMessageInout";
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/UMLRTElementTypesEnumerator.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/UMLRTElementTypesEnumerator.java
index 000a1bf2340..db4723b61bc 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/UMLRTElementTypesEnumerator.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/UMLRTElementTypesEnumerator.java
@@ -39,7 +39,13 @@ public class UMLRTElementTypesEnumerator extends AbstractElementTypeEnumerator i
public static final IHintedType RT_EXCLUDED_ELEMENT = (IHintedType) getElementType(RT_EXCLUDED_ELEMENT_ID);
- private static final List<IHintedType> rtTypes = Arrays.asList(RT_MESSAGE_SET, PROTOCOL_CONTAINER, PROTOCOL, CAPSULE, CAPSULE_PART, RT_PORT, RT_CONNECTOR, RT_EXCLUDED_ELEMENT);
+ public static final IHintedType RT_MESSAGE = (IHintedType) getElementType(RT_MESSAGE_ID);
+ public static final IHintedType RT_MESSAGE_IN = (IHintedType) getElementType(RT_MESSAGE_IN_ID);
+ // public static final IHintedType RT_MESSAGE_OUT = (IHintedType) getElementType(RT_MESSAGE_OUT_ID);
+ // public static final IHintedType RT_MESSAGE_INOUT = (IHintedType) getElementType(RT_MESSAGE_INOUT_ID);
+
+
+ private static final List<IHintedType> rtTypes = Arrays.asList(RT_MESSAGE_SET, PROTOCOL_CONTAINER, PROTOCOL, CAPSULE, CAPSULE_PART, RT_PORT, RT_CONNECTOR, RT_EXCLUDED_ELEMENT, RT_MESSAGE, RT_MESSAGE_IN);
/**
* Returns all the specific semantic element types for UML-RT
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/BehavioredClassifierEditHelperAdvice.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/BehavioredClassifierEditHelperAdvice.java
index 82e7a317a98..0d560d8799b 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/BehavioredClassifierEditHelperAdvice.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/BehavioredClassifierEditHelperAdvice.java
@@ -42,10 +42,10 @@ public class BehavioredClassifierEditHelperAdvice extends AbstractEditHelperAdvi
IElementType type = createElementRequest.getElementType();
// type should only be compatible with UMLRT::OperationAsMessages
- IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_OPERATION_AS_MESSAGE);
+ IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_MESSAGE_ID);
// should not be null, otherwise, element type model is not loaded correctly. abort.
if (umlRTMessageType == null) {
- Activator.log.debug("MessageAsOperation element type is not accessible");
+ Activator.log.debug("RTMessage element type is not accessible");
return super.approveRequest(request);
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/MessageSetEditHelperAdvice.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/MessageSetEditHelperAdvice.java
index 749fa43fa46..3c359824a3e 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/MessageSetEditHelperAdvice.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/MessageSetEditHelperAdvice.java
@@ -17,6 +17,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
@@ -31,6 +32,7 @@ import org.eclipse.papyrus.umlrt.custom.IUMLRTElementTypes;
import org.eclipse.papyrus.umlrt.custom.utils.MessageUtils;
import org.eclipse.papyrus.umlrt.internals.Activator;
import org.eclipse.uml2.uml.CallEvent;
+import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Operation;
@@ -47,6 +49,35 @@ public class MessageSetEditHelperAdvice extends AbstractEditHelperAdvice {
return super.getAfterEditContextCommand(request);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected ICommand getAfterMoveCommand(final MoveRequest request) {
+ CompositeCommand compositeMoveCommand = new CompositeCommand("Composite Move Command");
+
+ Map<?, ?> elementsToMove = request.getElementsToMove();
+ if (!elementsToMove.isEmpty()) {
+ for (Object elementToMove : elementsToMove.keySet()) {
+ if (elementToMove instanceof Operation) {
+ final Operation operation = (Operation) elementToMove;
+ final CallEvent callEvent = MessageUtils.getCallEvent(operation);
+ if (callEvent != null) {
+ MoveElementsCommand command = MessageUtils.createMoveCallEventCommand(request, callEvent);
+ compositeMoveCommand.add(command);
+ }
+ }
+ }
+ }
+
+ if (compositeMoveCommand.isEmpty()) {
+ compositeMoveCommand.add(super.getAfterMoveCommand(request));
+ }
+
+ return compositeMoveCommand;
+ }
+
/**
* {@inheritDoc}
*/
@@ -60,10 +91,10 @@ public class MessageSetEditHelperAdvice extends AbstractEditHelperAdvice {
IElementType type = createElementRequest.getElementType();
// type should only be compatible with UMLRT::OperationAsMessages
- IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_OPERATION_AS_MESSAGE);
+ IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_MESSAGE_ID);
// should not be null, otherwise, element type model is not loaded correctly. abort.
if (umlRTMessageType == null) {
- Activator.log.debug("MessageAsOperation element type is not accessible");
+ Activator.log.debug("RTMessage element type is not accessible");
return super.approveRequest(request);
}
@@ -78,33 +109,16 @@ public class MessageSetEditHelperAdvice extends AbstractEditHelperAdvice {
}
/**
- * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice#getAfterMoveCommand(org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest)
- *
- * @param request
- * @return
+ * {@inheritDoc}
*/
@Override
- protected ICommand getAfterMoveCommand(final MoveRequest request) {
- CompositeCommand compositeMoveCommand = new CompositeCommand("Composite Move Command");
-
- Map<?, ?> elementsToMove = request.getElementsToMove();
- if (!elementsToMove.isEmpty()) {
- for (Object elementToMove : elementsToMove.keySet()) {
- if (elementToMove instanceof Operation) {
- final Operation operation = (Operation) elementToMove;
- final CallEvent callEvent = MessageUtils.getCallEvent(operation);
- if (callEvent != null) {
- MoveElementsCommand command = MessageUtils.createMoveCallEventCommand(request, callEvent);
- compositeMoveCommand.add(command);
- }
- }
- }
+ protected ICommand getAfterCreateCommand(CreateElementRequest request) {
+ if (request.getElementType().getId().equals(IUMLRTElementTypes.RT_MESSAGE_IN_ID)) {
+ EObject container = request.getContainer();
+ Element element = (Element)container;
+ org.eclipse.uml2.uml.Package pack = element.getNearestPackage();
+ CreateElementRequest req = new CreateElementRequest(request.getEditingDomain(), pack, ElementTypeRegistry.getInstance().getType("org.eclipse.papyrus.uml.CallEvent"));
}
-
- if (compositeMoveCommand.isEmpty()) {
- compositeMoveCommand.add(super.getAfterMoveCommand(request));
- }
-
- return compositeMoveCommand;
+ return super.getAfterCreateCommand(request);
}
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/ProtocolContainerEditHelperAdvice.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/ProtocolContainerEditHelperAdvice.java
index 41154146749..b9d7c4d9592 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/ProtocolContainerEditHelperAdvice.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/ProtocolContainerEditHelperAdvice.java
@@ -19,6 +19,7 @@ import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.GetEditContextCommand;
import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
@@ -50,10 +51,10 @@ public class ProtocolContainerEditHelperAdvice extends AbstractEditHelperAdvice
IElementType type = createElementRequest.getElementType();
// type should only be compatible with UMLRT::OperationAsMessages
- IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_OPERATION_AS_MESSAGE);
+ IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_MESSAGE_ID);
// should not be null, otherwise, element type model is not loaded correctly. abort.
if (umlRTMessageType == null) {
- Activator.log.debug("MessageAsOperation element type is not accessible");
+ Activator.log.debug("RTMessage element type is not accessible");
return super.approveRequest(request);
}
@@ -61,8 +62,10 @@ public class ProtocolContainerEditHelperAdvice extends AbstractEditHelperAdvice
List<IElementType> types = Arrays.asList(type.getAllSuperTypes());
if (types.contains(umlRTMessageType)) {
return true;
+ } else {
+ // return false;
+ return super.approveRequest(createElementRequest);
}
- return super.approveRequest(request);
}
return super.approveRequest(request);
}
@@ -71,15 +74,37 @@ public class ProtocolContainerEditHelperAdvice extends AbstractEditHelperAdvice
* {@inheritDoc}
*/
@Override
- protected ICommand getAfterEditContextCommand(GetEditContextRequest request) {
+ protected ICommand getBeforeEditContextCommand(GetEditContextRequest request) {
IEditCommandRequest editCommandRequest = request.getEditCommandRequest();
if(editCommandRequest instanceof CreateElementRequest) {
// check the element to create is a sub kind of RTMessage
-
+ CreateElementRequest createElementRequest = ((CreateElementRequest) editCommandRequest);
+ // retrieve element type from this request and check if this is a kind of UMLRT::Message
+ IElementType type = createElementRequest.getElementType();
+
+ // type should only be compatible with UMLRT::OperationAsMessages
+ IElementType umlRTMessageType = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.RT_MESSAGE_ID);
+ // should not be null, otherwise, element type model is not loaded correctly. abort.
+ if (umlRTMessageType == null) {
+ Activator.log.debug("RTMessage element type is not accessible");
+ return super.getBeforeEditContextCommand(request);
+ }
+
+ // check type is compatible with UMLRT::OperationAsMessages. If yes, allow creation
+ List<IElementType> types = Arrays.asList(type.getAllSuperTypes());
+ if (types.contains(umlRTMessageType)) {
+ // return the right message set here rather than the protocol container
+
+ GetEditContextCommand command = new GetEditContextCommand(request);
+ if (request.getEditContext() instanceof Package) {
+ command.setEditContext(ProtocolContainerUtils.getMessageSetIn((Package) request.getEditContext()));
+ }
+ return command;
+ }
}
- return super.getAfterEditContextCommand(request);
+ return super.getBeforeEditContextCommand(request);
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageInMatcher.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageInMatcher.java
new file mode 100644
index 00000000000..c2d9b4e098a
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageInMatcher.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.umlrt.custom.advice;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
+import org.eclipse.papyrus.umlrt.custom.utils.RTMessageUtils;
+
+/**
+ *
+ */
+public class RTMessageInMatcher implements IElementMatcher {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean matches(EObject eObject) {
+ return RTMessageUtils.isRTMessage(eObject, RTMessageKind.IN);
+ }
+
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageMatcher.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageMatcher.java
new file mode 100644
index 00000000000..1a0b5515ff7
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/advice/RTMessageMatcher.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.umlrt.custom.advice;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.papyrus.umlrt.custom.utils.RTMessageUtils;
+
+/**
+ *
+ */
+public class RTMessageMatcher implements IElementMatcher {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean matches(EObject eObject) {
+ return RTMessageUtils.isRTMessage(eObject);
+ }
+
+}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/MessageSetUtils.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/MessageSetUtils.java
index ec8128c54f7..0d1135cc851 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/MessageSetUtils.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/MessageSetUtils.java
@@ -17,6 +17,7 @@ import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageSet;
import org.eclipse.papyrus.umlrt.UMLRealTime.UMLRealTimePackage;
import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Interface;
import org.eclipse.uml2.uml.Stereotype;
/**
@@ -65,4 +66,18 @@ public class MessageSetUtils {
return protocolName + "IO";
}
+ /**
+ * @param owner
+ * @return
+ */
+ public static boolean isRTMessageSet(Element owner) {
+ if (owner instanceof Interface) {
+ Stereotype stereotype = ((Interface) owner).getAppliedStereotype("UMLRealTime::" + UMLRealTimePackage.eINSTANCE.getRTMessageSet().getName());
+ if (stereotype != null) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolContainerUtils.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolContainerUtils.java
index 5065fcdecbd..dc82c0a8860 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolContainerUtils.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolContainerUtils.java
@@ -13,18 +13,26 @@
package org.eclipse.papyrus.umlrt.custom.utils;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageSet;
+import org.eclipse.papyrus.umlrt.custom.IUMLRTElementTypes;
import org.eclipse.uml2.uml.Collaboration;
+import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Interface;
import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.util.UMLUtil;
/**
@@ -33,17 +41,39 @@ import org.eclipse.uml2.uml.util.UMLUtil;
public class ProtocolContainerUtils {
/**
+ * @param protocolContainer
+ * @param direction
+ * @param showInherited
+ * @return
+ */
+ public static List<Operation> getRTMessages(Package protocolContainer, RTMessageKind direction, boolean showInherited) {
+ Interface messageSet = getMessageSet(protocolContainer, direction);
+ if (messageSet != null) {
+
+ if (showInherited) {
+ return messageSet.getAllOperations(); // this will also display inherited operations
+ }
+ return messageSet.getOwnedOperations(); // only contained
+ }
+ return Collections.emptyList();
+ }
+
+ /**
+ * @param protocolContainer
+ * @param direction
+ * @return
+ */
+ public static List<Operation> getAllRTMessages(Package protocolContainer, RTMessageKind direction) {
+ return getRTMessages(protocolContainer, direction, true);
+ }
+
+ /**
* Returns all the In Operations attached to the protocol in this protocol container
*
* @return all the In Operations attached to the protocol in this protocol container or an empty list if there was no protocol/interfacein.
- */
- public static List<Operation> getAllInOperations(Package protocolContainer) {
- Interface messageSetIn = getMessageSetIn(protocolContainer);
- if(messageSetIn !=null) {
- // warning: this will display only direct contained operations, not the inherited ones.
- return messageSetIn.getOwnedOperations();
- }
- return Collections.emptyList();
+ */
+ public static List<Operation> getAllInRTMessages(Package protocolContainer) {
+ return getAllRTMessages(protocolContainer, RTMessageKind.IN);
}
/**
@@ -51,13 +81,8 @@ public class ProtocolContainerUtils {
*
* @return all the Out Operations attached to the protocol in this protocol container or <code>null</code> if there was no protocol/interfacein.
*/
- public static Collection<Operation> getAllOutOperations(Package protocolContainer) {
- Interface messageSetOut = getMessageSetOut(protocolContainer);
- if (messageSetOut != null) {
- // warning: this will display only direct contained operations, not the inherited ones.
- return messageSetOut.getOwnedOperations();
- }
- return Collections.emptyList();
+ public static Collection<Operation> getAllOutRTMessages(Package protocolContainer) {
+ return getAllRTMessages(protocolContainer, RTMessageKind.OUT);
}
/**
@@ -65,51 +90,169 @@ public class ProtocolContainerUtils {
*
* @return all the InOut Operations attached to the protocol in this protocol container or <code>null</code> if there was no protocol/interfacein.
*/
- public static Collection<Operation> getAllInOutOperations(Package protocolContainer) {
- Interface messageSetInOut = getMessageSetInOut(protocolContainer);
- if (messageSetInOut != null) {
- // warning: this will display only direct contained operations, not the inherited ones.
- return messageSetInOut.getOwnedOperations();
- }
- return Collections.emptyList();
+ public static Collection<Operation> getAllInOutRTMessages(Package protocolContainer) {
+ return getAllRTMessages(protocolContainer, RTMessageKind.IN_OUT);
+ }
+
+
+
+ /**
+ * @param protocolContainer
+ * @param direction
+ * @param showInherited
+ * @return
+ */
+ public static List<Operation> getRTMessages(Package protocolContainer, RTMessageKind direction) {
+ return getRTMessages(protocolContainer, direction, false);
+ }
+
+ /**
+ * Returns all the In Operations attached to the protocol in this protocol container
+ *
+ * @return all the In Operations attached to the protocol in this protocol container or an empty list if there was no protocol/interfacein.
+ */
+ public static List<Operation> getInRTMessages(Package protocolContainer) {
+ return getRTMessages(protocolContainer, RTMessageKind.IN);
+ }
+
+ /**
+ * Returns all the Out Operations attached to the protocol in this protocol container
+ *
+ * @return all the Out Operations attached to the protocol in this protocol container or <code>null</code> if there was no protocol/interfacein.
+ */
+ public static Collection<Operation> geOutRTMessages(Package protocolContainer) {
+ return getRTMessages(protocolContainer, RTMessageKind.OUT);
+ }
+
+ /**
+ * Returns all the InOut Operations attached to the protocol in this protocol container
+ *
+ * @return all the InOut Operations attached to the protocol in this protocol container or <code>null</code> if there was no protocol/interfacein.
+ */
+ public static Collection<Operation> getInOutRTMessages(Package protocolContainer) {
+ return getRTMessages(protocolContainer, RTMessageKind.IN_OUT);
}
public static Interface getMessageSet(Package protocolContainer, RTMessageKind messageKind) {
- for(PackageableElement packageableElement : protocolContainer.getPackagedElements()) {
+ for (PackageableElement packageableElement : protocolContainer.getPackagedElements()) {
// look each interface to find the right one with the stereotype message set
- if(packageableElement instanceof Interface) {
+ if (packageableElement instanceof Interface) {
RTMessageSet messageSet = UMLUtil.getStereotypeApplication(packageableElement, RTMessageSet.class);
if (messageSet != null && messageKind != null && messageKind.equals(messageSet.getRtMsgKind())) {
- return (Interface)packageableElement;
+ return (Interface) packageableElement;
}
}
}
return null;
}
-
-
+
+
public static Interface getMessageSetIn(Package protocolContainer) {
return getMessageSet(protocolContainer, RTMessageKind.IN);
}
-
+
public static Interface getMessageSetOut(Package protocolContainer) {
return getMessageSet(protocolContainer, RTMessageKind.OUT);
}
-
+
public static Interface getMessageSetInOut(Package protocolContainer) {
return getMessageSet(protocolContainer, RTMessageKind.IN_OUT);
}
public static Collaboration getCollaboration(Package protocolContainer) {
- for(PackageableElement packageableElement : protocolContainer.getPackagedElements()) {
+ for (PackageableElement packageableElement : protocolContainer.getPackagedElements()) {
// look each interface to find the right one with the stereotype message set
- if(packageableElement instanceof Collaboration) {
- return (Collaboration)packageableElement;
+ if (packageableElement instanceof Collaboration) {
+ return (Collaboration) packageableElement;
}
}
return null;
}
-
+
+ public static boolean containsProtocolContainer(Package container) {
+ Collection<Package> packages = EcoreUtil.getObjectsByType(container.getPackagedElements(), UMLPackage.eINSTANCE.getPackage());
+
+ if (packages != null && !packages.isEmpty()) {
+ IElementType type = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.PROTOCOL_CONTAINER_ID);
+ if (!(type instanceof ISpecializationType)) { // check at the same time UMLRT element types are correctly loaded
+ return false;
+ }
+
+ for (Package pkg : packages) {
+ // check the package is a protocol container
+ if (((ISpecializationType) type).getMatcher().matches(pkg)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public static List<Package> getContainedProtocolContainers(Package container) {
+ Collection<Package> packages = EcoreUtil.getObjectsByType(container.getPackagedElements(), UMLPackage.eINSTANCE.getPackage());
+
+ if (packages != null && !packages.isEmpty()) {
+ IElementType type = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.PROTOCOL_CONTAINER_ID);
+ if (!(type instanceof ISpecializationType)) { // check at the same time UMLRT element types are correctly loaded
+ return Collections.emptyList();
+ }
+
+ List<Package> protocolContainers = null;
+ for (Package pkg : packages) {
+ // check the package is a protocol container
+ if (((ISpecializationType) type).getMatcher().matches(pkg)) {
+ if (protocolContainers == null) {
+ protocolContainers = new ArrayList<Package>();
+ }
+ protocolContainers.add(pkg);
+ }
+ }
+ }
+ return Collections.emptyList();
+ }
+
+
+ public static boolean isProtocolContainer(EObject package_) {
+ IElementType type = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.PROTOCOL_CONTAINER_ID);
+ if (!(type instanceof ISpecializationType)) { // check at the same time UMLRT element types are correctly loaded
+ return false;
+ }
+ if (((ISpecializationType) type).getMatcher().matches(package_)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * REturns the packageElements, but with package protocolcontainers replaced by protocol
+ *
+ * @param source
+ * @return
+ */
+ public static List<PackageableElement> getFilteredPackagedElements(Element source) {
+ if (!(source instanceof Package)) {
+ return Collections.emptyList();
+ }
+
+ if (!containsProtocolContainer((Package) source)) {
+ return ((Package) source).getPackagedElements();
+ }
+
+ List<PackageableElement> returnList = new ArrayList<PackageableElement>(((Package) source).getPackagedElements());
+
+ for (PackageableElement packageableElement : ((Package) source).getPackagedElements()) {
+ if (packageableElement instanceof Package) {
+ if ((isProtocolContainer(packageableElement))) {
+ // replace element in return list
+ int i = returnList.indexOf(packageableElement);
+ returnList.remove(packageableElement);
+ returnList.add(i, ProtocolContainerUtils.getCollaboration((Package) packageableElement));
+ }
+ }
+ }
+ return returnList;
+ }
+
/**
* Returns ProtocolContainer of a given UML::PackagableElement.
* @param element
@@ -134,5 +277,8 @@ public class ProtocolContainerUtils {
}
return result;
- }
+ }
+
+
+
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolUtils.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolUtils.java
index 9607a9f60d8..155038e0d35 100644
--- a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolUtils.java
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/ProtocolUtils.java
@@ -13,7 +13,18 @@
package org.eclipse.papyrus.umlrt.custom.utils;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
+import org.eclipse.papyrus.umlrt.custom.IUMLRTElementTypes;
+import org.eclipse.papyrus.umlrt.internals.Activator;
import org.eclipse.uml2.uml.Collaboration;
+import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.Package;
/**
@@ -32,4 +43,36 @@ public class ProtocolUtils {
return protocol.getNearestPackage();
}
+ /**
+ * Returns <code>true</code> if the context element is a Protocol (Collaboration stereotyped by "protocol")
+ *
+ * @param context
+ * the eobject to test
+ * @return <code>true</code> if the context element is a Protocol (Collaboration stereotyped by "protocol")
+ */
+ public static Boolean isProtocol(EObject context) {
+ IElementType type = ElementTypeRegistry.getInstance().getType(IUMLRTElementTypes.PROTOCOL_ID);
+ if (!(type instanceof ISpecializationType)) { // check at the same time UMLRT element types are correctly loaded
+ return false;
+ }
+ if (((ISpecializationType) type).getMatcher().matches(context)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @param in
+ * @return
+ */
+ public static List<Operation> getRTMessages(Collaboration protocol, RTMessageKind direction, boolean showInherited) {
+ Package protocolContainer = getPackageContainer(protocol);
+ if(protocolContainer ==null) {
+ Activator.log.error("Impossible to get the root protocol container", null);
+ return Collections.emptyList();
+ }
+
+ return ProtocolContainerUtils.getRTMessages(protocolContainer, direction, showInherited);
+ }
+
}
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/RTMessageUtils.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/RTMessageUtils.java
new file mode 100644
index 00000000000..1ab2141f83d
--- /dev/null
+++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt/src/org/eclipse/papyrus/umlrt/custom/utils/RTMessageUtils.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.umlrt.custom.utils;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.umlrt.UMLRealTime.RTMessageKind;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * Utility class on {@link Operation} that are RTMessage
+ */
+public class RTMessageUtils {
+
+ /**
+ * Retrieves the direction for a given element
+ *
+ * @param object
+ * the object for which direction is looked after
+ * @return the di
+ */
+ public static RTMessageKind getMessageKind(Object object) {
+ if (object instanceof Operation) {
+ // get Owner of the operation, and check if this is a messageSET
+ Element owner = ((Operation)object).getOwner();
+ RTMessageKind kind = MessageSetUtils.getMessageKind(owner);
+ return kind;
+ }
+ return null;
+ }
+
+ /**
+ * @param eObject
+ * @return
+ */
+ public static boolean isRTMessage(EObject operation) {
+ if (operation instanceof Operation) {
+ // get Owner of the operation, and check if this is a messageSET
+ Element owner = ((Operation) operation).getOwner();
+ return MessageSetUtils.isRTMessageSet(owner);
+ }
+ return false;
+ }
+
+ /**
+ * @param eObject
+ * @param in
+ * @return
+ */
+ public static boolean isRTMessage(EObject operation, RTMessageKind in) {
+ if (operation instanceof Operation) {
+ // get Owner of the operation, and check if this is a messageSET
+ Element owner = ((Operation) operation).getOwner();
+ RTMessageKind kind = MessageSetUtils.getMessageKind(owner);
+ if (kind == in) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.doc/intro/firststeps.xml b/plugins/developer/org.eclipse.papyrus.doc/intro/firststeps.xml
index 9d84d6b5484..ebafdb878eb 100644
--- a/plugins/developer/org.eclipse.papyrus.doc/intro/firststeps.xml
+++ b/plugins/developer/org.eclipse.papyrus.doc/intro/firststeps.xml
@@ -3,7 +3,7 @@
<extensionContent id="org.eclipse.team.papyrus.firststeps" name="Papyrus First Steps" style="css/firststeps.css" path="firststeps/@">
<group label="Papyrus" style-id="content-group" id="org.eclipse.papyrus-firststeps-group">
<link label="New Papyrus Project"
- url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.papyrus.uml.diagram.wizards&#38;class=org.eclipse.papyrus.uml.diagram.wizards.NewProjectAction"
+ url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.papyrus.uml.diagram.wizards&amp;class=org.eclipse.papyrus.uml.diagram.wizards.action.NewProjectAction"
id="newpapyrusproject-introLink" style-id="content-link">
<text>Start with creation of new Papyrus project</text>
</link>
diff --git a/plugins/developer/org.eclipse.papyrus.doc/intro/overview.xml b/plugins/developer/org.eclipse.papyrus.doc/intro/overview.xml
index 6d8ef3b5184..0ff38e4ad54 100644
--- a/plugins/developer/org.eclipse.papyrus.doc/intro/overview.xml
+++ b/plugins/developer/org.eclipse.papyrus.doc/intro/overview.xml
@@ -3,7 +3,7 @@
<extensionContent id="org.eclipse.team.papyrus.overview" name="Papyrus overview" style="css/overview.css" path="overview/@">
<group style-id="content-group" id="org.eclipse.papyrus-firststeps-group">
<link label="New Papyrus Project"
- url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.papyrus.uml.diagram.wizards&#38;class=org.eclipse.papyrus.uml.diagram.wizards.NewProjectAction"
+ url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.papyrus.uml.diagram.wizards&amp;class=org.eclipse.papyrus.uml.diagram.wizards.action.NewProjectAction"
id="newpapyrusproject-introLink" style-id="content-link">
<text>Start with creation of new Papyrus project</text>
</link>
diff --git a/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/META-INF/MANIFEST.MF b/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/META-INF/MANIFEST.MF
index 5947b07f4e5..9c633f57efc 100755
--- a/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/META-INF/MANIFEST.MF
+++ b/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.papyrus.uml.textedit.doc;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/site/mediawiki/textedit.mediawiki b/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/site/mediawiki/textedit.mediawiki
index 760b6841455..82509166c2b 100755
--- a/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/site/mediawiki/textedit.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.uml.textedit.doc/site/mediawiki/textedit.mediawiki
@@ -278,7 +278,7 @@ Developer documentation is available [[Papyrus_Developer_Guide/Papyrus_Embedded_
===Usage===
* This editors allows to find named element typing its name.
-* In case of several elements to found, the separator to use is the comma </code>'</code>
+* In case of several elements to found, the separator to use is the comma <code>'</code>
* If the name of the element contains a comma, you should prefix and suffix its name by a quote <code>'</code>.
* The value will not be set if the element can't be found is the model
@@ -307,5 +307,5 @@ If you have 3 Classes in your model, named <code>Class1</code>, <code>Class2</co
|-
| Clas,
| <Undefined>,...
-| interpreted as a list of value, the first value is </code>Clas</code>, and we have no information for the second one, for the completion it is an empty string
+| interpreted as a list of value, the first value is <code>Clas</code>, and we have no information for the second one, for the completion it is an empty string
|}
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedMode.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedMode.png
new file mode 100644
index 00000000000..a284dadf074
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedMode.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedModeXText.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedModeXText.png
new file mode 100644
index 00000000000..f2876c86320
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/advancedModeXText.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonSwitch.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonSwitch.png
new file mode 100644
index 00000000000..d1917c030ae
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonSwitch.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonsEdit.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonsEdit.png
new file mode 100644
index 00000000000..f5a0c22957b
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/buttonsEdit.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/preferencesMultiplicityEditor.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/preferencesMultiplicityEditor.png
new file mode 100644
index 00000000000..ad1f9309a4a
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/preferencesMultiplicityEditor.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleMode.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleMode.png
new file mode 100644
index 00000000000..2fe8d2847c0
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleMode.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleModeDisabled.png b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleModeDisabled.png
new file mode 100644
index 00000000000..13b6459c564
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/images/simpleModeDisabled.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view-main-toc.xml b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view-main-toc.xml
index f026f340756..0add93e6d77 100644
--- a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view-main-toc.xml
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view-main-toc.xml
@@ -1,7 +1,7 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<toc label="Search" link_to="../org.eclipse.papyrus.infra.doc/toc.xml#PapyrusDocUser">
- <topic href="target/generated-eclipse-help/properties-view.html" label="Properties view customization">
- <link toc="target/generated-eclipse-help/properties-view-toc.xml"/>
- <anchor id="properties-view"/>
- </topic>
-</toc>
+<?xml version='1.0' encoding='utf-8' ?>
+<toc label="Search" link_to="../org.eclipse.papyrus.infra.doc/toc.xml#PapyrusDocUser">
+ <topic href="target/generated-eclipse-help/properties-view.html" label="Properties view">
+ <link toc="target/generated-eclipse-help/properties-view-toc.xml"/>
+ <anchor id="properties-view"/>
+ </topic>
+</toc>
diff --git a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view.mediawiki b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view.mediawiki
index e609186f061..a66b0ac94e6 100644
--- a/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.views.properties.doc/resource/properties-view.mediawiki
@@ -1,307 +1,385 @@
-== INTRODUCTION ==
-In UML, the main information is represented in graphical diagrams. However, it is not always possible to represent graphically the whole semantic of UML, not talking of all the cosmetic properties. For example, it is pretty easy to represent and to edit a Class' name graphically. While we still can represent the 'is abstract' property graphically (By using the italic font for the Class' name), it is harder to edit this property directly from the diagram. Worse, the 'is leaf' property doesn't even have a graphical representation. Thus, we often need a different view for representing all the properties of a UML Element, without polluting the graphical view.
-
-
-As UML is highly extensible, through the mean of Profiles, it is also important to be able to represent and edit the profile's properties, without managing everything from the diagram view.
-
-
-Eclipse provides a standard view for these properties: the Properties Page. This view is a table representing all the properties available for the selected Element, including the ones that cannot be represented or edited graphically. This view is pretty useful, but is neither really user-friendly nor optimal, as it may require up to four clicks to simply edit a comment's body. Moreover, it can only be extended via Java code, which requires some technical skills and prevents a dynamic modification of the view, as the Java code needs to be recompiled after each modification.
-
-
-There is an extension of the base Property View framework, still in the standard Eclipse implementation, which fixes some of these problems. It is called the 'Eclipse Tabbed Properties View' framework. It provides a better look and feel for the property view, with more flexibility, and a better usability. However, it keeps being difficult to customize, as it still hard-coded in Java.
-
-
-Papyrus provides its own Property View framework, based on the Tabbed Property View framework. The Papyrus Property View can be extended in two ways:
-* Dynamically, for the layout of the property view: show/hide a property, reorder the properties, add/remove a tab'
-* Statically, through Java code, for advanced operations: create a new widget for editing the properties, add a custom Content Provider for selecting a reference value'
-This document aims at detailing all the features related to the property view customization, both dynamically and statically.
-
-== THE CUSTOMIZATION TOOL ==
-
-Most customizations can be done through the Property view customization Editor. It provides native support for EMF Models, UML models and profiles. It also provides a set of basic widgets and property editors.
-
-=== Edit a configuration ===
-
-Each property view configuration is defined in a different set of files. Each configuration can contain elements from different contexts, but we typically have one configuration per Ecore Metamodel or UML Profile (i.e. one configuration for UML, one for the Diagram Appearance tab, another one for the SysML profile')
-
-To see the list of available configurations, open the properties view (Window -> Show View -> Other' -> General/Properties). Click on the white arrow in the upper right corner of the Properties view, and select 'Customize property view'. You should see a dialog with the list of all available configurations.
-
-
-[[File:images/fig1.png|Open the property view customization menu]]
-
-As the standard configurations are read-only, you cannot edit them directly. You will first need to make a copy of the configuration. You will then be able to edit the copy.
-
-[[File:images/fig2.png|Copy an existing configuration to edit it]]
-
-
-The Property View Editor has three panes:
-* The Editor part
-* The Preview part
-* The Properties part
-The Editor presents the elements defined by this configuration. The Preview displays an overview of the selected View, as it will be displayed in the property view at runtime. The properties view displays the properties of the selected element
-
-[[File:images/fig3.png|The property view Editor]]
-
-
-=== The property view elements ===
-
-The editor contains a Tree, containing the following elements :
-* Context: it is a property view configuration. You will typically have one property view Context per Ecore Metamodel or UML Profile, but you can choose the granularity you want. A context has a list of tabs, and a list of views.
-* Tab: describes a tab in the property view. A tab has a label, an (optional) image, and can be indented. It also has a priority.
-* View: describes a property view associated to a selection. The view has a name, a constraint, a multiplicity and a list of sections. The constraint is used to determine for what kind of object the view should be displayed.
-* Constraint: a query that inputs a selection, and outputs a boolean (true if the constraint matches the input object, false otherwise). It is possible to implement your own constraint type (In Java).
-* Section: a section is a sub-part of a view. A view generally needs only one section, but there are cases where you need more than one section. A section is associated to a single tab, so, if you want to display more than one tab in a single view (For example, ' UML ' and ' Profile ' in the UML property view), you will need at least two sections in that view (One for each tab). Another (advanced) case is described in ' Dynamic sections '. A section has a name, a tab, and a Composite.
-* Composite: this is the actual presentation element. The composite is a widget which can contain other widgets. A composite has a type, and a list of widgets.
-* Layout: all composites need a layout. The default is ' PropertiesLayout ', which is a variant of the SWT standard GridLayout. A PropertiesLayout has a number of columns. The default is one column.
-* Property Editor: a property editor is a widget which is used to edit a single property of the selected object. You will typically have one Property editor for each property that you want to edit in the property view. The property editor has a property, and a widget to edit that property.
-* Standard Widget: a widget from the standard SWT Library. Few of them are currently available, because they are rarely needed.
-The Tree allows reordering or removing easily the elements (Through drag & drop, delete). The editor also supports the Undo/Redo commands.
-
-==== Preview ====
-
-The preview displays a real-time overview of the selected View. However, some widgets can only be computed at runtime, which prevents a pertinent preview. This is the case of the 'Enum Radio' widget, for example, as the enumerated values are only known at runtime.
-
-==== Property view ====
-
-The property view is used to edit the properties of the element selected in the tree. The property view uses the Papyrus Property View framework, thus can be customized just the same way you would customize any other property view.
-
-[[File:images/fig4.png| the three panes of the Property view editor]]
-
-=== Priorities between views ===
-When more than one view match a selection, a priority mechanism will determine which one(s) should be displayed. The priorities are defined at the level of the view's constraints, i.e. if the constraint for a View A overrides a constraint for the View B, the View B won't be displayed. For example, a UML Class from a Class Diagram will match many views (The list is not exhaustive):
-
-* SingleClass (From UML)
-* MultipleClass (As the -1 multiplicity actually means 'any number of elements')
-* SingleElement (And MultipleElement)
-* SingleClassifier (And MultipleClassifier)
-* *Style (From GMF Notation model)
-* StereotypeDisplay (From UML Notation model)
-
-The priorities are computed in two ways:
-
-* Automatic, according to the Java constraints implementations
-* Statically, according to the property view configuration
-
-When the 'isOverrideable' property is set to false for a Constraint (In the property view model), only the static rules will be taken into account.
-
-[[File:images/fig5.png|The constraint cannot be dynamically overridden]]
-
-The automatic rules are the following:
-
-* A constraint with a multiplicity of 1 always overrides the same constraint with a multiplicity of -1 (Or >1). Thus, 'MultipleClass' won't be displayed, because 'SingleClass' also matches our selection.
-* An EMF (Or UML) 'Instance of' constraint always overrides a constraint matching a supertype. Thus, 'SingleClassifier' won't be displayed, because a Class is more specific than a Classifier. However, 'SingleElement' *will be* displayed, because it is not overrideable (isOverrideable=false).
-* A stereotype constraint (HasStereotype) will *not* override its UML 'Instance of' constraint. However, a specific implementation of this constraint has been provided for Scade, which *will* override the UML metaclass (i.e., a Block will override a Class' property view, hiding the UML tab).
-* For CompositeConstraints: if a composite constraint is a superset of another constraint, it will override it (It is more specific). For example, a Composite Constraint 'isA and isB' will override a constraint 'isB', but will not override a constraint 'isB and isC'.
-
-Please note that each constraint has its own implementation of the overrides() method. See the advanced chapter for more information
-
-The static rule is simple: when a Constraint explicitly overrides another constraint, it will always override it. This is especially useful when you've marked a constraint as 'overrideable=false', but still want to override it in a specific case (Remember that overrideable=false only applies to *automatic* constraint resolution).
-
-[[File:images/fig6.png|Force this constraint to override another constraint]]
-
-
-Finally, in the previous example, the following views will be displayed:
-
-* SingleClass (Overrides MultipleClass, Single/MultipleClassifier ; UML Tab)
-* SingleElement (overrideable=false ; Profile tab)
-* FillStyle, FontStyle, LineStyle (Appearance tab)
-* StereotypeDisplay (overrideable=false ; Appearance tab)
-
-=== Preferences ===
-
-When you make a copy of a property view, it is not automatically activated. Thus, the modifications brought to the copy are not immediately visible on your property view. To activate a property view, you need to open the Papyrus preferences, from Window > Preferences.
-
-[[File:images/fig7.png|Preferences]]
-
-When making a copy of an existing configuration, you should uncheck the default one, and check the new one.
-
-== ADVANCED CUSTOMIZATION ==
-
-The customization tool only allows basic operations, such as adding, removing or reordering properties.
-
-The property view framework is much more powerful, but this requires some Java development. This chapter will focus on the advanced customization of the property view.
-
-=== The Environment model ===
-
-To associate Java implementations with the property view model, you need to declare an Environment model. You can create a new Environment model with the 'Environment Model' wizard in 'Example EMF Model Creation Wizards' category. Select 'Environment' as the Model Object.
-
-Once you've added your Java class declarations, you should register the environment model so that the property view knows about it. Add an extension to org.eclipse.papyrus.properties.environment, and select your model file.
-
-=== Create a new widget ===
-
-You can create new widgets for the property view. There are four kinds of graphical elements: CompositeWidget, Layout, StandardWidget and PropertyEditor.
-The widgets contain three common fields:
-
-* Label: The label displayed in the Customization editor when the user selects a widget type.
-* Namespace: The XWT namespace associated to the Widget.
-* WidgetClass: The simple name of the Java class implementing the Widget.
-
-The PropertyEditor contains two additional fields:
-
-* Multiplicity: The multiplicity of the properties it can handle (1 for single-valued properties, -1 for multivalued properties)
-* Type: The type of the properties it can handle.
-
-To implement a Composite, Layout or Standard widget, you should simply follow the SWT rules, i.e. extend either Composite, Canvas or Layout, and have a (Composite, int) constructor. To define a PropertyEditor, you have two options:
-
-* Extend Composite, have a (Composite, int) constructor, and implement the CustomizablePropertyEditor interface (From org.eclipse.papyrus.properties.widgets)
-* Extend directly AbstractPropertyEditor (From org.eclipse.papyrus.properties.widgets)
-
-=== Constraints ===
-
-Adding a Constraint is similar to creating a new Widget. You have two options to implement a new Constraint:
-
-* Implement the Constraint interface (From org.eclipse.papyrus.properties.constraints)
-* Extend the AbstractConstraint class (From org.eclipse.papyrus.properties.constraints)
-
-The important methods are the following (depending on whether you're implement Constraint or extending AbstractConstraint):
-
-* setDescriptor/setConstraintDescriptor:
-** Configures the constraint.
-* match(Object)/match(IStructuredSelection) : Boolean
-** Indicates whether this constraint matches the given given or not
-* overrides(Constraint) : Boolean
-** Indicates whether this constraint overrides another constraint or not. A constraint should override another constraint when it is more specific.
-* equivalent(Constraint) : Boolean
-** This is only used by AbstractConstraint. Two constraints are equivalent if they have the same parameters (ConstraintDescriptor). Two equivalent constraints can have different multiplicities.
-
-The equivalent() and overrides() methods are used to automatically resolve constraints conflicts (Two different constraints matching the same element).
-Once the Constraint is implemented, don't forget to register it in your environment model.
-
-===ModelElement===
-
-The ModelElement is the interface between the property view and your domain model. It is used to retrieve information about the object(s) being edited from the property. These informations will be used to configure the widget. AbstractModelElement provides a base implementation for this interface.
-
-All methods from this interface take a single parameter, which is the name of the property being edited.
-
-* getObservable(String) / doGetObservable(String) :
-
-This method returns an IObservable which will be used to read and write a single property from the represented object. It should return an IObservableValue for single-valued properties, and IObservableList for multi-valued properties.
-
-* getContentProvider(String) :
-
-This method is only used for reference and enumerated properties. It should return a list of values which can be set to the edited property. Unlike IStructuredContentProvider, this provider will not rely on a StructuredViewer to retrieve an input object: the method getElement() will be called without any parameter, so the implementation should be able to retrieve its own typically. This will typically be achieved by passing a context object in the provider's constructor.
-
-* getLabelProvider(String) :
-
-This method is used to display an element's label for a few widgets. Note that the same instance of label provider can be used by more than one Viewer for a given property. For example, the MultiReference widget will display three viewers, each using the same label provider. Each viewer will try to dispose the LabelProvider as soon as they are themselves disposed (For example, when closing the selection dialog from MultiReference). Thus, you should probably not implement the dispose() method, to avoid inconsistent providers.
-
-* getValidator(String) :
-
-This method returns an IValidator, if there's one which is set up for the current property.
-
-=== ModelElement Factory ===
-
-The ModelElements are associated to DataContextElements through a ModelElementFactory. The ModelElementFactory is defined on the DataContextRoot. All children of a DataContextRoot will share the same ModelElementFactory.
-
-To add a new ModelElement, you should also create a new ModelElementFactory, and register it in your Environment model. Then, you can set this factory to your DataContextRoot.
-
-Note: to display the Data contexts, you need to check the toggle button on top of the editor: [[File:images/fig8.png]]
-
-[[File:images/fig9.png|The UML DataContextRoots, with their own factories]]
-
-=== Content Providers and Widgets ===
-
-Note: The ContentProviders have been refactored in Papyrus 0.9, to be simplified. However, most of this chapter should remain true.
-
-The ContentProvider is a complex features, which often evolves in the Papyrus property view. The ModelElement has been designed to be compatible with many kinds of different widgets (Combo-box, Tree-based dialogs'). The problem is that these widgets typically use different kinds of JFace ContentProvider (IStructuredContentProvider for flat display, ITreeContentProvider for Tree display). In the Property view, we needed to unify these providers.
-
-Thus, it is recommended to use a IHierarchicContentProvider, which extends ITreeContentProvider, with an additional method: isValidValue(Object). In a Tree, we typically have two kinds of elements: the elements which can potentially be selected, and their containers, which often cannot. The isValidValue() method is used to distinguish between these values.
-
-When a flat widget (e.g. ReferenceCombo) is used, only the valid values will be displayed. When a tree-based widget (e.g. ReferenceDialog) is used, a sub-tree will be displayed, excluding the sub-trees which don't contain any valid value. Moreover, the invalid values won't be selectable (For example, in the ReferenceDialog, the 'ok' button will be grayed).
-
-[[File:images/fig10.png|IHierarchicContentProvider at runtime]]
-
-=== Dynamic sections ===
-
-Sometimes, the property view should not depend on a selection, but on a specific property of the selected element. In such a case, it is frequent that this specific property might be edited by the property view itself. However, the property view is only refreshed when the selection changes.
-
-To overcome this problem, Papyrus offers a 'Dynamic section' feature, which allows refreshing dynamically one or more sections of the property view. For example, when you're editing a View's constraint in the Property view Editor, the constraint's properties directly depend on the constraint's type. When you select an UML constraint, the constraint's parameter is the name of a UML Metaclass. When you select an EMF constraint, the constraint has two parameters: Namespace URI of the Metamodel, and the name of the Metaclass. Changing the constraint type should also change the constraint's parameters editors.
-
-[[File:images/fig11.png|A view with a static and a dynamic section]]
-
-This can be achieved with dynamic sections, i.e. a section with a constraint. The constraint will be executed once at the beginning, and once again each time a property from the property view changes. If the constraint is matched, the section will be displayed. Otherwise, it will be hidden.
-A view with dynamic sections will typically look like the following:
-
-* A single unconstrained section containing the common parameters
-* One dynamic (i.e. constrained) section for each specific case
-
-[[File:images/fig12.png|Dynamic sections configuration]]
-
-Please note that tabs cannot be added nor removed dynamically. For example, when you apply a stereotype on a UML Element, the tab associated to the stereotype's property view cannot be displayed until you select the element again.
-
-=== Property view Header ===
-The Eclipse Tabbed Property View offers an extension point to define the label provider for the property view header. However, this label provider will be specific to the editor. For generic editors, it is not always possible to provide a pertinent label provider: they will always be too generic, and won't be able to handle specific elements. For example, a generic EMF Model Editor with the customizable property view will only be able to display standard EMF labels and icons. To overcome this problem, Papyrus offers a configurable label provider for the header: org.eclipse.papyrus.properties.provider.SelectionLabelProvider
-
-This label provider uses the selected element to find the most appropriate label provider, then dispatches the getText and getIcon calls to it. This label provider can be configured through an extension point: org.eclipse.papyrus.properties.labelprovider
-
-This extension point takes an implementation of IFilteredLabelProvider and a priority. The IFilteredLabelProvider is a label provider with an additional method: boolean accept(IStructuredSelection). For each selection, the label provider accepting the selection, and having the highest priority will be used to display a header for it. It will then be possible to define a generic label provider for all java objects, with the lowest priority; another generic label provider for all EMF Objects, and a really specific label provider for a given metamodel (with the highest priority).
-In Papyrus, we have such an example for UML. The Papyrus UML Diagrams use the GMF model, which doesn't have icons. We wanted to have a different icon for each type of Diagram: this is not possible with a standard EMF label provider, which associates an icon to an EClass, independently of its instances' attributes.
-
-So, we registered the standard EMF Label Provider with a medium priority, which can handle any kind of EObject, and a UML Label Provider, which can only handle UML Elements and GMF Diagrams, with a higher priority.
-
-The lower the priority number, the higher the priority actually is:
-
-* 100: Lowest priority. The standard EMF Object label provider has a priority of 100, and is called iff no other label provider can accept an EObject.
-* 50: Medium priority. The Papyrus UML Label Provider has a priority of 50.
-* 10: High priority.
-* 0: Highest priority.
-
-If no label provider matches the selection, the default JFace LabelProvider is used.
-
-=== Binding and Validation ===
-
-View Properties support JFace Databinding, which connects our UI to our model. For the validation there are two kinds of validators:
-
-* Widget validators: they check that our input is the kind of data expected by our widget before synchronizing it ( e.g IntegerEditor must have a correct integer for input)
-
-* Model validators: they check that our input verifies our model constraint, they must be instantiate in UmlModelElement#getValidator();
-
-If there are errors during the binding a control decoration is shown next to the widget. It also supports three level of severity (Ok, Warning, Error).
-
-[[File:images/fig13.png|Example of binding with a model validator and warning severity result]]
-
-=== Field coloration ===
-
-Properties views have fields' coloration. If you modify a value the background of the field will be orange, when you validate a change the background will turn green for couple of seconds if the synchronization was successful, it will turn red otherwise.
-
-[[File:images/fig14.png|Example of a field being modified]]
-
-== GENERATION TOOL ==
-
-Editing an existing property view can be useful, but most of the time, you'll want a brand new configuration for your own profile or meta-model. Thus, the framework provides a tool to automatically generate the initial property view, which you can then customize using the customization tool.
-The generator can create a property view configuration from either a UML Profile or an Ecore Meta-model. The wizard is available in the Papyrus category: File -> New -> Other' -> Papyrus/Property view configuration.
-
-The wizard provides two default generators:
-
-* Generate a property view from a UML Profile
-* Generate a property view from an Ecore Meta-model
-
-The source file must be located in your workspace. A default target file named will be filled with the .ctx extension (This is the extension for a property view configuration).
-
-Press next: a combo asks you which strategy to use.
-
-A basic method: all the elements from the profile or meta-model will be extracted, with no dependencies to other models.
-
-Same CTX file: you are asked to choose which models you want to extract, and will be saved in the same file
-
-Different CTX file(s): you are asked to choose which models you want to extract and they will be saved in different files, (each profile name will be the name of the generated ctx file)
-
-Press next: a table with all the elements extracted from your profile or meta-model is displayed. This table contains four columns:
-
-* Field: the name of the element or property
-* Display single: whether this property should be displayed when a single instance of this element is selected
-* Display multiple: whether this property should be displayed when more than one instance of this element is selected
-* Description: the description of the property (Most of the time, it will be N/A, as the default generators cannot extract the documentation from the source model).
-
-Press finish: two files or more files according to the chosen strategy and a folder are generated:
-
-* The *.ctx file, corresponding to your property view configuration
-* The ui/ folder, containing a set of XWT files, which contain the graphical information of your property views
-* The *FieldSelection.xmi file, which reminds the choices you've made about displaying each property. This file is currently unused.
-
-You can now open the *.ctx file and customize your property view.
-
-
-== DEPLOYING A PROPERTY VIEW ==
-
-Papyrus provides a simple tool to deploy a property view locally (Right click on a CTX file -> Deploy/Undeploy) \ No newline at end of file
+==Properties view customization==
+===Introduction===
+In UML, the main information is represented in graphical diagrams. However, it is not always possible to represent graphically the whole semantic of UML, not talking of all the cosmetic properties. For example, it is pretty easy to represent and to edit a Class' name graphically. While we still can represent the 'is abstract' property graphically (By using the italic font for the Class' name), it is harder to edit this property directly from the diagram. Worse, the 'is leaf' property doesn't even have a graphical representation. Thus, we often need a different view for representing all the properties of a UML Element, without polluting the graphical view.
+
+
+As UML is highly extensible, through the mean of Profiles, it is also important to be able to represent and edit the profile's properties, without managing everything from the diagram view.
+
+
+Eclipse provides a standard view for these properties: the Properties Page. This view is a table representing all the properties available for the selected Element, including the ones that cannot be represented or edited graphically. This view is pretty useful, but is neither really user-friendly nor optimal, as it may require up to four clicks to simply edit a comment's body. Moreover, it can only be extended via Java code, which requires some technical skills and prevents a dynamic modification of the view, as the Java code needs to be recompiled after each modification.
+
+
+There is an extension of the base Property View framework, still in the standard Eclipse implementation, which fixes some of these problems. It is called the 'Eclipse Tabbed Properties View' framework. It provides a better look and feel for the property view, with more flexibility, and a better usability. However, it keeps being difficult to customize, as it still hard-coded in Java.
+
+
+Papyrus provides its own Property View framework, based on the Tabbed Property View framework. The Papyrus Property View can be extended in two ways:
+* Dynamically, for the layout of the property view: show/hide a property, reorder the properties, add/remove a tab'
+* Statically, through Java code, for advanced operations: create a new widget for editing the properties, add a custom Content Provider for selecting a reference value'
+This document aims at detailing all the features related to the property view customization, both dynamically and statically.
+
+===The customization tool===
+
+Most customizations can be done through the Property view customization Editor. It provides native support for EMF Models, UML models and profiles. It also provides a set of basic widgets and property editors.
+
+=== Edit a configuration ===
+
+Each property view configuration is defined in a different set of files. Each configuration can contain elements from different contexts, but we typically have one configuration per Ecore Metamodel or UML Profile (i.e. one configuration for UML, one for the Diagram Appearance tab, another one for the SysML profile')
+
+To see the list of available configurations, open the properties view (Window -> Show View -> Other' -> General/Properties). Click on the white arrow in the upper right corner of the Properties view, and select 'Customize property view'. You should see a dialog with the list of all available configurations.
+
+
+[[File:images/fig1.png|Open the property view customization menu]]
+
+As the standard configurations are read-only, you cannot edit them directly. You will first need to make a copy of the configuration. You will then be able to edit the copy.
+
+[[File:images/fig2.png|Copy an existing configuration to edit it]]
+
+
+The Property View Editor has three panes:
+* The Editor part
+* The Preview part
+* The Properties part
+The Editor presents the elements defined by this configuration. The Preview displays an overview of the selected View, as it will be displayed in the property view at runtime. The properties view displays the properties of the selected element
+
+[[File:images/fig3.png|The property view Editor]]
+
+
+====The property view elements====
+
+The editor contains a Tree, containing the following elements :
+* Context: it is a property view configuration. You will typically have one property view Context per Ecore Metamodel or UML Profile, but you can choose the granularity you want. A context has a list of tabs, and a list of views.
+* Tab: describes a tab in the property view. A tab has a label, an (optional) image, and can be indented. It also has a priority.
+* View: describes a property view associated to a selection. The view has a name, a constraint, a multiplicity and a list of sections. The constraint is used to determine for what kind of object the view should be displayed.
+* Constraint: a query that inputs a selection, and outputs a boolean (true if the constraint matches the input object, false otherwise). It is possible to implement your own constraint type (In Java).
+* Section: a section is a sub-part of a view. A view generally needs only one section, but there are cases where you need more than one section. A section is associated to a single tab, so, if you want to display more than one tab in a single view (For example, ' UML ' and ' Profile ' in the UML property view), you will need at least two sections in that view (One for each tab). Another (advanced) case is described in ' Dynamic sections '. A section has a name, a tab, and a Composite.
+* Composite: this is the actual presentation element. The composite is a widget which can contain other widgets. A composite has a type, and a list of widgets.
+* Layout: all composites need a layout. The default is ' PropertiesLayout ', which is a variant of the SWT standard GridLayout. A PropertiesLayout has a number of columns. The default is one column.
+* Property Editor: a property editor is a widget which is used to edit a single property of the selected object. You will typically have one Property editor for each property that you want to edit in the property view. The property editor has a property, and a widget to edit that property.
+* Standard Widget: a widget from the standard SWT Library. Few of them are currently available, because they are rarely needed.
+The Tree allows reordering or removing easily the elements (Through drag & drop, delete). The editor also supports the Undo/Redo commands.
+
+=====Preview=====
+
+The preview displays a real-time overview of the selected View. However, some widgets can only be computed at runtime, which prevents a pertinent preview. This is the case of the 'Enum Radio' widget, for example, as the enumerated values are only known at runtime.
+
+=====Property view=====
+
+The property view is used to edit the properties of the element selected in the tree. The property view uses the Papyrus Property View framework, thus can be customized just the same way you would customize any other property view.
+
+[[File:images/fig4.png| the three panes of the Property view editor]]
+
+=== Priorities between views ===
+When more than one view match a selection, a priority mechanism will determine which one(s) should be displayed. The priorities are defined at the level of the view's constraints, i.e. if the constraint for a View A overrides a constraint for the View B, the View B won't be displayed. For example, a UML Class from a Class Diagram will match many views (The list is not exhaustive):
+
+* SingleClass (From UML)
+* MultipleClass (As the -1 multiplicity actually means 'any number of elements')
+* SingleElement (And MultipleElement)
+* SingleClassifier (And MultipleClassifier)
+* *Style (From GMF Notation model)
+* StereotypeDisplay (From UML Notation model)
+
+The priorities are computed in two ways:
+
+* Automatic, according to the Java constraints implementations
+* Statically, according to the property view configuration
+
+When the 'isOverrideable' property is set to false for a Constraint (In the property view model), only the static rules will be taken into account.
+
+[[File:images/fig5.png|The constraint cannot be dynamically overridden]]
+
+The automatic rules are the following:
+
+* A constraint with a multiplicity of 1 always overrides the same constraint with a multiplicity of -1 (Or >1). Thus, 'MultipleClass' won't be displayed, because 'SingleClass' also matches our selection.
+* An EMF (Or UML) 'Instance of' constraint always overrides a constraint matching a supertype. Thus, 'SingleClassifier' won't be displayed, because a Class is more specific than a Classifier. However, 'SingleElement' *will be* displayed, because it is not overrideable (isOverrideable=false).
+* A stereotype constraint (HasStereotype) will *not* override its UML 'Instance of' constraint. However, a specific implementation of this constraint has been provided for Scade, which *will* override the UML metaclass (i.e., a Block will override a Class' property view, hiding the UML tab).
+* For CompositeConstraints: if a composite constraint is a superset of another constraint, it will override it (It is more specific). For example, a Composite Constraint 'isA and isB' will override a constraint 'isB', but will not override a constraint 'isB and isC'.
+
+Please note that each constraint has its own implementation of the overrides() method. See the advanced chapter for more information
+
+The static rule is simple: when a Constraint explicitly overrides another constraint, it will always override it. This is especially useful when you've marked a constraint as 'overrideable=false', but still want to override it in a specific case (Remember that overrideable=false only applies to *automatic* constraint resolution).
+
+[[File:images/fig6.png|Force this constraint to override another constraint]]
+
+
+Finally, in the previous example, the following views will be displayed:
+
+* SingleClass (Overrides MultipleClass, Single/MultipleClassifier ; UML Tab)
+* SingleElement (overrideable=false ; Profile tab)
+* FillStyle, FontStyle, LineStyle (Appearance tab)
+* StereotypeDisplay (overrideable=false ; Appearance tab)
+
+====Preferences====
+
+When you make a copy of a property view, it is not automatically activated. Thus, the modifications brought to the copy are not immediately visible on your property view. To activate a property view, you need to open the Papyrus preferences, from Window > Preferences.
+
+[[File:images/fig7.png|Preferences]]
+
+When making a copy of an existing configuration, you should uncheck the default one, and check the new one.
+
+===Advanced Customization===
+
+The customization tool only allows basic operations, such as adding, removing or reordering properties.
+
+The property view framework is much more powerful, but this requires some Java development. This chapter will focus on the advanced customization of the property view.
+
+====The Environment model====
+
+To associate Java implementations with the property view model, you need to declare an Environment model. You can create a new Environment model with the 'Environment Model' wizard in 'Example EMF Model Creation Wizards' category. Select 'Environment' as the Model Object.
+
+Once you've added your Java class declarations, you should register the environment model so that the property view knows about it. Add an extension to org.eclipse.papyrus.properties.environment, and select your model file.
+
+====Create a new widget====
+
+You can create new widgets for the property view. There are four kinds of graphical elements: CompositeWidget, Layout, StandardWidget and PropertyEditor.
+The widgets contain three common fields:
+
+* Label: The label displayed in the Customization editor when the user selects a widget type.
+* Namespace: The XWT namespace associated to the Widget.
+* WidgetClass: The simple name of the Java class implementing the Widget.
+
+The PropertyEditor contains two additional fields:
+
+* Multiplicity: The multiplicity of the properties it can handle (1 for single-valued properties, -1 for multivalued properties)
+* Type: The type of the properties it can handle.
+
+To implement a Composite, Layout or Standard widget, you should simply follow the SWT rules, i.e. extend either Composite, Canvas or Layout, and have a (Composite, int) constructor. To define a PropertyEditor, you have two options:
+
+* Extend Composite, have a (Composite, int) constructor, and implement the CustomizablePropertyEditor interface (From org.eclipse.papyrus.properties.widgets)
+* Extend directly AbstractPropertyEditor (From org.eclipse.papyrus.properties.widgets)
+
+====Constraints====
+
+Adding a Constraint is similar to creating a new Widget. You have two options to implement a new Constraint:
+
+* Implement the Constraint interface (From org.eclipse.papyrus.properties.constraints)
+* Extend the AbstractConstraint class (From org.eclipse.papyrus.properties.constraints)
+
+The important methods are the following (depending on whether you're implement Constraint or extending AbstractConstraint):
+
+* setDescriptor/setConstraintDescriptor:
+** Configures the constraint.
+* match(Object)/match(IStructuredSelection) : Boolean
+** Indicates whether this constraint matches the given given or not
+* overrides(Constraint) : Boolean
+** Indicates whether this constraint overrides another constraint or not. A constraint should override another constraint when it is more specific.
+* equivalent(Constraint) : Boolean
+** This is only used by AbstractConstraint. Two constraints are equivalent if they have the same parameters (ConstraintDescriptor). Two equivalent constraints can have different multiplicities.
+
+The equivalent() and overrides() methods are used to automatically resolve constraints conflicts (Two different constraints matching the same element).
+Once the Constraint is implemented, don't forget to register it in your environment model.
+
+====ModelElement====
+
+The ModelElement is the interface between the property view and your domain model. It is used to retrieve information about the object(s) being edited from the property. These informations will be used to configure the widget. AbstractModelElement provides a base implementation for this interface.
+
+All methods from this interface take a single parameter, which is the name of the property being edited.
+
+* getObservable(String) / doGetObservable(String) :
+
+This method returns an IObservable which will be used to read and write a single property from the represented object. It should return an IObservableValue for single-valued properties, and IObservableList for multi-valued properties.
+
+* getContentProvider(String) :
+
+This method is only used for reference and enumerated properties. It should return a list of values which can be set to the edited property. Unlike IStructuredContentProvider, this provider will not rely on a StructuredViewer to retrieve an input object: the method getElement() will be called without any parameter, so the implementation should be able to retrieve its own typically. This will typically be achieved by passing a context object in the provider's constructor.
+
+* getLabelProvider(String) :
+
+This method is used to display an element's label for a few widgets. Note that the same instance of label provider can be used by more than one Viewer for a given property. For example, the MultiReference widget will display three viewers, each using the same label provider. Each viewer will try to dispose the LabelProvider as soon as they are themselves disposed (For example, when closing the selection dialog from MultiReference). Thus, you should probably not implement the dispose() method, to avoid inconsistent providers.
+
+* getValidator(String) :
+
+This method returns an IValidator, if there's one which is set up for the current property.
+
+====ModelElement Factory====
+
+The ModelElements are associated to DataContextElements through a ModelElementFactory. The ModelElementFactory is defined on the DataContextRoot. All children of a DataContextRoot will share the same ModelElementFactory.
+
+To add a new ModelElement, you should also create a new ModelElementFactory, and register it in your Environment model. Then, you can set this factory to your DataContextRoot.
+
+Note: to display the Data contexts, you need to check the toggle button on top of the editor: [[File:images/fig8.png]]
+
+[[File:images/fig9.png|The UML DataContextRoots, with their own factories]]
+
+====Content Providers and Widgets====
+
+Note: The ContentProviders have been refactored in Papyrus 0.9, to be simplified. However, most of this chapter should remain true.
+
+The ContentProvider is a complex features, which often evolves in the Papyrus property view. The ModelElement has been designed to be compatible with many kinds of different widgets (Combo-box, Tree-based dialogs'). The problem is that these widgets typically use different kinds of JFace ContentProvider (IStructuredContentProvider for flat display, ITreeContentProvider for Tree display). In the Property view, we needed to unify these providers.
+
+Thus, it is recommended to use a IHierarchicContentProvider, which extends ITreeContentProvider, with an additional method: isValidValue(Object). In a Tree, we typically have two kinds of elements: the elements which can potentially be selected, and their containers, which often cannot. The isValidValue() method is used to distinguish between these values.
+
+When a flat widget (e.g. ReferenceCombo) is used, only the valid values will be displayed. When a tree-based widget (e.g. ReferenceDialog) is used, a sub-tree will be displayed, excluding the sub-trees which don't contain any valid value. Moreover, the invalid values won't be selectable (For example, in the ReferenceDialog, the 'ok' button will be grayed).
+
+[[File:images/fig10.png|IHierarchicContentProvider at runtime]]
+
+====Dynamic sections====
+
+Sometimes, the property view should not depend on a selection, but on a specific property of the selected element. In such a case, it is frequent that this specific property might be edited by the property view itself. However, the property view is only refreshed when the selection changes.
+
+To overcome this problem, Papyrus offers a 'Dynamic section' feature, which allows refreshing dynamically one or more sections of the property view. For example, when you're editing a View's constraint in the Property view Editor, the constraint's properties directly depend on the constraint's type. When you select an UML constraint, the constraint's parameter is the name of a UML Metaclass. When you select an EMF constraint, the constraint has two parameters: Namespace URI of the Metamodel, and the name of the Metaclass. Changing the constraint type should also change the constraint's parameters editors.
+
+[[File:images/fig11.png|A view with a static and a dynamic section]]
+
+This can be achieved with dynamic sections, i.e. a section with a constraint. The constraint will be executed once at the beginning, and once again each time a property from the property view changes. If the constraint is matched, the section will be displayed. Otherwise, it will be hidden.
+A view with dynamic sections will typically look like the following:
+
+* A single unconstrained section containing the common parameters
+* One dynamic (i.e. constrained) section for each specific case
+
+[[File:images/fig12.png|Dynamic sections configuration]]
+
+Please note that tabs cannot be added nor removed dynamically. For example, when you apply a stereotype on a UML Element, the tab associated to the stereotype's property view cannot be displayed until you select the element again.
+
+====Property view Header====
+The Eclipse Tabbed Property View offers an extension point to define the label provider for the property view header. However, this label provider will be specific to the editor. For generic editors, it is not always possible to provide a pertinent label provider: they will always be too generic, and won't be able to handle specific elements. For example, a generic EMF Model Editor with the customizable property view will only be able to display standard EMF labels and icons. To overcome this problem, Papyrus offers a configurable label provider for the header: org.eclipse.papyrus.properties.provider.SelectionLabelProvider
+
+This label provider uses the selected element to find the most appropriate label provider, then dispatches the getText and getIcon calls to it. This label provider can be configured through an extension point: org.eclipse.papyrus.properties.labelprovider
+
+This extension point takes an implementation of IFilteredLabelProvider and a priority. The IFilteredLabelProvider is a label provider with an additional method: boolean accept(IStructuredSelection). For each selection, the label provider accepting the selection, and having the highest priority will be used to display a header for it. It will then be possible to define a generic label provider for all java objects, with the lowest priority; another generic label provider for all EMF Objects, and a really specific label provider for a given metamodel (with the highest priority).
+In Papyrus, we have such an example for UML. The Papyrus UML Diagrams use the GMF model, which doesn't have icons. We wanted to have a different icon for each type of Diagram: this is not possible with a standard EMF label provider, which associates an icon to an EClass, independently of its instances' attributes.
+
+So, we registered the standard EMF Label Provider with a medium priority, which can handle any kind of EObject, and a UML Label Provider, which can only handle UML Elements and GMF Diagrams, with a higher priority.
+
+The lower the priority number, the higher the priority actually is:
+
+* 100: Lowest priority. The standard EMF Object label provider has a priority of 100, and is called iff no other label provider can accept an EObject.
+* 50: Medium priority. The Papyrus UML Label Provider has a priority of 50.
+* 10: High priority.
+* 0: Highest priority.
+
+If no label provider matches the selection, the default JFace LabelProvider is used.
+
+====Binding and Validation====
+
+View Properties support JFace Databinding, which connects our UI to our model. For the validation there are two kinds of validators:
+
+* Widget validators: they check that our input is the kind of data expected by our widget before synchronizing it ( e.g IntegerEditor must have a correct integer for input)
+
+* Model validators: they check that our input verifies our model constraint, they must be instantiate in UmlModelElement#getValidator();
+
+If there are errors during the binding a control decoration is shown next to the widget. It also supports three level of severity (Ok, Warning, Error).
+
+[[File:images/fig13.png|Example of binding with a model validator and warning severity result]]
+
+====Field coloration====
+
+Properties views have fields' coloration. If you modify a value the background of the field will be orange, when you validate a change the background will turn green for couple of seconds if the synchronization was successful, it will turn red otherwise.
+
+[[File:images/fig14.png|Example of a field being modified]]
+
+===Generation Tool===
+
+Editing an existing property view can be useful, but most of the time, you'll want a brand new configuration for your own profile or meta-model. Thus, the framework provides a tool to automatically generate the initial property view, which you can then customize using the customization tool.
+The generator can create a property view configuration from either a UML Profile or an Ecore Meta-model. The wizard is available in the Papyrus category: File -> New -> Other' -> Papyrus/Property view configuration.
+
+The wizard provides two default generators:
+
+* Generate a property view from a UML Profile
+* Generate a property view from an Ecore Meta-model
+
+The source file must be located in your workspace. A default target file named will be filled with the .ctx extension (This is the extension for a property view configuration).
+
+Press next: a combo asks you which strategy to use.
+
+A basic method: all the elements from the profile or meta-model will be extracted, with no dependencies to other models.
+
+Same CTX file: you are asked to choose which models you want to extract, and will be saved in the same file
+
+Different CTX file(s): you are asked to choose which models you want to extract and they will be saved in different files, (each profile name will be the name of the generated ctx file)
+
+Press next: a table with all the elements extracted from your profile or meta-model is displayed. This table contains four columns:
+
+* Field: the name of the element or property
+* Display single: whether this property should be displayed when a single instance of this element is selected
+* Display multiple: whether this property should be displayed when more than one instance of this element is selected
+* Description: the description of the property (Most of the time, it will be N/A, as the default generators cannot extract the documentation from the source model).
+
+Press finish: two files or more files according to the chosen strategy and a folder are generated:
+
+* The *.ctx file, corresponding to your property view configuration
+* The ui/ folder, containing a set of XWT files, which contain the graphical information of your property views
+* The *FieldSelection.xmi file, which reminds the choices you've made about displaying each property. This file is currently unused.
+
+You can now open the *.ctx file and customize your property view.
+
+
+===Deploying a property view===
+
+Papyrus provides a simple tool to deploy a property view locally (Right click on a CTX file -> Deploy/Undeploy)
+
+==Multipllicity Editor==
+===Description===
+The multiplicity editor contains two modes of edition:
+* The '''simple''' mode which allows to edit the lower and the upper values from a unique editor
+* The '''advanced''' mode which allows to edit the lower and the upper values from two editors of ValueSpecification.
+
+===Usage===
+====Simple mode====
+The simple mode is represented as the following:
+
+[[File:images/simpleMode.png]]
+
+This editor must be filled by the following pattern:
+{| class="wikitable" border="1" cellspacing="0"
+! Value filled
+! Lower value
+! Upper value
+|-
+| 1
+| <code>null</code> (default value is '''1''')
+| <code>null</code> (default value is '''1''')
+|-
+| x..y
+| <code>LiteralInteger</code> with value '''x'''
+| <code>LiteralUnlimitedNatural</code> with value '''y'''
+|-
+| x..*
+| <code>LiteralInteger</code> with value '''x'''
+| <code>LiteralUnlimitedNatural</code> with value '''-1''' (interpreted as <code>*</code>)
+|-
+| x
+| <code>LiteralInteger</code> with value '''x'''
+| <code>LiteralUnlimitedNatural</code> with value '''x'''
+|}
+
+The values set as lower and upper are always positive (except the <code>*</code> for the upper which is valued as '''-1''').
+
+This editor is usable only when the lower ValueSpecification is a <code>LiteralInteger</code> or <code>null</code> and when the upper ValueSpecification is a <code>LiteralUnlimitedNatural</code> or <code>null</code>.
+On the other hand, this editor will be displayed like the following:
+
+[[File:images/simpleModeDisabled.png]]
+
+====Advanced mode====
+=====Simple ValueSpecification editor=====
+The advanced mode with simple ValueSpecificatiton editors is represented as the following:
+
+[[File:images/advancedMode.png]]
+
+The lower and the upper ValueSpecification can be created/edited/deleted by the buttons:
+
+[[File:images/buttonsEdit.png]]
+
+=====XText ValueSpecification editor=====
+The advanced mode with XText ValueSpecification editors is represented as the following:
+
+[[File:images/advancedModeXText.png]]
+
+This editor use the XText ValueSpecification editors (explain [[Papyrus_User_Guide#UML_ValueSpecification_editor|here]]) with some specificities depending on lower or upper value edition.
+
+The specificity of the '''lower''' ValueSpecification edition is when the value filled is an integer, this one will be handled as <code>LiteralInteger</code> instead of <code>LiteralUnlimitedNatural</code> or <code>LiteralInteger</code> (the <code>*</code> value will create an <code>OpaqueExpression</code>).
+
+The specificity of the '''upper''' ValueSpecification edition is when the value filled is an integer or <code>*</code>:
+* if the integer is '''positive or -1''', a <code>LiteralUnlimitedNatural</code> will be created
+* if the integer is '''negative''', an <code>OpaqueExpression</code> will be created instead of <code>LiteralInteger</code>
+
+====Switch modes====
+This is possible to switch between the two modes by two ways:
+* The button in the multiplicity editor:
+
+[[File:images/buttonSwitch.png]]
+
+* The '''multiplicity editor''' preferences in the '''property views''' preferences:
+
+[[File:images/preferencesMultiplicityEditor.png]]
+
+Regarless of the way used to switch modes, the mode used is saved in the preferences and will be used for each multiplicity in Papyrus. \ No newline at end of file
diff --git a/plugins/editor/org.eclipse.papyrus.editor/plugin.xml b/plugins/editor/org.eclipse.papyrus.editor/plugin.xml
index e93975eabfb..656c9b7a877 100644
--- a/plugins/editor/org.eclipse.papyrus.editor/plugin.xml
+++ b/plugins/editor/org.eclipse.papyrus.editor/plugin.xml
@@ -1,25 +1,75 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
- <extension point="org.eclipse.ui.editors">
- <editor
- class="org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor"
- contributorClass="org.eclipse.papyrus.editor.PapyrusActionBarContributor"
- default="true"
- extensions="di"
- icon="icons/papyrus/Papyrus_16x16.gif"
- id="org.eclipse.papyrus.infra.core.papyrusEditor"
- matchingStrategy="org.eclipse.papyrus.editor.PapyrusMatchingStrategy"
- name="Papyrus Editor Core">
- </editor>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <category
- description="this a category of papyrus commands"
- id="org.eclipse.papyrus.editor.category"
- name="Papyrus Category">
- </category>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor"
+ contributorClass="org.eclipse.papyrus.editor.PapyrusActionBarContributor"
+ default="true"
+ extensions="di"
+ icon="icons/papyrus/Papyrus_16x16.gif"
+ id="org.eclipse.papyrus.infra.core.papyrusEditor"
+ matchingStrategy="org.eclipse.papyrus.editor.PapyrusMatchingStrategy"
+ name="Papyrus Editor Core">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <category
+ description="this a category of papyrus commands"
+ id="org.eclipse.papyrus.editor.category"
+ name="Papyrus Category">
+ </category>
+
+ <command
+ categoryId="org.eclipse.ui.category.navigate"
+ id="org.eclipse.papyrus.editor.nextTabCommand"
+ name="Next Tab">
+ </command>
+ <command
+ categoryId="org.eclipse.ui.category.navigate"
+ id="org.eclipse.papyrus.editor.previousTabCommand"
+ name="Previous Tab">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.bindings">
+ <key
+ commandId="org.eclipse.papyrus.editor.nextTabCommand"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+TAB">
+ </key>
+ <key
+ commandId="org.eclipse.papyrus.editor.previousTabCommand"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+M2+TAB">
+ </key>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.editor.handlers.NextTabHandler"
+ commandId="org.eclipse.papyrus.editor.nextTabCommand">
+ <activeWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.infra.core.papyrusEditor"/>
+ </with>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.editor.handlers.PreviousTabHandler"
+ commandId="org.eclipse.papyrus.editor.previousTabCommand">
+ <activeWhen>
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.infra.core.papyrusEditor">
+ </equals>
+ </with>
+ </activeWhen>
+ </handler>
+ </extension>
+
+</plugin>
diff --git a/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/NextTabHandler.java b/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/NextTabHandler.java
new file mode 100644
index 00000000000..99f02589ba2
--- /dev/null
+++ b/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/NextTabHandler.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Shuai Li (CEA LIST) <shuai.li@cea.fr> - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.editor.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+
+/**
+ * The handler for the next tab command that lets the user navigate to
+ * the next page of the active tab-folder with Ctrl+Tab
+ *
+ * @author Shuai Li
+ */
+public class NextTabHandler extends TraverseTabHandler {
+ public NextTabHandler() {
+ super(false);
+ }
+}
diff --git a/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/PreviousTabHandler.java b/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/PreviousTabHandler.java
new file mode 100644
index 00000000000..ae42ef0170c
--- /dev/null
+++ b/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/PreviousTabHandler.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Shuai Li (CEA LIST) <shuai.li@cea.fr> - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.editor.handlers;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+
+/**
+ * The handler for the previous tab command that lets the user navigate to
+ * the previous page of the active tab-folder with Ctrl+Shift+Tab
+ *
+ * @author Shuai Li
+ */
+public class PreviousTabHandler extends TraverseTabHandler {
+ public PreviousTabHandler() {
+ super(true);
+ }
+}
diff --git a/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/TraverseTabHandler.java b/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/TraverseTabHandler.java
new file mode 100644
index 00000000000..dba5f87e2e9
--- /dev/null
+++ b/plugins/editor/org.eclipse.papyrus.editor/src/org/eclipse/papyrus/editor/handlers/TraverseTabHandler.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Shuai Li (CEA LIST) <shuai.li@cea.fr> - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.editor.handlers;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.papyrus.editor.Activator;
+import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * The handler for the next/previous tab commands that let the user navigate to
+ * the next/previous page of the active tab-folder with Ctrl+Shift/Ctrl+Shift+Tab
+ *
+ * @author Shuai Li
+ */
+public abstract class TraverseTabHandler extends AbstractHandler {
+ private final boolean isPrevious;
+
+ public TraverseTabHandler() {
+ isPrevious = false;
+ }
+
+ public TraverseTabHandler(boolean isPrevious) {
+ this.isPrevious = isPrevious;
+ }
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+
+ if (activeWorkbenchWindow != null) {
+ IWorkbenchPart activePart = activeWorkbenchWindow.getActivePage().getActivePart();
+
+ if (activePart instanceof PapyrusMultiDiagramEditor) {
+ PapyrusMultiDiagramEditor papyrusEditor = (PapyrusMultiDiagramEditor) activePart;
+ try {
+ IPage nextPage = null;
+ if (isPrevious) {
+ nextPage = papyrusEditor.getISashWindowsContainer().getPreviousPage();
+ } else {
+ nextPage = papyrusEditor.getISashWindowsContainer().getNextPage();
+ }
+
+ papyrusEditor.getISashWindowsContainer().selectPage(nextPage);
+ } catch (Exception e) {
+ Activator.log.error(e);
+ }
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java
index a559d16e237..94e96cf856f 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java
@@ -1,145 +1,159 @@
-package org.eclipse.papyrus.infra.core.sasheditor.editor;
-
-import java.util.List;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ITabFolderModel;
-import org.eclipse.papyrus.infra.core.sasheditor.utils.IObservableList;
-import org.eclipse.ui.IEditorPart;
-
-public interface ISashWindowsContainer {
-
- /**
- * Get the currently active editor, or null if none is active.
- *
- * @return
- */
- public abstract IEditorPart getActiveEditor();
-
- /**
- * Get the currently active SashWindows Page.
- * This is s
- *
- * @return An {@link IPage} allowing to access current page data.
- */
- public abstract IPage getActiveSashWindowsPage();
-
- /**
- * Get the {@link ITabFolderModel} of the currently selected folder.
- *
- * @return
- */
- public ITabFolderModel getSelectedTabFolderModel();
-
- /**
- * Get the list of visible IPages. The visible IPages are the one that have there diagram area
- * visible.
- *
- * @return
- */
- public List<IPage> getVisiblePages();
-
- /**
- * Return a list of all folders opened in this SashContainer. The list should only
- * be used as a 'view' list. It should not be modified or written. The list
- * is observable.
- *
- * @return a read only and observable list of {@link IFolder}.
- */
- public IObservableList<IFolder> getIFolderList();
-
- /**
- * Get the list of visible IEditorPart obtain from the pages of type IEditorPage.
- * The visible IPages are the one that have there diagram area
- * visible.
- *
- * @return
- */
- public List<IEditorPart> getVisibleIEditorParts();
-
- /**
- * The <code>AbstractMultiPageSashEditor</code> implementation of this <code>IWorkbenchPart</code> method sets focus on the active nested
- * editor, if there is one.
- * <p>
- * Subclasses may extend or reimplement.
- * </p>
- */
- public abstract void setFocus();
-
- /**
- * Refresh the SashWindows.
- * Synchronize the internal structure with the {@link ISashWindowsContentProvider}.
- */
- public abstract void refreshTabs();
-
- /**
- * Add a PageChangedListener to the list of listeners.
- *
- * @param pageEventsManager
- */
- public abstract void addPageChangedListener(IPageChangedListener pageChangedListener);
-
- /**
- * Remove the PageChangedListener from the list of listeners.
- *
- * @param pageEventsManager
- */
- public abstract void removePageChangedListener(IPageChangedListener pageChangedListener);
-
- /**
- * Add a listener on Page LifeCycle events.
- * This implementation delegates to the internal PageTracker.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param listener
- *
- */
- public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener);
-
- /**
- * Remove a listener on Page LifeCycle events.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param listener
- *
- */
- public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener);
-
- /**
- * Add a listener {@link ITabMouseEventsListener} on folder's tabs events.
- *
- * @param listener
- */
- public void addFolderTabMouseEventListener(ITabMouseEventsListener listener);
-
- /**
- * Remove a listener on Page LifeCycle events.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param listener
- *
- */
- public void removeFolderTabMouseEventListener(ITabMouseEventsListener listener);
-
- /**
- * Set a {@link MenuManager} used to manage a contextual menu that is shown on the tabs area of the folders.
- *
- * @param menuManager
- * The {@link MenuManager} used to create the menu on the tab area.
- */
- public abstract void setFolderTabMenuManager(MenuManager menuManager);
-
- public abstract IPage lookupIPageByIEditorPart(IEditorPart editor);
-
- public abstract IPage lookupModelPage(Object rawModel);
-
- public abstract void selectPage(IPage page);
-
- public abstract void visit(IPageVisitor pageVisitor);
-
- /**
- * @return <code>true</code> if already disposed
- */
- public boolean isDisposed();
-}
+package org.eclipse.papyrus.infra.core.sasheditor.editor;
+
+import java.util.List;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ITabFolderModel;
+import org.eclipse.papyrus.infra.core.sasheditor.utils.IObservableList;
+import org.eclipse.ui.IEditorPart;
+
+public interface ISashWindowsContainer {
+
+ /**
+ * Get the currently active editor, or null if none is active.
+ *
+ * @return
+ */
+ public abstract IEditorPart getActiveEditor();
+
+ /**
+ * Get the currently active SashWindows Page.
+ * This is s
+ *
+ * @return An {@link IPage} allowing to access current page data.
+ */
+ public abstract IPage getActiveSashWindowsPage();
+
+ /**
+ * Get the {@link ITabFolderModel} of the currently selected folder.
+ *
+ * @return
+ */
+ public ITabFolderModel getSelectedTabFolderModel();
+
+ /**
+ * Get the list of visible IPages. The visible IPages are the one that have there diagram area
+ * visible.
+ *
+ * @return
+ */
+ public List<IPage> getVisiblePages();
+
+ /**
+ * Get the next IPage in the tabs list.
+ *
+ * @return
+ */
+ public IPage getNextPage();
+
+ /**
+ * Get the next IPage in the tabs list.
+ *
+ * @return
+ */
+ public IPage getPreviousPage();
+
+ /**
+ * Return a list of all folders opened in this SashContainer. The list should only
+ * be used as a 'view' list. It should not be modified or written. The list
+ * is observable.
+ *
+ * @return a read only and observable list of {@link IFolder}.
+ */
+ public IObservableList<IFolder> getIFolderList();
+
+ /**
+ * Get the list of visible IEditorPart obtain from the pages of type IEditorPage.
+ * The visible IPages are the one that have there diagram area
+ * visible.
+ *
+ * @return
+ */
+ public List<IEditorPart> getVisibleIEditorParts();
+
+ /**
+ * The <code>AbstractMultiPageSashEditor</code> implementation of this <code>IWorkbenchPart</code> method sets focus on the active nested
+ * editor, if there is one.
+ * <p>
+ * Subclasses may extend or reimplement.
+ * </p>
+ */
+ public abstract void setFocus();
+
+ /**
+ * Refresh the SashWindows.
+ * Synchronize the internal structure with the {@link ISashWindowsContentProvider}.
+ */
+ public abstract void refreshTabs();
+
+ /**
+ * Add a PageChangedListener to the list of listeners.
+ *
+ * @param pageEventsManager
+ */
+ public abstract void addPageChangedListener(IPageChangedListener pageChangedListener);
+
+ /**
+ * Remove the PageChangedListener from the list of listeners.
+ *
+ * @param pageEventsManager
+ */
+ public abstract void removePageChangedListener(IPageChangedListener pageChangedListener);
+
+ /**
+ * Add a listener on Page LifeCycle events.
+ * This implementation delegates to the internal PageTracker.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param listener
+ *
+ */
+ public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener);
+
+ /**
+ * Remove a listener on Page LifeCycle events.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param listener
+ *
+ */
+ public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener);
+
+ /**
+ * Add a listener {@link ITabMouseEventsListener} on folder's tabs events.
+ *
+ * @param listener
+ */
+ public void addFolderTabMouseEventListener(ITabMouseEventsListener listener);
+
+ /**
+ * Remove a listener on Page LifeCycle events.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param listener
+ *
+ */
+ public void removeFolderTabMouseEventListener(ITabMouseEventsListener listener);
+
+ /**
+ * Set a {@link MenuManager} used to manage a contextual menu that is shown on the tabs area of the folders.
+ *
+ * @param menuManager
+ * The {@link MenuManager} used to create the menu on the tab area.
+ */
+ public abstract void setFolderTabMenuManager(MenuManager menuManager);
+
+ public abstract IPage lookupIPageByIEditorPart(IEditorPart editor);
+
+ public abstract IPage lookupModelPage(Object rawModel);
+
+ public abstract void selectPage(IPage page);
+
+ public abstract void visit(IPageVisitor pageVisitor);
+
+ /**
+ * @return <code>true</code> if already disposed
+ */
+ public boolean isDisposed();
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java
index d32e94b8dc5..c141eb52742 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java
@@ -1,1362 +1,1464 @@
-/*****************************************************************************
- * Copyright (c) 2009, 2014 LIFL, CEA LIST, and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
- * Christian W. Damus (CEA) - bug 437217
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.core.sasheditor.internal;
-
-import static org.eclipse.papyrus.infra.core.sasheditor.Activator.log;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IComponentModel;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IEditorModel;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ITabFolderModel;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.IEditorPage;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.IFolder;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.IPage;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageLifeCycleEventsListener;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageVisitor;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer;
-import org.eclipse.papyrus.infra.core.sasheditor.editor.ITabMouseEventsListener;
-import org.eclipse.papyrus.infra.core.sasheditor.utils.IObservableList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.internal.DragCursors;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.dnd.IDragOverListener;
-import org.eclipse.ui.internal.dnd.IDropTarget;
-
-
-/**
- * Main entry class of the SashWindows system.
- * This class allows to have a multitab window with sashes.
- * The class require a ContentProvider describing the content to be shown.
- *
- * @author dumoulin
- */
-@SuppressWarnings("restriction")
-public class SashWindowsContainer implements ISashWindowsContainer {
-
- /**
- * The content provider describing the sashes, folders and tabs.
- */
- private ISashWindowsContentProvider contentProvider;
-
- /**
- * The manager used to get Main editor properties like Site, ActionBars, ...
- */
- private IMultiEditorManager multiEditorManager;
-
- /**
- * Tracker tracking the current active page. The tracker also disconnect last active page and connect
- * the new one.
- */
- private ActivePageTracker activePageTracker;
-
- /**
- * Event provider firing Pages life cycle events to registered listeners. Inner parts call the fireXxxEvents
- * when appropriate.
- */
- private SashContainerEventsProvider lifeCycleEventProvider;
-
- /**
- * Event provider firing Folder life cycle events to registered listeners. Inner parts call the fireXxxEvents
- * when appropriate.
- */
- private SashContainerFolderEventsProvider folderLifeCycleEventProvider;
-
- /**
- * Event provider firing mouse events from tabs.
- *
- */
- private TabMouseEventsProvider tabMouseEventsProvider;
-
- /**
- * A manager used to maintain a view list of available {@link TabFolderPart}. This list should
- * only be used in a READ way. It should not be modified by something else than its manager.
- *
- */
- private TabFolderListManager folderListManager;
-
- /**
- * The part used as root. We use an extra class as root in order to separate the code dedicated to
- * ITilePart.
- */
- private RootPart rootPart;
-
- /**
- * The SWT container associated to this part. This is generally the container of the
- * parent.
- */
- private Composite container;
-
- /**
- * The drop target.
- */
- protected DropTarget dropTarget;
-
- /** A flag that indicates that the model is being synchronized. */
- private AtomicBoolean isRefreshing = new AtomicBoolean(false);
-
- /**
- * The cached value of the menu manager, if any.
- */
- private MenuManager folderTabMenuManager;
-
- /**
- * Listener on widget diposed event.
- */
- private DisposeListener widgetDisposedListener = new DisposeListener() {
-
- /**
- * Called when the widget is disposed.
- *
- * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
- *
- * @param e
- */
- @Override
- public void widgetDisposed(DisposeEvent e) {
- // We dispose the container.
- dispose();
- }
- };
-
- /**
- * Constructor.
- * Build a Container without IEditor management. Trying to add a EditorPart will result in an Exception.
- * The ContentProvider should not contain IEditorModel.
- */
- public SashWindowsContainer() {
- this(null);
- }
-
- /**
- * Constructor.
- * Build a container with EditorPart management. The container will allow to add EditorPart
- * (and thus IEditorModel to the ContentProvider).
- *
- * @param multiEditorManager
- * The manager allowing to use {@link IEditorModel} in the model.
- * If null, the sash will not render IEditorModel.
- *
- */
- public SashWindowsContainer(IMultiEditorManager multiEditorManager) {
- this.multiEditorManager = multiEditorManager;
- activePageTracker = new ActivePageTracker();
-
- if (multiEditorManager != null) {
- // Add listener on activePageChange.
- // This listener will take in charge editor services switching.
- activePageTracker.addActiveEditorChangedListener(new ActiveEditorServicesSwitcher(multiEditorManager.getEditorSite()));
- }
-
- // Life cycle event provider
- lifeCycleEventProvider = new SashContainerEventsProvider();
-
- // Tab mouve event provider
- tabMouseEventsProvider = new TabMouseEventsProvider();
-
- // Folder list view
- initTabFolderListManager();
- }
-
- /**
- * @return the contentProvider
- */
- protected ISashWindowsContentProvider getContentProvider() {
- // Content provider should have been set.
- assert (contentProvider != null);
- // Double check for development
- if (contentProvider == null) {
- throw new IllegalStateException("ContentProvider should be set before calling any method requiring it.");
- }
-
- return contentProvider;
- }
-
- /**
- * Set the content provider describing the sashes, folders and tabs.
- *
- * @param contentProvider
- * the contentProvider to set
- */
- public void setContentProvider(ISashWindowsContentProvider contentProvider) {
- // Use a delegate
- // The delegate is used as a central point performing calls to the
- // external implementation.
- this.contentProvider = new DelegateContentProvider(contentProvider);
- }
-
- /**
- * Creates control associated to this Container.
- * This method should be called when the parent is build.
- *
- * @param parent
- * The parent in which the editor should be created; must not be <code>null</code>.
- */
- public void createPartControl(Composite parent) {
- this.container = parent;
-
- rootPart = createRootPart();
- // Create the tree of tile part.
- rootPart.createPartControl(container);
- // TODO 20130205
- // Read lastActivePart from ContentProvider, and set it
- // before refresh. Like this, sash will select the last save page
-
- // Create children
- refreshTabs();
- // Set selection
- // TODO 20130205 remove next, because refresh already do it
- selectPage(lookupFirstValidPage());
-
- // postCreatePartControl();
- // TODO reactivate next
- initDrag(container);
- // activate();
-
- // Listen for disposale
- container.addDisposeListener(widgetDisposedListener);
- }
-
- /**
- * Create the root part for the model.
- */
- private RootPart createRootPart() {
- RootPart part = new RootPart(this);
- return part;
- }
-
- /**
- * Dispose the Container. All referenced resources will be disposed.
- * The container should not be used anymore once disposed.
- * The result of calling a method after a dispose() is unpredictable. <br>
- * This method can be called several times. <br>
- * <br>
- * How the method works:
- * <ul>
- * <li>The {@link SashWindowsContainer} has two trees, the SWT tree and a Part tree ({@link #rootPart}).</li>
- * <li>The SWT tree is disposed first.</li>
- * <ul>
- * <li>This prevent events fired from user interaction or from Widget modifiaction</li>
- * <li>The SWT disposal stop before nested editors SWT (thanks to the DISPOSE event in {@link EditorPart}). At this point, the nested editor dispose() method is called.</li>
- * <li>This allow to let the nested editor receive one single dispose call.</li>
- * <li></li>
- * </ul>
- * <li>The Part tree is disposed second (by calling rootPart.disposeThisAndChildren() )</li>
- * <ul>
- * <li>properties are cleaned in order to help the GC</li>
- * <li>swt controls are not disposed again</li>
- * </ul>
- * <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
- *
- */
- public void dispose() {
- // Check if already disposed
- if (isDisposed()) {
- return;
- }
-
- // End disposing children's SWT controls.
- // It is possible to recall the dispose() method on a Widget, even if we are called by the dispose event.
- // Recalling the dispose method will continue disposing SWT children's.
-
- // DO NOT dispose the container composite, as we did not create it!
- if (container != null) {
- for (Control next : container.getChildren()) {
- next.dispose();
- }
- }
-
- // dispose part children
- if (rootPart != null) {
- // rootPart can be null if createPartControl has not been called.
- // This can happen in tests.
- rootPart.disposeThisAndChildren();
- }
-
- // clean up properties to help GC
- activePageTracker = null;
- container = null;
- contentProvider = null;
- dragOverListener = null;
- folderTabMenuManager = null;
- lifeCycleEventProvider = null;
- multiEditorManager = null;
- rootPart = null;
- }
-
- /**
- * Return true if the container is disposed, false otherwise.
- *
- * @return
- */
- @Override
- public boolean isDisposed() {
- // Use the activePageTracker as a flag.
- return activePageTracker == null;
- }
-
- /**
- * Notifies this page container that the specified page has been activated. This method
- * is called after the current tabs has been changed, either by refreshing the tabs, or by a user
- * UI action.
- * This method just set correctly the active page value in the Container, and fire pageChanged events if needed.
- * It does not change the selected page in the Part.
- *
- * Propagate the event to activePageTracker.
- * Removed since 0.10
- *
- * @param childPart
- */
- // protected void pageChanged(PagePart childPart) {
- // activePageTracker.setActiveEditor(childPart);
- // lifeCycleEventProvider.firePageActivatedEvent(childPart);
- // }
-
- /**
- * Notifies this page container that a pageChanged event has been fired by one swt Control.
- * This method is usually called after the user selects a different tab.
- *
- * The method notify the ContentProvider, and calls {@link #pageChanged(PagePart)}.
- * Removed since 0.10
- *
- * @param childPart
- */
- // protected void pageChangedEvent(PagePart childPart) {
- //
- // // Check if it is really a change before changing the model (which can throw change event)
- // // The folder model change is done before the tracker fires the listeners, like this
- // // listeners can check the model.
- // if(getActivePage() == childPart)
- // return;
- //
- // pageChanged(childPart);
- // }
-
- /**
- * Set the active page. The current active page will be the specified page. Throw events indicating that
- * the current ActivePage has changed. <br>
- * Do not set the activeSelection.
- *
- *
- * @param childPart
- */
- protected void setActivePage(PagePart childPart) {
-
- // Do nothing if the activePage has not changed
- if (childPart == null || getActivePage() == childPart) {
- return;
- }
-
- // TODO 20130205 remove next
- contentProvider.setCurrentFolder(childPart.getParent().getRawModel());
-
- activePageTracker.setActiveEditor(childPart);
- lifeCycleEventProvider.firePageActivatedEvent(childPart);
- }
-
- /**
- * This method allow to change current activePage. It set the activePage, and select it in
- * the folder. <br>
- * This method fires notifications (activePageChanged).
- *
- * @param newActivePage
- * The page that should become the active one.
- */
- protected void setActivePageAndSelection(PagePart newActivePage) {
-
- PagePart oldSelection = getActivePage();
- // First, set the selection, like this the observers will see the correct selection.
- synchronizeActiveSelection(newActivePage);
- try {
- // Set the active page
- setActivePage(newActivePage);
-
- } catch (RuntimeException e) {
- // Restore selection in case of exception
- synchronizeActiveSelection(oldSelection);
- // lets propagate
- throw e;
- }
- }
-
- /**
- * Synchronize the active selection to be the page of the activePage.
- * This should be called when the activePage is set, but the selection is not
- * yet set. <br>
- * This should not throw events (neither selctionChanged or pageChanged event).
- *
- */
- protected void synchronizeActiveSelection() {
- PagePart activePage = getActivePage();
-
- synchronizeActiveSelection(activePage);
- }
-
- /**
- * Synchronize the active selection to be the specified page. Do not synchronize with the activePage. <br>
- * This should not throw events (neither selctionChanged or pageChanged event).
- *
- * @param page
- */
- private void synchronizeActiveSelection(PagePart page) {
- if (page == null) {
- return;
- }
- TabFolderPart folder = page.getParent();
-
- // Folder can be null in case of tests
- if (folder != null) {
- folder.setSelection(page);
- }
-
- }
-
- /**
- * A change has happen in one of the inner parts. Relay the event.
- * This method is called by inner parts whenever the event happen in one of the part.
- * It collects and relay the firePropertyChange(int propertyId) calls from the inner IEditor.
- *
- * @param propertyId
- */
- protected void firePropertyChange(int propertyId) {
- // For now, we do nothing with this event.
- }
-
- /**
- * Create the part for the specified newModel.
- *
- * @param parent
- * The parent of the created part.
- * @param partModel
- * The model for which a part should be created.
- * @return
- */
- protected PagePart createPagePart(TabFolderPart parent, IPageModel partModel, Object rawModel) {
-
-
- if (partModel instanceof IEditorModel) {
- // Check if we can use IEditorModel
- if (multiEditorManager == null) {
- throw new IllegalArgumentException("Container can't accept IEditorModel as no IMultiEditorManager is set. Please set a IMultiEditorManager.");
- }
-
- return new EditorPart(parent, (IEditorModel) partModel, rawModel, multiEditorManager);
- } else if (partModel instanceof IComponentModel) {
- return new ComponentPart(parent, (IComponentModel) partModel, rawModel);
- } else {
- // Return a default part
- }
-
- // TODO return a default part showing an error instead.
- throw new IllegalArgumentException("No Part found for the model '" + rawModel + "'");
- }
-
- /**
- * Get the {@link ITabFolderModel} of the currently selected folder.
- *
- * @return
- */
- @Override
- public ITabFolderModel getSelectedTabFolderModel() {
-
- // Get the activePage. The seleted folder is its parent.
- PagePart activePage = activePageTracker.getActiveEditor();
- if (activePage != null && activePage.getParent() != null) {
- return activePage.getParent().getPartModel();
- }
- // No active page exist, but their should be a folder
- TabFolderPart folder = lookupFirstValidFolder();
- return folder.getPartModel();
- }
-
- /**
- * Lookup the first valid folder in this sash system.
- * There is always a valid folder.
- *
- * @return The first valid folder.
- */
- private TabFolderPart lookupFirstValidFolder() {
-
- LookupFirstFolderVisitor visitor = new LookupFirstFolderVisitor();
- rootPart.visit(visitor);
- return visitor.result();
- }
-
- /**
- * Get the active page.
- *
- * @return
- */
- private PagePart getActivePage() {
- return activePageTracker.getActiveEditor();
- }
-
- /**
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#getActiveEditor()
- * @return
- *
- */
- @Override
- public IEditorPart getActiveEditor() {
- PagePart pagePart = getActivePage();
- if (pagePart instanceof EditorPart) {
- return ((EditorPart) pagePart).getIEditorPart();
- } else {
- return null;
- }
- }
-
- /**
- * Get the active page public API.
- *
- * @return
- */
- @Override
- public IPage getActiveSashWindowsPage() {
- return getActivePage();
- }
-
- /**
- * Get the list of visible IPages. The visible IPages are the one that have there diagram area
- * visible.
- *
- * @return
- */
- @Override
- public List<IPage> getVisiblePages() {
- CollectVisiblePageVisitor visitor = new CollectVisiblePageVisitor();
-
- rootPart.visit(visitor);
-
- return visitor.getVisiblePages();
- }
-
- /**
- * Get the list of visible IPages. The visible IPages are the one that have there diagram area
- * visible.
- *
- * @return
- */
- // public List<IEditorPage> getVisibleIEditorPages() {
- // CollectVisiblePageVisitor visitor = new CollectVisiblePageVisitor( IEditorPage.class);
- //
- // rootPart.visit(visitor);
- //
- // return visitor.getVisiblePages();
- // }
-
- /**
- * Get the list of visible IPages. The visible IPages are the one that have there diagram area
- * visible.
- *
- * @return
- */
- @Override
- public List<IEditorPart> getVisibleIEditorParts() {
- CollectVisibleIEditorPart visitor = new CollectVisibleIEditorPart();
- rootPart.visit(visitor);
-
- return visitor.getVisiblePages();
- }
-
-
- /**
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#setFocus()
- *
- */
- @Override
- public void setFocus() {
- setFocus(getActivePage());
- }
-
- /**
- * Sets focus to the control for the given page. If the page has an editor,
- * this calls its <code>setFocus()</code> method. Otherwise, this calls <code>setFocus</code> on the control for the page.
- *
- * @param pageIndex
- * the index of the page
- */
- private void setFocus(PagePart part) {
- if (part != null) {
- part.setFocus();
- }
- }
-
-
- /**
- * Refresh the tabs.
- * Is we are already currently refreshing, simply return.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#refreshTabs()
- *
- */
- @Override
- public void refreshTabs() {
-
- // Check if we arent already refreshing
- if (isRefreshing.compareAndSet(false, true)) {
- try {
- refreshTabsInternal();
- } finally {
- isRefreshing.set(false);
- }
- } else {
- log.warn("refresh inside refresh !");
- }
-
- }
-
- /**
- * Refresh the tab of the page, (i.e the name and icon in the page's tab).
- *
- * @param page
- * The page for which the name and icon should be refreshed.
- */
- public void refreshPageTab(IPage page) {
- if (page instanceof PagePart) {
- ((PagePart) page).refreshTab();
- } else {
- // TODO : lookup for the corresponding PagePart, and call refresh.
-
- }
- }
-
- /**
- * Real implementation of refreshTab.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#refreshTabs()
- *
- */
- private void refreshTabsInternal() {
- // System.out.println("start synchronize2() ------------------------");
- // showTilesStatus();
-
- // Get the currently selected folder
- PagePart oldActivePage = getActivePage();
-
- // Do refresh
- container.setRedraw(false);
- // Create map of parts
- // PartMap<T> partMap = new PartMap<T>();
- PartLists garbageMaps = new PartLists();
- rootPart.fillPartMap(garbageMaps);
-
- // Synchronize parts
- rootPart.synchronize2(garbageMaps);
-
-
- // Remove orphaned parts (no more used)
- garbageMaps.garbage();
-
- // set active page if needed
- setActivePageAndSelection(checkAndGetActivePage(oldActivePage, garbageMaps));
-
- // Reenable SWT and force layout
- container.setRedraw(true);
- container.layout(true, true);
- // System.out.println("end synchronize2() ------------------------");
- // showTilesStatus();
- }
-
- /**
- * Select the specified page in the Parts. The specified page will becomes the active one.
- * Appropriate events are fired.
- * This is the programatic counterpart of selecting a page in the UI.
- * If the provided page is null, do nothing.
- * Removed since 0.10
- *
- * @param page
- * The page to select or null.
- */
- // protected void selectPage(PagePart page) {
- // if(page == null)
- // return;
- // TabFolderPart folder = page.getParent();
- // folder.setActiveEditor(page);
- // }
-
- /**
- * Select the specified page in the Parts. The specified page will becomes the active one.
- * Appropriate events are fired if needed.
- * This is the programmatic counterpart of selecting a page in the UI.
- * If the provided page is null, do nothing.
- *
- * @param page
- * The page to select or null. The IPage should
- * be an instance previously returned by the SashContainer.
- *
- */
- @Override
- public void selectPage(IPage page) {
- if (page == null) {
- return;
- }
-
- // check if we are a correct instance.
- if (!(page instanceof PagePart)) {
- return;
- }
-
- setActivePageAndSelection((PagePart) page);
- }
-
- /**
- * Lookup the {@link IPage} used to render the specified rawModel.
- *
- * @param rawModel
- * The model for which the IPage is requested.
- * If the model is not rendered, return null;
- *
- * @return The corresponding IPage or null if not found.
- */
- @Override
- public IPage lookupModelPage(Object rawModel) {
- // Use a visitor to lookup the first IPage
- LookupModelPageVisitor visitor = new LookupModelPageVisitor(rawModel);
- rootPart.visit(visitor);
- return visitor.result();
- }
-
- /**
- * Lookup the {@link IPage} used to render the specified IEditorPart.
- *
- * @param editor
- * The IEditorPart for which the IPage is requested.
- * If the IEditorPart is not rendered, return null;
- *
- * @return The corresponding IPage or null if not found.
- */
- @Override
- public IPage lookupIPageByIEditorPart(IEditorPart editor) {
- // Use a visitor to lookup the first IPage
- LookupIPageByIEditorPartVisitor visitor = new LookupIPageByIEditorPartVisitor(editor);
- rootPart.visit(visitor);
- return visitor.result();
- }
-
- /**
- * Check if the oldActivePage still alive, and set it if needed.
- * If the oldActivePage is null, set an active page if one exist.
- * If the oldActivePage still alive, let it as the active one. If it is
- * disposed, get arbitrarily an active page if one exist.
- *
- * @param oldActivePage
- * @param partLists
- * @param garbageMaps
- * @return A valid active page or null if none exists.
- */
- private PagePart checkAndGetActivePage(PagePart oldActivePage, PartLists partLists) {
-
- // Check if there is a created page
- PagePart activePage = partLists.getFirstCreatedPage();
- if (activePage != null) {
- // There is a created page. Set it as the selected and active one
- return activePage;
- }
-
- // Check oldActivePage validity (in case it has been deleted)
- if (oldActivePage != null && !(oldActivePage.isOrphaned() || oldActivePage.isUnchecked())) {
- return oldActivePage;
- }
-
- // Get an active page if any
- return lookupFirstValidPage();
- }
-
- /**
- * Lookup for a valid active Page. Return null if none is found.
- * TODO Use a visitor to implements this method.
- *
- * @return
- */
- private PagePart lookupFirstValidPage() {
- // First get a list of active editors
- PartLists garbageMaps = new PartLists();
- rootPart.fillPartMap(garbageMaps);
- return garbageMaps.getFirstValidPage();
- }
-
- /**
- * Set a {@link MenuManager} used to manage a contextual menu that is shown on the tabs area of the folders.
- *
- * @param menuManager
- * The {@link MenuManager} used to create the menu on the tab area.
- */
- @Override
- public void setFolderTabMenuManager(MenuManager menuManager) {
- this.folderTabMenuManager = menuManager;
- // Set the MenuManager in each existing folder.
- // Use a visitor.
- SetFolderTabMenuVisitor visitor = new SetFolderTabMenuVisitor(menuManager);
- rootPart.visit(visitor);
- }
-
- /**
- * @return the menuManager
- */
- protected MenuManager getFolderTabMenuManager() {
- return folderTabMenuManager;
- }
-
- /**
- * Show the status of the different Tiles composing the sash system.
- * Used for debug purpose.
- */
- public void showTilesStatus() {
- ShowPartStatusVisitor visitor = new ShowPartStatusVisitor();
- rootPart.visit(visitor);
- }
-
-
- /**
- * Visit all the Pages (IEditorPage and IComponentPage), allowing to access to the public interface.
- */
- @Override
- public void visit(IPageVisitor pageVisitor) {
- PageVisitorWrapper visitor = new PageVisitorWrapper(pageVisitor);
- rootPart.visit(visitor);
- }
-
- /**
- * Visit the Part associated to the container. This method visibility is protected in order to be able to access it
- * from junit tests.
- * It is not intended to be used by public API or from outside.
- */
- protected void visit(IPartVisitor visitor) {
- rootPart.visit(visitor);
- }
-
- /* ***************************************************** */
- /* Drag and Drop methods */
- /* ***************************************************** */
-
- /**
- *
- */
- private void initDrag(Composite container) {
- DragUtil.addDragTarget(container, dragOverListener);
-
- }
-
- IDragOverListener dragOverListener = new IDragOverListener() {
-
- /**
- *
- * @see org.eclipse.ui.internal.dnd.IDragOverListener#drag(org.eclipse.swt.widgets.Control, java.lang.Object, org.eclipse.swt.graphics.Point, org.eclipse.swt.graphics.Rectangle)
- */
- @Override
- public IDropTarget drag(Control currentControl, Object draggedObject, Point position, Rectangle dragRectangle) {
- // TODO remove the cast by changing the method. Only folder can be source and target
- final TabFolderPart sourcePart = (TabFolderPart) rootPart.findPart(draggedObject); // (ITilePart) draggedObject;
- // Compute src tab index
- // TODO move that and previous in the sender of drag event. Use a class containing both as draggedObject.
- final int srcTabIndex = PTabFolder.getDraggedObjectTabIndex(draggedObject);
-
- // System.out.println("drag to position=" + position);
- Rectangle containerDisplayBounds = DragUtil.getDisplayBounds(container);
- AbstractPanelPart targetPart = null;
-
- // Check if the cursor is inside the container
- if (containerDisplayBounds.contains(position)) {
-
- if (rootPart != null) {
- targetPart = (AbstractPanelPart) rootPart.findPart(position);
- // System.out.println("targetPart=" + targetPart
- // + ", position=" + position
- // + "container.toControl(position)=" + container.toControl(position));
- }
-
- if (targetPart != null) {
- final Control targetControl = targetPart.getControl();
-
- final Rectangle targetBounds = DragUtil.getDisplayBounds(targetControl);
-
- int side = Geometry.getClosestSide(targetBounds, position);
- int distance = Geometry.getDistanceFromEdge(targetBounds, position, side);
-
- // Reserve the 5 pixels around the edge of the part for the drop-on-edge cursor
- // Check if the target can handle the drop.
- if (distance >= 5) {
- // Otherwise, ask the part if it has any special meaning for this drop location
- // TODO remove cast; change return type of findPart()
- IDropTarget target = targetPart.getDropTarget(draggedObject, sourcePart, position);
- if (target != null) {
- return target;
- }
- } else {
- // We are on the boarder, try to drop on the parent
- // Warning : the parent could be the rootPart
- // System.out.println("DropTarget near the border");
- }
- //
- if (distance > 30) {
- side = SWT.CENTER;
- }
- //
- // // If the part doesn't want to override this drop location then drop on the edge
- //
- // // A "pointless drop" would be one that will put the dragged object back where it started.
- // // Note that it should be perfectly valid to drag an object back to where it came from -- however,
- // // the drop should be ignored.
- //
- @SuppressWarnings("unused")
- boolean pointlessDrop = false;
-
- if (sourcePart == targetPart) {
- pointlessDrop = true;
- }
-
- return createDropTarget(sourcePart, srcTabIndex, side, side, targetPart);
- }
- } else {
- // Cursor is outside the container
- // System.out.println("Outside container bounds");
- // This will be used to create a new Window.
- // We only allow dropping into a stack, not creating one
- // if (differentWindows)
- // return null;
-
- int side = Geometry.getClosestSide(containerDisplayBounds, position);
-
- boolean pointlessDrop = false;
- int cursor = Geometry.getOppositeSide(side);
-
- if (pointlessDrop) {
- side = SWT.NONE;
- }
-
- return createDropTarget(sourcePart, srcTabIndex, side, cursor, null);
- }
- return null;
- }
-
- };
-
-
- /**
- * Create the drop target
- */
- private DropTarget createDropTarget(final TabFolderPart sourcePart, int srcTabIndex, int side, int cursor, AbstractPart targetPart) {
- if (dropTarget == null) {
- dropTarget = new DropTarget(sourcePart, srcTabIndex, side, cursor, targetPart);
- } else {
- dropTarget.setTarget(sourcePart, srcTabIndex, side, cursor, targetPart);
- }
- return dropTarget;
- }
-
- /**
- * Class implementing methods required by drop targets.
- */
- protected class DropTarget implements IDropTarget {
-
- int count = 0;
-
- int cursor = SWT.TOP;
-
- private int side;
-
- private AbstractPanelPart targetPart;
-
- private int srcTabIndex;
-
- private TabFolderPart sourcePart;
-
- /**
- * Constructor.
- */
- public DropTarget(TabFolderPart sourcePart, int srcTabIndex, int cursor, int side, AbstractPart targetPart) {
- this.cursor = cursor;
- this.side = side;
- this.sourcePart = sourcePart;
- this.srcTabIndex = srcTabIndex;
- this.targetPart = (AbstractPanelPart) targetPart;
- }
-
- public void setTarget(TabFolderPart sourcePart, int srcTabIndex, int cursor, int side, AbstractPart targetPart) {
- this.cursor = cursor;
- this.side = side;
- this.sourcePart = sourcePart;
- this.srcTabIndex = srcTabIndex;
- this.targetPart = (AbstractPanelPart) targetPart;
- }
-
- /**
- * A folder is dropped.
- *
- * @see org.eclipse.ui.internal.dnd.IDropTarget#drop()
- */
- @Override
- public void drop() {
- // @TODO remove next cast
- if (side == SWT.CENTER) { // Add to target folder
- contentProvider.movePage(sourcePart.getPartModel(), srcTabIndex, ((TabFolderPart) targetPart).getPartModel(), -1);
- } else { // Create a new folder
- contentProvider.createFolder(sourcePart.getPartModel(), srcTabIndex, ((TabFolderPart) targetPart).getPartModel(), side);
- }
- }
-
- /**
- * Return the cursor used during drag.
- *
- * @see org.eclipse.ui.internal.dnd.IDropTarget#getCursor()
- */
- @Override
- public Cursor getCursor() {
- // System.out.println(SashWindowsContainer.this.getClass().getSimpleName() + ".getCursor()-" + count++);
- return DragCursors.getCursor(DragCursors.positionToDragCursor(cursor));
-
- }
-
- @Override
- public Rectangle getSnapRectangle() {
- // System.out.println(SashWindowsContainer.this.getClass().getSimpleName() + ".getSnapRectangle(" + "sourcePart=" + sourcePart + ", targetPart=" + targetPart + ", side=" + side);
- Rectangle targetDisplayBounds;
-
- if (targetPart != null) {
- targetDisplayBounds = DragUtil.getDisplayBounds(targetPart.getControl());
- } else {
- // targetBounds = DragUtil.getDisplayBounds(getParent());
- targetDisplayBounds = DragUtil.getDisplayBounds(container);
- }
-
- if (side == SWT.CENTER || side == SWT.NONE) {
- return targetDisplayBounds;
- }
-
- int distance = Geometry.getDimension(targetDisplayBounds, !Geometry.isHorizontal(side));
-
- return Geometry.getExtrudedEdge(targetDisplayBounds, (int) (distance * getDockingRatio(sourcePart, targetPart)), side);
- }
-
- protected float getDockingRatio(AbstractPart dragged, AbstractPart target) {
- return 0.5f;
- }
-
- }
-
-
- /**
- * @return the lifeCycleEventProvider
- */
- protected SashContainerEventsProvider getLifeCycleEventProvider() {
- return lifeCycleEventProvider;
- }
-
- /**
- * @return the folderLifeCycleEventProvider
- */
- protected SashContainerFolderEventsProvider getFolderLifeCycleEventProvider() {
- return folderLifeCycleEventProvider;
- }
-
- /**
- * Get the event provider used to throw TabMouseEvents.
- *
- * @return the TabMouseEventsProvider
- */
- public TabMouseEventsProvider getFolderTabMouseEventProvider() {
- return tabMouseEventsProvider;
- }
-
- /**
- * Return a list of all folders opened in this SashContainer. The list should only
- * be used as a 'view' list. It should not be modified or written. The list
- * is observable. <br>
- * Actually, the folders are never removed from the list. This is because
- * TabFolderPart.dispose() is never called.
- * TODO Let TabFolderPart.dispose() be called.
- *
- * @return a read only and observable list of {@link IFolder}.
- */
- @Override
- public IObservableList<IFolder> getIFolderList() {
- return folderListManager.getFolderList();
- }
-
- /**
- * Init the folderListManager and let it listen to folder events.
- */
- private void initTabFolderListManager() {
- folderLifeCycleEventProvider = new SashContainerFolderEventsProvider();
- folderListManager = new TabFolderListManager();
- // Listen to folder events.
- folderLifeCycleEventProvider.addListener(folderListManager);
- }
-
- /**
- * Add a listener on pageChanged event.
- * This implementation delegates to the internal PageTracker.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param pageChangedListener
- *
- */
- @Override
- public void addPageChangedListener(IPageChangedListener pageChangedListener) {
- activePageTracker.addPageChangedListener(pageChangedListener);
- }
-
- /**
- * Remove a listener on pageChanged event.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param pageChangedListener
- *
- */
- @Override
- public void removePageChangedListener(IPageChangedListener pageChangedListener) {
- activePageTracker.removePageChangedListener(pageChangedListener);
- }
-
- /**
- * Add a listener on Page LifeCycle events.
- * This implementation delegates to the internal PageTracker.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param listener
- *
- */
- @Override
- public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener) {
- lifeCycleEventProvider.addListener(listener);
- }
-
-
- /**
- * Remove a listener on Page LifeCycle events.
- *
- * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
- * @param listener
- *
- */
- @Override
- public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener) {
- lifeCycleEventProvider.removeListener(listener);
- }
-
- /**
- * Add a listener {@link ITabMouseEventsListener} on folder's tabs events.
- *
- * @param listener
- */
- @Override
- public void addFolderTabMouseEventListener(ITabMouseEventsListener listener) {
- tabMouseEventsProvider.addListener(listener);
- }
-
- /**
- * Add a listener {@link ITabMouseEventsListener} on folder's tabs events.
- *
- * @param listener
- */
- @Override
- public void removeFolderTabMouseEventListener(ITabMouseEventsListener listener) {
- tabMouseEventsProvider.removeListener(listener);
- }
-
- /* ***************************************************** */
- /* Internal Visitors */
- /* ***************************************************** */
-
-
- /**
- * Inner class.
- * A visitor setting the {@link MenuManager} on each folder.
- */
- private class SetFolderTabMenuVisitor extends PartVisitor {
-
-
- private MenuManager menuManager;
-
- /**
- * Constructor.
- *
- * @param menuManager
- */
- public SetFolderTabMenuVisitor(MenuManager menuManager) {
- this.menuManager = menuManager;
- }
-
- /**
- * Set the menu if the visited node is a folder.
- */
- @Override
- public boolean accept(TabFolderPart part) {
- part.setFolderTabMenuManager(menuManager);
- return true;
- }
-
- }
-
- /**
- * Inner class.
- * A visitor used to collect all visible page in the sashcontainer.
- * A visible page is a page whose the diagram area is visible.
- */
- private class CollectVisiblePageVisitor extends PartVisitor {
-
- private List<IPage> visiblePages = new ArrayList<IPage>();
-
- private Class<? extends IPage> expectedClass;
-
- /**
- * Constructor.
- *
- * @param menuManager
- */
- public CollectVisiblePageVisitor() {
-
- }
-
- /**
- * Constructor.
- *
- * @param menuManager
- */
- @SuppressWarnings("unused")
- public CollectVisiblePageVisitor(Class<? extends IPage> expectedClass) {
- this.expectedClass = expectedClass;
- }
-
- /**
- * Get the result list.
- *
- * @param <T>
- * @return
- */
- @SuppressWarnings("unchecked")
- public <T> List<T> getVisiblePages() {
- return (List<T>) visiblePages;
- }
-
- /**
- * Set the menu if the visited node is a folder.
- */
- @Override
- public boolean accept(TabFolderPart part) {
-
- IPage page = part.getVisiblePagePart();
- if (part != null) {
- if (expectedClass != null && expectedClass.isInstance(page)) {
- visiblePages.add(page);
- } else {
- visiblePages.add(page);
- }
-
- }
-
- return true;
- }
-
- }
-
- /**
- * Inner class.
- * A visitor used to collect all visible page in the sashcontainer.
- * A visible page is a page whose the diagram area is visible.
- */
- private class AbstractCollectIEditorPart extends PartVisitor {
-
- protected List<IEditorPart> editorParts = new ArrayList<IEditorPart>();
-
- /**
- * Constructor.
- *
- * @param menuManager
- */
- public AbstractCollectIEditorPart() {
-
- }
-
- /**
- * Get the result list.
- *
- * @param <T>
- * @return
- */
- public List<IEditorPart> getVisiblePages() {
- return editorParts;
- }
-
- }
-
- /**
- * Inner class.
- * A visitor used to collect all visible page in the sashcontainer.
- * A visible page is a page whose the diagram area is visible.
- */
- private class CollectVisibleIEditorPart extends AbstractCollectIEditorPart {
-
- /**
- * Set the menu if the visited node is a folder.
- */
- @Override
- public boolean accept(TabFolderPart part) {
-
- IPage page = part.getVisiblePagePart();
- if (page != null && page instanceof IEditorPage) {
- IEditorPage editorPage = (IEditorPage) page;
- editorParts.add(editorPage.getIEditorPart());
-
- }
- // continue searching
- return true;
- }
-
- }
-
- /**
- * Inner class.
- * A visitor used to collect all parts in the sashcontainer.
- * A visible page is a page whose the diagram area is visible.
- */
- @SuppressWarnings("unused")
- private class CollectIEditorParts extends AbstractCollectIEditorPart {
-
- /**
- * Add the part to thecollection.
- */
- @Override
- public boolean accept(EditorPart part) {
-
- IEditorPart editorPart = part.getIEditorPart();
- if (editorPart != null) {
- editorParts.add(editorPart);
- }
-
- // continue searching
- return true;
- }
-
- }
-
-
-
-}
+/*****************************************************************************
+ * Copyright (c) 2009, 2014 LIFL, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
+ * Christian W. Damus (CEA) - bug 437217
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.core.sasheditor.internal;
+
+import static org.eclipse.papyrus.infra.core.sasheditor.Activator.log;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.util.Geometry;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IComponentModel;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IEditorModel;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ITabFolderModel;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IEditorPage;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IFolder;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPage;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageLifeCycleEventsListener;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageVisitor;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.ITabMouseEventsListener;
+import org.eclipse.papyrus.infra.core.sasheditor.utils.IObservableList;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.internal.DragCursors;
+import org.eclipse.ui.internal.dnd.DragUtil;
+import org.eclipse.ui.internal.dnd.IDragOverListener;
+import org.eclipse.ui.internal.dnd.IDropTarget;
+
+
+/**
+ * Main entry class of the SashWindows system.
+ * This class allows to have a multitab window with sashes.
+ * The class require a ContentProvider describing the content to be shown.
+ *
+ * @author dumoulin
+ */
+@SuppressWarnings("restriction")
+public class SashWindowsContainer implements ISashWindowsContainer {
+
+ /**
+ * The content provider describing the sashes, folders and tabs.
+ */
+ private ISashWindowsContentProvider contentProvider;
+
+ /**
+ * The manager used to get Main editor properties like Site, ActionBars, ...
+ */
+ private IMultiEditorManager multiEditorManager;
+
+ /**
+ * Tracker tracking the current active page. The tracker also disconnect last active page and connect
+ * the new one.
+ */
+ private ActivePageTracker activePageTracker;
+
+ /**
+ * Event provider firing Pages life cycle events to registered listeners. Inner parts call the fireXxxEvents
+ * when appropriate.
+ */
+ private SashContainerEventsProvider lifeCycleEventProvider;
+
+ /**
+ * Event provider firing Folder life cycle events to registered listeners. Inner parts call the fireXxxEvents
+ * when appropriate.
+ */
+ private SashContainerFolderEventsProvider folderLifeCycleEventProvider;
+
+ /**
+ * Event provider firing mouse events from tabs.
+ *
+ */
+ private TabMouseEventsProvider tabMouseEventsProvider;
+
+ /**
+ * A manager used to maintain a view list of available {@link TabFolderPart}. This list should
+ * only be used in a READ way. It should not be modified by something else than its manager.
+ *
+ */
+ private TabFolderListManager folderListManager;
+
+ /**
+ * The part used as root. We use an extra class as root in order to separate the code dedicated to
+ * ITilePart.
+ */
+ private RootPart rootPart;
+
+ /**
+ * The SWT container associated to this part. This is generally the container of the
+ * parent.
+ */
+ private Composite container;
+
+ /**
+ * The drop target.
+ */
+ protected DropTarget dropTarget;
+
+ /** A flag that indicates that the model is being synchronized. */
+ private AtomicBoolean isRefreshing = new AtomicBoolean(false);
+
+ /**
+ * The cached value of the menu manager, if any.
+ */
+ private MenuManager folderTabMenuManager;
+
+ /**
+ * Listener on widget diposed event.
+ */
+ private DisposeListener widgetDisposedListener = new DisposeListener() {
+
+ /**
+ * Called when the widget is disposed.
+ *
+ * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
+ *
+ * @param e
+ */
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ // We dispose the container.
+ dispose();
+ }
+ };
+
+ /**
+ * Constructor.
+ * Build a Container without IEditor management. Trying to add a EditorPart will result in an Exception.
+ * The ContentProvider should not contain IEditorModel.
+ */
+ public SashWindowsContainer() {
+ this(null);
+ }
+
+ /**
+ * Constructor.
+ * Build a container with EditorPart management. The container will allow to add EditorPart
+ * (and thus IEditorModel to the ContentProvider).
+ *
+ * @param multiEditorManager
+ * The manager allowing to use {@link IEditorModel} in the model.
+ * If null, the sash will not render IEditorModel.
+ *
+ */
+ public SashWindowsContainer(IMultiEditorManager multiEditorManager) {
+ this.multiEditorManager = multiEditorManager;
+ activePageTracker = new ActivePageTracker();
+
+ if (multiEditorManager != null) {
+ // Add listener on activePageChange.
+ // This listener will take in charge editor services switching.
+ activePageTracker.addActiveEditorChangedListener(new ActiveEditorServicesSwitcher(multiEditorManager.getEditorSite()));
+ }
+
+ // Life cycle event provider
+ lifeCycleEventProvider = new SashContainerEventsProvider();
+
+ // Tab mouve event provider
+ tabMouseEventsProvider = new TabMouseEventsProvider();
+
+ // Folder list view
+ initTabFolderListManager();
+ }
+
+ /**
+ * @return the contentProvider
+ */
+ protected ISashWindowsContentProvider getContentProvider() {
+ // Content provider should have been set.
+ assert (contentProvider != null);
+ // Double check for development
+ if (contentProvider == null) {
+ throw new IllegalStateException("ContentProvider should be set before calling any method requiring it.");
+ }
+
+ return contentProvider;
+ }
+
+ /**
+ * Set the content provider describing the sashes, folders and tabs.
+ *
+ * @param contentProvider
+ * the contentProvider to set
+ */
+ public void setContentProvider(ISashWindowsContentProvider contentProvider) {
+ // Use a delegate
+ // The delegate is used as a central point performing calls to the
+ // external implementation.
+ this.contentProvider = new DelegateContentProvider(contentProvider);
+ }
+
+ /**
+ * Creates control associated to this Container.
+ * This method should be called when the parent is build.
+ *
+ * @param parent
+ * The parent in which the editor should be created; must not be <code>null</code>.
+ */
+ public void createPartControl(Composite parent) {
+ this.container = parent;
+
+ rootPart = createRootPart();
+ // Create the tree of tile part.
+ rootPart.createPartControl(container);
+ // TODO 20130205
+ // Read lastActivePart from ContentProvider, and set it
+ // before refresh. Like this, sash will select the last save page
+
+ // Create children
+ refreshTabs();
+ // Set selection
+ // TODO 20130205 remove next, because refresh already do it
+ selectPage(lookupFirstValidPage());
+
+ // postCreatePartControl();
+ // TODO reactivate next
+ initDrag(container);
+ // activate();
+
+ // Listen for disposale
+ container.addDisposeListener(widgetDisposedListener);
+ }
+
+ /**
+ * Create the root part for the model.
+ */
+ private RootPart createRootPart() {
+ RootPart part = new RootPart(this);
+ return part;
+ }
+
+ /**
+ * Dispose the Container. All referenced resources will be disposed.
+ * The container should not be used anymore once disposed.
+ * The result of calling a method after a dispose() is unpredictable. <br>
+ * This method can be called several times. <br>
+ * <br>
+ * How the method works:
+ * <ul>
+ * <li>The {@link SashWindowsContainer} has two trees, the SWT tree and a Part tree ({@link #rootPart}).</li>
+ * <li>The SWT tree is disposed first.</li>
+ * <ul>
+ * <li>This prevent events fired from user interaction or from Widget modifiaction</li>
+ * <li>The SWT disposal stop before nested editors SWT (thanks to the DISPOSE event in {@link EditorPart}). At this point, the nested editor dispose() method is called.</li>
+ * <li>This allow to let the nested editor receive one single dispose call.</li>
+ * <li></li>
+ * </ul>
+ * <li>The Part tree is disposed second (by calling rootPart.disposeThisAndChildren() )</li>
+ * <ul>
+ * <li>properties are cleaned in order to help the GC</li>
+ * <li>swt controls are not disposed again</li>
+ * </ul>
+ * <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
+ *
+ */
+ public void dispose() {
+ // Check if already disposed
+ if (isDisposed()) {
+ return;
+ }
+
+ // End disposing children's SWT controls.
+ // It is possible to recall the dispose() method on a Widget, even if we are called by the dispose event.
+ // Recalling the dispose method will continue disposing SWT children's.
+
+ // DO NOT dispose the container composite, as we did not create it!
+ if (container != null) {
+ for (Control next : container.getChildren()) {
+ next.dispose();
+ }
+ }
+
+ // dispose part children
+ if (rootPart != null) {
+ // rootPart can be null if createPartControl has not been called.
+ // This can happen in tests.
+ rootPart.disposeThisAndChildren();
+ }
+
+ // clean up properties to help GC
+ activePageTracker = null;
+ container = null;
+ contentProvider = null;
+ dragOverListener = null;
+ folderTabMenuManager = null;
+ lifeCycleEventProvider = null;
+ multiEditorManager = null;
+ rootPart = null;
+ }
+
+ /**
+ * Return true if the container is disposed, false otherwise.
+ *
+ * @return
+ */
+ @Override
+ public boolean isDisposed() {
+ // Use the activePageTracker as a flag.
+ return activePageTracker == null;
+ }
+
+ /**
+ * Notifies this page container that the specified page has been activated. This method
+ * is called after the current tabs has been changed, either by refreshing the tabs, or by a user
+ * UI action.
+ * This method just set correctly the active page value in the Container, and fire pageChanged events if needed.
+ * It does not change the selected page in the Part.
+ *
+ * Propagate the event to activePageTracker.
+ * Removed since 0.10
+ *
+ * @param childPart
+ */
+ // protected void pageChanged(PagePart childPart) {
+ // activePageTracker.setActiveEditor(childPart);
+ // lifeCycleEventProvider.firePageActivatedEvent(childPart);
+ // }
+
+ /**
+ * Notifies this page container that a pageChanged event has been fired by one swt Control.
+ * This method is usually called after the user selects a different tab.
+ *
+ * The method notify the ContentProvider, and calls {@link #pageChanged(PagePart)}.
+ * Removed since 0.10
+ *
+ * @param childPart
+ */
+ // protected void pageChangedEvent(PagePart childPart) {
+ //
+ // // Check if it is really a change before changing the model (which can throw change event)
+ // // The folder model change is done before the tracker fires the listeners, like this
+ // // listeners can check the model.
+ // if(getActivePage() == childPart)
+ // return;
+ //
+ // pageChanged(childPart);
+ // }
+
+ /**
+ * Set the active page. The current active page will be the specified page. Throw events indicating that
+ * the current ActivePage has changed. <br>
+ * Do not set the activeSelection.
+ *
+ *
+ * @param childPart
+ */
+ protected void setActivePage(PagePart childPart) {
+
+ // Do nothing if the activePage has not changed
+ if (childPart == null || getActivePage() == childPart) {
+ return;
+ }
+
+ // TODO 20130205 remove next
+ contentProvider.setCurrentFolder(childPart.getParent().getRawModel());
+
+ activePageTracker.setActiveEditor(childPart);
+ lifeCycleEventProvider.firePageActivatedEvent(childPart);
+ }
+
+ /**
+ * This method allow to change current activePage. It set the activePage, and select it in
+ * the folder. <br>
+ * This method fires notifications (activePageChanged).
+ *
+ * @param newActivePage
+ * The page that should become the active one.
+ */
+ protected void setActivePageAndSelection(PagePart newActivePage) {
+
+ PagePart oldSelection = getActivePage();
+ // First, set the selection, like this the observers will see the correct selection.
+ synchronizeActiveSelection(newActivePage);
+ try {
+ // Set the active page
+ setActivePage(newActivePage);
+
+ } catch (RuntimeException e) {
+ // Restore selection in case of exception
+ synchronizeActiveSelection(oldSelection);
+ // lets propagate
+ throw e;
+ }
+ }
+
+ /**
+ * Synchronize the active selection to be the page of the activePage.
+ * This should be called when the activePage is set, but the selection is not
+ * yet set. <br>
+ * This should not throw events (neither selctionChanged or pageChanged event).
+ *
+ */
+ protected void synchronizeActiveSelection() {
+ PagePart activePage = getActivePage();
+
+ synchronizeActiveSelection(activePage);
+ }
+
+ /**
+ * Synchronize the active selection to be the specified page. Do not synchronize with the activePage. <br>
+ * This should not throw events (neither selctionChanged or pageChanged event).
+ *
+ * @param page
+ */
+ private void synchronizeActiveSelection(PagePart page) {
+ if (page == null) {
+ return;
+ }
+ TabFolderPart folder = page.getParent();
+
+ // Folder can be null in case of tests
+ if (folder != null) {
+ folder.setSelection(page);
+ }
+
+ }
+
+ /**
+ * A change has happen in one of the inner parts. Relay the event.
+ * This method is called by inner parts whenever the event happen in one of the part.
+ * It collects and relay the firePropertyChange(int propertyId) calls from the inner IEditor.
+ *
+ * @param propertyId
+ */
+ protected void firePropertyChange(int propertyId) {
+ // For now, we do nothing with this event.
+ }
+
+ /**
+ * Create the part for the specified newModel.
+ *
+ * @param parent
+ * The parent of the created part.
+ * @param partModel
+ * The model for which a part should be created.
+ * @return
+ */
+ protected PagePart createPagePart(TabFolderPart parent, IPageModel partModel, Object rawModel) {
+
+
+ if (partModel instanceof IEditorModel) {
+ // Check if we can use IEditorModel
+ if (multiEditorManager == null) {
+ throw new IllegalArgumentException("Container can't accept IEditorModel as no IMultiEditorManager is set. Please set a IMultiEditorManager.");
+ }
+
+ return new EditorPart(parent, (IEditorModel) partModel, rawModel, multiEditorManager);
+ } else if (partModel instanceof IComponentModel) {
+ return new ComponentPart(parent, (IComponentModel) partModel, rawModel);
+ } else {
+ // Return a default part
+ }
+
+ // TODO return a default part showing an error instead.
+ throw new IllegalArgumentException("No Part found for the model '" + rawModel + "'");
+ }
+
+ /**
+ * Get the {@link ITabFolderModel} of the currently selected folder.
+ *
+ * @return
+ */
+ @Override
+ public ITabFolderModel getSelectedTabFolderModel() {
+
+ // Get the activePage. The seleted folder is its parent.
+ PagePart activePage = activePageTracker.getActiveEditor();
+ if (activePage != null && activePage.getParent() != null) {
+ return activePage.getParent().getPartModel();
+ }
+ // No active page exist, but their should be a folder
+ TabFolderPart folder = lookupFirstValidFolder();
+ return folder.getPartModel();
+ }
+
+ /**
+ * Lookup the first valid folder in this sash system.
+ * There is always a valid folder.
+ *
+ * @return The first valid folder.
+ */
+ private TabFolderPart lookupFirstValidFolder() {
+
+ LookupFirstFolderVisitor visitor = new LookupFirstFolderVisitor();
+ rootPart.visit(visitor);
+ return visitor.result();
+ }
+
+ /**
+ * Get the active page.
+ *
+ * @return
+ */
+ private PagePart getActivePage() {
+ return activePageTracker.getActiveEditor();
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#getActiveEditor()
+ * @return
+ *
+ */
+ @Override
+ public IEditorPart getActiveEditor() {
+ PagePart pagePart = getActivePage();
+ if (pagePart instanceof EditorPart) {
+ return ((EditorPart) pagePart).getIEditorPart();
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Get the active page public API.
+ *
+ * @return
+ */
+ @Override
+ public IPage getActiveSashWindowsPage() {
+ return getActivePage();
+ }
+
+ /**
+ * Get the list of visible IPages. The visible IPages are the one that have there diagram area
+ * visible.
+ *
+ * @return
+ */
+ @Override
+ public List<IPage> getVisiblePages() {
+ CollectVisiblePageVisitor visitor = new CollectVisiblePageVisitor();
+
+ rootPart.visit(visitor);
+
+ return visitor.getVisiblePages();
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#getNextPage()
+ *
+ * @return
+ */
+ @Override
+ public IPage getNextPage() {
+ CollectNextPageVisitor visitor = new CollectNextPageVisitor(false);
+ return getPage(visitor);
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#getNextPage()
+ *
+ * @return
+ */
+ @Override
+ public IPage getPreviousPage() {
+ CollectNextPageVisitor visitor = new CollectNextPageVisitor(true);
+ return getPage(visitor);
+ }
+
+ /**
+ * Use the provided visitor to get the next page and return it.
+ */
+ private IPage getPage(CollectNextPageVisitor visitor) {
+ if (visitor != null) {
+ rootPart.visit(visitor);
+ if (!visitor.getNextPages().isEmpty()) {
+ return (IPage) visitor.getNextPages().get(0);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get the list of visible IPages. The visible IPages are the one that have there diagram area
+ * visible.
+ *
+ * @return
+ */
+ // public List<IEditorPage> getVisibleIEditorPages() {
+ // CollectVisiblePageVisitor visitor = new CollectVisiblePageVisitor( IEditorPage.class);
+ //
+ // rootPart.visit(visitor);
+ //
+ // return visitor.getVisiblePages();
+ // }
+
+ /**
+ * Get the list of visible IPages. The visible IPages are the one that have there diagram area
+ * visible.
+ *
+ * @return
+ */
+ @Override
+ public List<IEditorPart> getVisibleIEditorParts() {
+ CollectVisibleIEditorPart visitor = new CollectVisibleIEditorPart();
+ rootPart.visit(visitor);
+
+ return visitor.getVisiblePages();
+ }
+
+
+ /**
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#setFocus()
+ *
+ */
+ @Override
+ public void setFocus() {
+ setFocus(getActivePage());
+ }
+
+ /**
+ * Sets focus to the control for the given page. If the page has an editor,
+ * this calls its <code>setFocus()</code> method. Otherwise, this calls <code>setFocus</code> on the control for the page.
+ *
+ * @param pageIndex
+ * the index of the page
+ */
+ private void setFocus(PagePart part) {
+ if (part != null) {
+ part.setFocus();
+ }
+ }
+
+
+ /**
+ * Refresh the tabs.
+ * Is we are already currently refreshing, simply return.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#refreshTabs()
+ *
+ */
+ @Override
+ public void refreshTabs() {
+
+ // Check if we arent already refreshing
+ if (isRefreshing.compareAndSet(false, true)) {
+ try {
+ refreshTabsInternal();
+ } finally {
+ isRefreshing.set(false);
+ }
+ } else {
+ log.warn("refresh inside refresh !");
+ }
+
+ }
+
+ /**
+ * Refresh the tab of the page, (i.e the name and icon in the page's tab).
+ *
+ * @param page
+ * The page for which the name and icon should be refreshed.
+ */
+ public void refreshPageTab(IPage page) {
+ if (page instanceof PagePart) {
+ ((PagePart) page).refreshTab();
+ } else {
+ // TODO : lookup for the corresponding PagePart, and call refresh.
+
+ }
+ }
+
+ /**
+ * Real implementation of refreshTab.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#refreshTabs()
+ *
+ */
+ private void refreshTabsInternal() {
+ // System.out.println("start synchronize2() ------------------------");
+ // showTilesStatus();
+
+ // Get the currently selected folder
+ PagePart oldActivePage = getActivePage();
+
+ // Do refresh
+ container.setRedraw(false);
+ // Create map of parts
+ // PartMap<T> partMap = new PartMap<T>();
+ PartLists garbageMaps = new PartLists();
+ rootPart.fillPartMap(garbageMaps);
+
+ // Synchronize parts
+ rootPart.synchronize2(garbageMaps);
+
+
+ // Remove orphaned parts (no more used)
+ garbageMaps.garbage();
+
+ // set active page if needed
+ setActivePageAndSelection(checkAndGetActivePage(oldActivePage, garbageMaps));
+
+ // Reenable SWT and force layout
+ container.setRedraw(true);
+ container.layout(true, true);
+ // System.out.println("end synchronize2() ------------------------");
+ // showTilesStatus();
+ }
+
+ /**
+ * Select the specified page in the Parts. The specified page will becomes the active one.
+ * Appropriate events are fired.
+ * This is the programatic counterpart of selecting a page in the UI.
+ * If the provided page is null, do nothing.
+ * Removed since 0.10
+ *
+ * @param page
+ * The page to select or null.
+ */
+ // protected void selectPage(PagePart page) {
+ // if(page == null)
+ // return;
+ // TabFolderPart folder = page.getParent();
+ // folder.setActiveEditor(page);
+ // }
+
+ /**
+ * Select the specified page in the Parts. The specified page will becomes the active one.
+ * Appropriate events are fired if needed.
+ * This is the programmatic counterpart of selecting a page in the UI.
+ * If the provided page is null, do nothing.
+ *
+ * @param page
+ * The page to select or null. The IPage should
+ * be an instance previously returned by the SashContainer.
+ *
+ */
+ @Override
+ public void selectPage(IPage page) {
+ if (page == null) {
+ return;
+ }
+
+ // check if we are a correct instance.
+ if (!(page instanceof PagePart)) {
+ return;
+ }
+
+ setActivePageAndSelection((PagePart) page);
+ }
+
+ /**
+ * Lookup the {@link IPage} used to render the specified rawModel.
+ *
+ * @param rawModel
+ * The model for which the IPage is requested.
+ * If the model is not rendered, return null;
+ *
+ * @return The corresponding IPage or null if not found.
+ */
+ @Override
+ public IPage lookupModelPage(Object rawModel) {
+ // Use a visitor to lookup the first IPage
+ LookupModelPageVisitor visitor = new LookupModelPageVisitor(rawModel);
+ rootPart.visit(visitor);
+ return visitor.result();
+ }
+
+ /**
+ * Lookup the {@link IPage} used to render the specified IEditorPart.
+ *
+ * @param editor
+ * The IEditorPart for which the IPage is requested.
+ * If the IEditorPart is not rendered, return null;
+ *
+ * @return The corresponding IPage or null if not found.
+ */
+ @Override
+ public IPage lookupIPageByIEditorPart(IEditorPart editor) {
+ // Use a visitor to lookup the first IPage
+ LookupIPageByIEditorPartVisitor visitor = new LookupIPageByIEditorPartVisitor(editor);
+ rootPart.visit(visitor);
+ return visitor.result();
+ }
+
+ /**
+ * Check if the oldActivePage still alive, and set it if needed.
+ * If the oldActivePage is null, set an active page if one exist.
+ * If the oldActivePage still alive, let it as the active one. If it is
+ * disposed, get arbitrarily an active page if one exist.
+ *
+ * @param oldActivePage
+ * @param partLists
+ * @param garbageMaps
+ * @return A valid active page or null if none exists.
+ */
+ private PagePart checkAndGetActivePage(PagePart oldActivePage, PartLists partLists) {
+
+ // Check if there is a created page
+ PagePart activePage = partLists.getFirstCreatedPage();
+ if (activePage != null) {
+ // There is a created page. Set it as the selected and active one
+ return activePage;
+ }
+
+ // Check oldActivePage validity (in case it has been deleted)
+ if (oldActivePage != null && !(oldActivePage.isOrphaned() || oldActivePage.isUnchecked())) {
+ return oldActivePage;
+ }
+
+ // Get an active page if any
+ return lookupFirstValidPage();
+ }
+
+ /**
+ * Lookup for a valid active Page. Return null if none is found.
+ * TODO Use a visitor to implements this method.
+ *
+ * @return
+ */
+ private PagePart lookupFirstValidPage() {
+ // First get a list of active editors
+ PartLists garbageMaps = new PartLists();
+ rootPart.fillPartMap(garbageMaps);
+ return garbageMaps.getFirstValidPage();
+ }
+
+ /**
+ * Set a {@link MenuManager} used to manage a contextual menu that is shown on the tabs area of the folders.
+ *
+ * @param menuManager
+ * The {@link MenuManager} used to create the menu on the tab area.
+ */
+ @Override
+ public void setFolderTabMenuManager(MenuManager menuManager) {
+ this.folderTabMenuManager = menuManager;
+ // Set the MenuManager in each existing folder.
+ // Use a visitor.
+ SetFolderTabMenuVisitor visitor = new SetFolderTabMenuVisitor(menuManager);
+ rootPart.visit(visitor);
+ }
+
+ /**
+ * @return the menuManager
+ */
+ protected MenuManager getFolderTabMenuManager() {
+ return folderTabMenuManager;
+ }
+
+ /**
+ * Show the status of the different Tiles composing the sash system.
+ * Used for debug purpose.
+ */
+ public void showTilesStatus() {
+ ShowPartStatusVisitor visitor = new ShowPartStatusVisitor();
+ rootPart.visit(visitor);
+ }
+
+
+ /**
+ * Visit all the Pages (IEditorPage and IComponentPage), allowing to access to the public interface.
+ */
+ @Override
+ public void visit(IPageVisitor pageVisitor) {
+ PageVisitorWrapper visitor = new PageVisitorWrapper(pageVisitor);
+ rootPart.visit(visitor);
+ }
+
+ /**
+ * Visit the Part associated to the container. This method visibility is protected in order to be able to access it
+ * from junit tests.
+ * It is not intended to be used by public API or from outside.
+ */
+ protected void visit(IPartVisitor visitor) {
+ rootPart.visit(visitor);
+ }
+
+ /* ***************************************************** */
+ /* Drag and Drop methods */
+ /* ***************************************************** */
+
+ /**
+ *
+ */
+ private void initDrag(Composite container) {
+ DragUtil.addDragTarget(container, dragOverListener);
+
+ }
+
+ IDragOverListener dragOverListener = new IDragOverListener() {
+
+ /**
+ *
+ * @see org.eclipse.ui.internal.dnd.IDragOverListener#drag(org.eclipse.swt.widgets.Control, java.lang.Object, org.eclipse.swt.graphics.Point, org.eclipse.swt.graphics.Rectangle)
+ */
+ @Override
+ public IDropTarget drag(Control currentControl, Object draggedObject, Point position, Rectangle dragRectangle) {
+ // TODO remove the cast by changing the method. Only folder can be source and target
+ final TabFolderPart sourcePart = (TabFolderPart) rootPart.findPart(draggedObject); // (ITilePart) draggedObject;
+ // Compute src tab index
+ // TODO move that and previous in the sender of drag event. Use a class containing both as draggedObject.
+ final int srcTabIndex = PTabFolder.getDraggedObjectTabIndex(draggedObject);
+
+ // System.out.println("drag to position=" + position);
+ Rectangle containerDisplayBounds = DragUtil.getDisplayBounds(container);
+ AbstractPanelPart targetPart = null;
+
+ // Check if the cursor is inside the container
+ if (containerDisplayBounds.contains(position)) {
+
+ if (rootPart != null) {
+ targetPart = (AbstractPanelPart) rootPart.findPart(position);
+ // System.out.println("targetPart=" + targetPart
+ // + ", position=" + position
+ // + "container.toControl(position)=" + container.toControl(position));
+ }
+
+ if (targetPart != null) {
+ final Control targetControl = targetPart.getControl();
+
+ final Rectangle targetBounds = DragUtil.getDisplayBounds(targetControl);
+
+ int side = Geometry.getClosestSide(targetBounds, position);
+ int distance = Geometry.getDistanceFromEdge(targetBounds, position, side);
+
+ // Reserve the 5 pixels around the edge of the part for the drop-on-edge cursor
+ // Check if the target can handle the drop.
+ if (distance >= 5) {
+ // Otherwise, ask the part if it has any special meaning for this drop location
+ // TODO remove cast; change return type of findPart()
+ IDropTarget target = targetPart.getDropTarget(draggedObject, sourcePart, position);
+ if (target != null) {
+ return target;
+ }
+ } else {
+ // We are on the boarder, try to drop on the parent
+ // Warning : the parent could be the rootPart
+ // System.out.println("DropTarget near the border");
+ }
+ //
+ if (distance > 30) {
+ side = SWT.CENTER;
+ }
+ //
+ // // If the part doesn't want to override this drop location then drop on the edge
+ //
+ // // A "pointless drop" would be one that will put the dragged object back where it started.
+ // // Note that it should be perfectly valid to drag an object back to where it came from -- however,
+ // // the drop should be ignored.
+ //
+ @SuppressWarnings("unused")
+ boolean pointlessDrop = false;
+
+ if (sourcePart == targetPart) {
+ pointlessDrop = true;
+ }
+
+ return createDropTarget(sourcePart, srcTabIndex, side, side, targetPart);
+ }
+ } else {
+ // Cursor is outside the container
+ // System.out.println("Outside container bounds");
+ // This will be used to create a new Window.
+ // We only allow dropping into a stack, not creating one
+ // if (differentWindows)
+ // return null;
+
+ int side = Geometry.getClosestSide(containerDisplayBounds, position);
+
+ boolean pointlessDrop = false;
+ int cursor = Geometry.getOppositeSide(side);
+
+ if (pointlessDrop) {
+ side = SWT.NONE;
+ }
+
+ return createDropTarget(sourcePart, srcTabIndex, side, cursor, null);
+ }
+ return null;
+ }
+
+ };
+
+
+ /**
+ * Create the drop target
+ */
+ private DropTarget createDropTarget(final TabFolderPart sourcePart, int srcTabIndex, int side, int cursor, AbstractPart targetPart) {
+ if (dropTarget == null) {
+ dropTarget = new DropTarget(sourcePart, srcTabIndex, side, cursor, targetPart);
+ } else {
+ dropTarget.setTarget(sourcePart, srcTabIndex, side, cursor, targetPart);
+ }
+ return dropTarget;
+ }
+
+ /**
+ * Class implementing methods required by drop targets.
+ */
+ protected class DropTarget implements IDropTarget {
+
+ int count = 0;
+
+ int cursor = SWT.TOP;
+
+ private int side;
+
+ private AbstractPanelPart targetPart;
+
+ private int srcTabIndex;
+
+ private TabFolderPart sourcePart;
+
+ /**
+ * Constructor.
+ */
+ public DropTarget(TabFolderPart sourcePart, int srcTabIndex, int cursor, int side, AbstractPart targetPart) {
+ this.cursor = cursor;
+ this.side = side;
+ this.sourcePart = sourcePart;
+ this.srcTabIndex = srcTabIndex;
+ this.targetPart = (AbstractPanelPart) targetPart;
+ }
+
+ public void setTarget(TabFolderPart sourcePart, int srcTabIndex, int cursor, int side, AbstractPart targetPart) {
+ this.cursor = cursor;
+ this.side = side;
+ this.sourcePart = sourcePart;
+ this.srcTabIndex = srcTabIndex;
+ this.targetPart = (AbstractPanelPart) targetPart;
+ }
+
+ /**
+ * A folder is dropped.
+ *
+ * @see org.eclipse.ui.internal.dnd.IDropTarget#drop()
+ */
+ @Override
+ public void drop() {
+ // @TODO remove next cast
+ if (side == SWT.CENTER) { // Add to target folder
+ contentProvider.movePage(sourcePart.getPartModel(), srcTabIndex, ((TabFolderPart) targetPart).getPartModel(), -1);
+ } else { // Create a new folder
+ contentProvider.createFolder(sourcePart.getPartModel(), srcTabIndex, ((TabFolderPart) targetPart).getPartModel(), side);
+ }
+ }
+
+ /**
+ * Return the cursor used during drag.
+ *
+ * @see org.eclipse.ui.internal.dnd.IDropTarget#getCursor()
+ */
+ @Override
+ public Cursor getCursor() {
+ // System.out.println(SashWindowsContainer.this.getClass().getSimpleName() + ".getCursor()-" + count++);
+ return DragCursors.getCursor(DragCursors.positionToDragCursor(cursor));
+
+ }
+
+ @Override
+ public Rectangle getSnapRectangle() {
+ // System.out.println(SashWindowsContainer.this.getClass().getSimpleName() + ".getSnapRectangle(" + "sourcePart=" + sourcePart + ", targetPart=" + targetPart + ", side=" + side);
+ Rectangle targetDisplayBounds;
+
+ if (targetPart != null) {
+ targetDisplayBounds = DragUtil.getDisplayBounds(targetPart.getControl());
+ } else {
+ // targetBounds = DragUtil.getDisplayBounds(getParent());
+ targetDisplayBounds = DragUtil.getDisplayBounds(container);
+ }
+
+ if (side == SWT.CENTER || side == SWT.NONE) {
+ return targetDisplayBounds;
+ }
+
+ int distance = Geometry.getDimension(targetDisplayBounds, !Geometry.isHorizontal(side));
+
+ return Geometry.getExtrudedEdge(targetDisplayBounds, (int) (distance * getDockingRatio(sourcePart, targetPart)), side);
+ }
+
+ protected float getDockingRatio(AbstractPart dragged, AbstractPart target) {
+ return 0.5f;
+ }
+
+ }
+
+
+ /**
+ * @return the lifeCycleEventProvider
+ */
+ protected SashContainerEventsProvider getLifeCycleEventProvider() {
+ return lifeCycleEventProvider;
+ }
+
+ /**
+ * @return the folderLifeCycleEventProvider
+ */
+ protected SashContainerFolderEventsProvider getFolderLifeCycleEventProvider() {
+ return folderLifeCycleEventProvider;
+ }
+
+ /**
+ * Get the event provider used to throw TabMouseEvents.
+ *
+ * @return the TabMouseEventsProvider
+ */
+ public TabMouseEventsProvider getFolderTabMouseEventProvider() {
+ return tabMouseEventsProvider;
+ }
+
+ /**
+ * Return a list of all folders opened in this SashContainer. The list should only
+ * be used as a 'view' list. It should not be modified or written. The list
+ * is observable. <br>
+ * Actually, the folders are never removed from the list. This is because
+ * TabFolderPart.dispose() is never called.
+ * TODO Let TabFolderPart.dispose() be called.
+ *
+ * @return a read only and observable list of {@link IFolder}.
+ */
+ @Override
+ public IObservableList<IFolder> getIFolderList() {
+ return folderListManager.getFolderList();
+ }
+
+ /**
+ * Init the folderListManager and let it listen to folder events.
+ */
+ private void initTabFolderListManager() {
+ folderLifeCycleEventProvider = new SashContainerFolderEventsProvider();
+ folderListManager = new TabFolderListManager();
+ // Listen to folder events.
+ folderLifeCycleEventProvider.addListener(folderListManager);
+ }
+
+ /**
+ * Add a listener on pageChanged event.
+ * This implementation delegates to the internal PageTracker.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param pageChangedListener
+ *
+ */
+ @Override
+ public void addPageChangedListener(IPageChangedListener pageChangedListener) {
+ activePageTracker.addPageChangedListener(pageChangedListener);
+ }
+
+ /**
+ * Remove a listener on pageChanged event.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param pageChangedListener
+ *
+ */
+ @Override
+ public void removePageChangedListener(IPageChangedListener pageChangedListener) {
+ activePageTracker.removePageChangedListener(pageChangedListener);
+ }
+
+ /**
+ * Add a listener on Page LifeCycle events.
+ * This implementation delegates to the internal PageTracker.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param listener
+ *
+ */
+ @Override
+ public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener) {
+ lifeCycleEventProvider.addListener(listener);
+ }
+
+
+ /**
+ * Remove a listener on Page LifeCycle events.
+ *
+ * @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
+ * @param listener
+ *
+ */
+ @Override
+ public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener) {
+ lifeCycleEventProvider.removeListener(listener);
+ }
+
+ /**
+ * Add a listener {@link ITabMouseEventsListener} on folder's tabs events.
+ *
+ * @param listener
+ */
+ @Override
+ public void addFolderTabMouseEventListener(ITabMouseEventsListener listener) {
+ tabMouseEventsProvider.addListener(listener);
+ }
+
+ /**
+ * Add a listener {@link ITabMouseEventsListener} on folder's tabs events.
+ *
+ * @param listener
+ */
+ @Override
+ public void removeFolderTabMouseEventListener(ITabMouseEventsListener listener) {
+ tabMouseEventsProvider.removeListener(listener);
+ }
+
+ /* ***************************************************** */
+ /* Internal Visitors */
+ /* ***************************************************** */
+
+
+ /**
+ * Inner class.
+ * A visitor setting the {@link MenuManager} on each folder.
+ */
+ private class SetFolderTabMenuVisitor extends PartVisitor {
+
+
+ private MenuManager menuManager;
+
+ /**
+ * Constructor.
+ *
+ * @param menuManager
+ */
+ public SetFolderTabMenuVisitor(MenuManager menuManager) {
+ this.menuManager = menuManager;
+ }
+
+ /**
+ * Set the menu if the visited node is a folder.
+ */
+ @Override
+ public boolean accept(TabFolderPart part) {
+ part.setFolderTabMenuManager(menuManager);
+ return true;
+ }
+
+ }
+
+ /**
+ * Inner class.
+ * A visitor used to collect all visible page in the sashcontainer.
+ * A visible page is a page whose the diagram area is visible.
+ */
+ private class CollectVisiblePageVisitor extends PartVisitor {
+
+ private List<IPage> visiblePages = new ArrayList<IPage>();
+
+ private Class<? extends IPage> expectedClass;
+
+ /**
+ * Constructor.
+ *
+ * @param menuManager
+ */
+ public CollectVisiblePageVisitor() {
+
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param menuManager
+ */
+ @SuppressWarnings("unused")
+ public CollectVisiblePageVisitor(Class<? extends IPage> expectedClass) {
+ this.expectedClass = expectedClass;
+ }
+
+ /**
+ * Get the result list.
+ *
+ * @param <T>
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ public <T> List<T> getVisiblePages() {
+ return (List<T>) visiblePages;
+ }
+
+ /**
+ * Set the menu if the visited node is a folder.
+ */
+ @Override
+ public boolean accept(TabFolderPart part) {
+
+ IPage page = part.getVisiblePagePart();
+ if (part != null) {
+ if (expectedClass != null && expectedClass.isInstance(page)) {
+ visiblePages.add(page);
+ } else {
+ visiblePages.add(page);
+ }
+
+ }
+
+ return true;
+ }
+
+ }
+
+ /**
+ * Inner class.
+ * A visitor used to collect the next page of the next opened tab (right or left).
+ * A tab is opened if it is visible in the editor.
+ */
+ private class CollectNextPageVisitor extends PartVisitor {
+
+ private List<IPage> nextPages = new ArrayList<IPage>();
+
+ private final boolean isPrevious;
+
+ /**
+ * Constructor
+ */
+ public CollectNextPageVisitor(boolean isPrevious) {
+ this.isPrevious = isPrevious;
+ }
+
+ /**
+ * Get the results list.
+ */
+ public List<IPage> getNextPages() {
+ return nextPages;
+ }
+
+ /**
+ * Get the index of the currently active tab and then increments/decrements the index by 1
+ * to select the next/previous tab. The page of the tab is returned.
+ */
+ @Override
+ public boolean accept(TabFolderPart part) {
+ PagePart activePage = activePageTracker.getActiveEditor();
+ PagePart visiblePage = part.getVisiblePagePart();
+
+ if (activePage == visiblePage) {
+ CTabFolder tabFolder = part.getTabFolder();
+ int itemCount = tabFolder.getItemCount();
+
+ if (itemCount > 1) {
+ int selectionIndex = tabFolder.getSelectionIndex();
+
+ if (isPrevious) {
+ selectionIndex--;
+ if (selectionIndex < 0) {
+ selectionIndex = itemCount - 1;
+ }
+ } else {
+ selectionIndex++;
+ if (selectionIndex >= itemCount) {
+ selectionIndex = 0;
+ }
+ }
+
+ IPage nextPage = part.getPagePart(selectionIndex);
+ if (nextPage != null) {
+ nextPages.add(nextPage);
+ }
+ }
+ }
+
+ return true;
+ }
+ }
+
+ /**
+ * Inner class.
+ * A visitor used to collect all visible page in the sashcontainer.
+ * A visible page is a page whose the diagram area is visible.
+ */
+ private class AbstractCollectIEditorPart extends PartVisitor {
+
+ protected List<IEditorPart> editorParts = new ArrayList<IEditorPart>();
+
+ /**
+ * Constructor.
+ *
+ * @param menuManager
+ */
+ public AbstractCollectIEditorPart() {
+
+ }
+
+ /**
+ * Get the result list.
+ *
+ * @param <T>
+ * @return
+ */
+ public List<IEditorPart> getVisiblePages() {
+ return editorParts;
+ }
+
+ }
+
+ /**
+ * Inner class.
+ * A visitor used to collect all visible page in the sashcontainer.
+ * A visible page is a page whose the diagram area is visible.
+ */
+ private class CollectVisibleIEditorPart extends AbstractCollectIEditorPart {
+
+ /**
+ * Set the menu if the visited node is a folder.
+ */
+ @Override
+ public boolean accept(TabFolderPart part) {
+
+ IPage page = part.getVisiblePagePart();
+ if (page != null && page instanceof IEditorPage) {
+ IEditorPage editorPage = (IEditorPage) page;
+ editorParts.add(editorPage.getIEditorPart());
+
+ }
+ // continue searching
+ return true;
+ }
+
+ }
+
+ /**
+ * Inner class.
+ * A visitor used to collect all parts in the sashcontainer.
+ * A visible page is a page whose the diagram area is visible.
+ */
+ @SuppressWarnings("unused")
+ private class CollectIEditorParts extends AbstractCollectIEditorPart {
+
+ /**
+ * Add the part to thecollection.
+ */
+ @Override
+ public boolean accept(EditorPart part) {
+
+ IEditorPart editorPart = part.getIEditorPart();
+ if (editorPart != null) {
+ editorParts.add(editorPart);
+ }
+
+ // continue searching
+ return true;
+ }
+
+ }
+
+
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/ExpansionElementDropStrategy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/ExpansionElementDropStrategy.java
index 337d24be4b3..bc7175f0d1e 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/ExpansionElementDropStrategy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/ExpansionElementDropStrategy.java
@@ -1,191 +1,191 @@
-/*****************************************************************************
- * Copyright (c) 2015 CEA LIST.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.infra.gmfdiag.dnd.strategy;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
-import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
-import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.commands.wrappers.CommandProxyWithResult;
-import org.eclipse.papyrus.commands.wrappers.GMFtoGEFCommandWrapper;
-import org.eclipse.papyrus.infra.gmfdiag.common.expansion.ChildrenListRepresentation;
-import org.eclipse.papyrus.infra.gmfdiag.common.expansion.DiagramExpansionSingleton;
-import org.eclipse.papyrus.infra.gmfdiag.common.expansion.DiagramExpansionsRegistry;
-import org.eclipse.papyrus.infra.gmfdiag.common.expansionmodel.AbstractRepresentation;
-import org.eclipse.papyrus.infra.gmfdiag.common.expansionmodel.Representation;
-import org.eclipse.papyrus.infra.gmfdiag.dnd.Activator;
-import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * This strategy has been added in order allow dropping new element done by using expansion model
- * See Requirement #org.eclipse.papyrus.infra.gmfdiag.expansion.Req_020
- *
- */
-public class ExpansionElementDropStrategy extends TransactionalDropStrategy {
-
- private DiagramExpansionsRegistry diagramExpansionRegistry;
- private static final String DEBUG_PREFIX = "[EXPANSION_DIAGRAM]";
- private static final boolean DEBUG_EXPANSION = "true".equalsIgnoreCase(Platform.getDebugOption(
- "org.eclipse.papyrus.infra.gmfdiag.common/debug/expansion"));
-
- /**
- * Constructor.
- *
- */
- public ExpansionElementDropStrategy() {
- this.diagramExpansionRegistry = DiagramExpansionSingleton.getInstance().getDiagramExpansionRegistry();
- }
- public String getLabel() {
- return "Expansion element drag and drop";
- }
-
- public String getID() {
- return "org.eclipse.papyrus.infra.gmfdiag.dnd.expansiondropsteategy";
- }
-
- public String getDescription() {
- return "This strategy is used to allow dropping of expansion of elements in extended diagrams.";
- }
-
- public Image getImage() {
- return null;
- }
-
- public int getPriority() {
- return 0;
- }
-
- public void setOptions(Map<String, Object> options) {
- // Nothing
- }
- /**
- * get the diagram type from a view.
- * @param currentView the current view
- * @return the diagram type it can be also a view point
- */
- protected String getDiagramType(View currentView) {
- Diagram diagram=currentView.getDiagram();
- String currentDiagramType=null;
- ViewPrototype viewPrototype=org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils.getPrototype(diagram);
- if(viewPrototype!=null){
- currentDiagramType=viewPrototype.getLabel();
- }
- else{
- currentDiagramType=diagram.getType();
- }
- return currentDiagramType;
- }
- @Override
- public Command doGetCommand(Request request, final EditPart targetEditPart) {
-
- CompositeCommand cc = new CompositeCommand(getLabel());
- if(targetEditPart instanceof GraphicalEditPart){
- IGraphicalEditPart graphicalEditPart= (IGraphicalEditPart)targetEditPart;
- String diagramType= getDiagramType(graphicalEditPart.getNotationView());
- ChildrenListRepresentation listRepresentation=diagramExpansionRegistry.mapChildreen.get(diagramType);
- //to the current diagram, a expansion is added.
- if(listRepresentation==null){
- return null;
- }
- //look for all possible children for the current target.
- List<String>childrenList =listRepresentation.parentChildrenRelation.get(graphicalEditPart.getNotationView().getType());
- if(childrenList==null){
- return null;
- }
- List<EObject> sourceElements = getSourceEObjects(request);
- if(sourceElements.size()==0 ){
- return null;
- }
- final List<EObject> valuesToAdd = new ArrayList<EObject>(sourceElements.size());
- //getList of accepted ElementType
- final ArrayList<ISpecializationType> acceptedElementTypes= new ArrayList<ISpecializationType>();
-
-
- for (String posibleID : childrenList) {
- AbstractRepresentation abstractRepresentation=listRepresentation.IDMap.get(posibleID);
- if( abstractRepresentation instanceof Representation){
- String elementTypeID=((Representation)abstractRepresentation).getGraphicalElementType();
- if( elementTypeID!=null && elementTypeID!=""){
- final IElementType elementType=ElementTypeRegistry.getInstance().getType(elementTypeID);
- if( elementType instanceof ISpecializationType){
- acceptedElementTypes.add((ISpecializationType)elementType);
- }
- }
- }
- }
- if(DEBUG_EXPANSION){
- Activator.log.debug(DEBUG_PREFIX+"try to drop "+ sourceElements+" inside "+graphicalEditPart.getNotationView().getType()+ " accepts "+childrenList);
- }
- // get the sub list of accepted source element that match to elementType
- for (EObject sourceElement : sourceElements) {
- Command cmd=null;
- int acceptedElementTypesIndex=0;
- while (cmd==null &&acceptedElementTypesIndex<acceptedElementTypes.size()){
- final ISpecializationType iSpecializationType = acceptedElementTypes.get(acceptedElementTypesIndex);
- IElementMatcher matcher=iSpecializationType.getMatcher();
- if( matcher.matches(sourceElement)){
- valuesToAdd.add(sourceElement);
- if(DEBUG_EXPANSION){
- Activator.log.debug(DEBUG_PREFIX+"try to drop command created for "+ sourceElement+ " "+iSpecializationType);
- }
- cmd= new Command() {
- @Override
- public void execute() {
- if( iSpecializationType instanceof IHintedType){
- ViewService.createNode(((GraphicalEditPart) targetEditPart).getNotationView(),valuesToAdd.get(0), ((IHintedType)iSpecializationType).getSemanticHint(), ((GraphicalEditPart) targetEditPart).getDiagramPreferencesHint());
- }
- }
-
- };
- cc.add(new CommandProxy( cmd));
- }
- else{
- acceptedElementTypesIndex++;
- }
-
- }
-
- }
- }
-
- return cc.canExecute() ? new ICommandProxy(cc.reduce()) : null;
- }
-
-
- public String getCategoryID() {
- return "org.eclipse.papyrus.infra.gmfdiag.dnd.expansiondropsteategy";
- }
-
- public String getCategoryLabel() {
- return "Expansion element drag and drop";
- }
-}
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.dnd.strategy;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.commands.wrappers.CommandProxyWithResult;
+import org.eclipse.papyrus.commands.wrappers.GMFtoGEFCommandWrapper;
+import org.eclipse.papyrus.infra.gmfdiag.common.expansion.ChildrenListRepresentation;
+import org.eclipse.papyrus.infra.gmfdiag.common.expansion.DiagramExpansionSingleton;
+import org.eclipse.papyrus.infra.gmfdiag.common.expansion.DiagramExpansionsRegistry;
+import org.eclipse.papyrus.infra.gmfdiag.common.expansionmodel.AbstractRepresentation;
+import org.eclipse.papyrus.infra.gmfdiag.common.expansionmodel.Representation;
+import org.eclipse.papyrus.infra.gmfdiag.dnd.Activator;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * This strategy has been added in order allow dropping new element done by using expansion model
+ * See Requirement #org.eclipse.papyrus.infra.gmfdiag.expansion.Req_020
+ *
+ */
+public class ExpansionElementDropStrategy extends TransactionalDropStrategy {
+
+ private DiagramExpansionsRegistry diagramExpansionRegistry;
+ private static final String DEBUG_PREFIX = "[EXPANSION_DIAGRAM]";
+ private static final boolean DEBUG_EXPANSION = "true".equalsIgnoreCase(Platform.getDebugOption(
+ "org.eclipse.papyrus.infra.gmfdiag.common/debug/expansion"));
+
+ /**
+ * Constructor.
+ *
+ */
+ public ExpansionElementDropStrategy() {
+ this.diagramExpansionRegistry = DiagramExpansionSingleton.getInstance().getDiagramExpansionRegistry();
+ }
+ public String getLabel() {
+ return "Expansion element drag and drop";
+ }
+
+ public String getID() {
+ return "org.eclipse.papyrus.infra.gmfdiag.dnd.expansiondropsteategy";
+ }
+
+ public String getDescription() {
+ return "This strategy is used to allow dropping of expansion of elements in extended diagrams.";
+ }
+
+ public Image getImage() {
+ return null;
+ }
+
+ public int getPriority() {
+ return 0;
+ }
+
+ public void setOptions(Map<String, Object> options) {
+ // Nothing
+ }
+ /**
+ * get the diagram type from a view.
+ * @param currentView the current view
+ * @return the diagram type it can be also a view point
+ */
+ protected String getDiagramType(View currentView) {
+ Diagram diagram=currentView.getDiagram();
+ String currentDiagramType=null;
+ ViewPrototype viewPrototype=org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils.getPrototype(diagram);
+ if(viewPrototype!=null){
+ currentDiagramType=viewPrototype.getLabel();
+ }
+ else{
+ currentDiagramType=diagram.getType();
+ }
+ return currentDiagramType;
+ }
+ @Override
+ public Command doGetCommand(Request request, final EditPart targetEditPart) {
+
+ CompositeCommand cc = new CompositeCommand(getLabel());
+ if(targetEditPart instanceof GraphicalEditPart){
+ IGraphicalEditPart graphicalEditPart= (IGraphicalEditPart)targetEditPart;
+ String diagramType= getDiagramType(graphicalEditPart.getNotationView());
+ ChildrenListRepresentation listRepresentation=diagramExpansionRegistry.mapChildreen.get(diagramType);
+ //to the current diagram, a expansion is added.
+ if(listRepresentation==null){
+ return null;
+ }
+ //look for all possible children for the current target.
+ List<String>childrenList =listRepresentation.parentChildrenRelation.get(graphicalEditPart.getNotationView().getType());
+ if(childrenList==null){
+ return null;
+ }
+ List<EObject> sourceElements = getSourceEObjects(request);
+ if(sourceElements.size()==0 ){
+ return null;
+ }
+ final List<EObject> valuesToAdd = new ArrayList<EObject>(sourceElements.size());
+ //getList of accepted ElementType
+ final ArrayList<ISpecializationType> acceptedElementTypes= new ArrayList<ISpecializationType>();
+
+
+ for (String posibleID : childrenList) {
+ AbstractRepresentation abstractRepresentation=listRepresentation.IDMap.get(posibleID);
+ if( abstractRepresentation instanceof Representation){
+ String elementTypeID=((Representation)abstractRepresentation).getGraphicalElementType();
+ if( elementTypeID!=null && elementTypeID!=""){
+ final IElementType elementType=ElementTypeRegistry.getInstance().getType(elementTypeID);
+ if( elementType instanceof ISpecializationType){
+ acceptedElementTypes.add((ISpecializationType)elementType);
+ }
+ }
+ }
+ }
+ if(DEBUG_EXPANSION){
+ Activator.log.debug(DEBUG_PREFIX+"try to drop "+ sourceElements+" inside "+graphicalEditPart.getNotationView().getType()+ " accepts "+childrenList);
+ }
+ // get the sub list of accepted source element that match to elementType
+ for (EObject sourceElement : sourceElements) {
+ Command cmd=null;
+ int acceptedElementTypesIndex=0;
+ while (cmd==null &&acceptedElementTypesIndex<acceptedElementTypes.size()){
+ final ISpecializationType iSpecializationType = acceptedElementTypes.get(acceptedElementTypesIndex);
+ IElementMatcher matcher=iSpecializationType.getMatcher();
+ if(matcher!=null && matcher.matches(sourceElement)){
+ valuesToAdd.add(sourceElement);
+ if(DEBUG_EXPANSION){
+ Activator.log.debug(DEBUG_PREFIX+"try to drop command created for "+ sourceElement+ " "+iSpecializationType);
+ }
+ cmd= new Command() {
+ @Override
+ public void execute() {
+ if( iSpecializationType instanceof IHintedType){
+ ViewService.createNode(((GraphicalEditPart) targetEditPart).getNotationView(),valuesToAdd.get(0), ((IHintedType)iSpecializationType).getSemanticHint(), ((GraphicalEditPart) targetEditPart).getDiagramPreferencesHint());
+ }
+ }
+
+ };
+ cc.add(new CommandProxy( cmd));
+ }
+ else{
+ acceptedElementTypesIndex++;
+ }
+
+ }
+
+ }
+ }
+
+ return cc.canExecute() ? new ICommandProxy(cc.reduce()) : null;
+ }
+
+
+ public String getCategoryID() {
+ return "org.eclipse.papyrus.infra.gmfdiag.dnd.expansiondropsteategy";
+ }
+
+ public String getCategoryLabel() {
+ return "Expansion element drag and drop";
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java b/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java
index fae74791d0c..7804053e118 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.newchild/src/org/eclipse/papyrus/infra/newchild/CreationMenuFactory.java
@@ -18,6 +18,9 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.command.UnexecutableCommand;
import org.eclipse.emf.common.util.EList;
@@ -31,9 +34,12 @@ import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.newchild.elementcreationmenumodel.CreationMenu;
import org.eclipse.papyrus.infra.newchild.elementcreationmenumodel.Folder;
+import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext;
import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
import org.eclipse.swt.SWT;
@@ -140,11 +146,47 @@ public class CreationMenuFactory {
* @return true if sub-menu has been created
*/
protected boolean constructMenu(EObject selectedObject, Menu menu, CreationMenu currentCreationMenu) {
+ String menuType = currentCreationMenu.getElementTypeIdRef();
+
+ // find the destination owner
+ GetEditContextRequest editContextRequest = new GetEditContextRequest(editingDomain, buildRequest(null, selectedObject, menuType), selectedObject);
+ editContextRequest.setEditContext(selectedObject);
+ try {
+ editContextRequest.setClientContext(TypeContext.getContext());
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ return false;
+ }
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(selectedObject);
+ if (provider == null) {
+ return false;
+ }
+
+ EObject target = selectedObject;
+ Object result = null;
+ ICommand getEditContextCommand = provider.getEditCommand(editContextRequest);
+ if (getEditContextCommand != null) {
+ IStatus status = null;
+ try {
+ status = getEditContextCommand.execute(new NullProgressMonitor(), null);
+ } catch (ExecutionException e) {
+ Activator.log.error(e);
+ return false;
+ }
+ if (!(status == null || !status.isOK())) {
+ result = getEditContextCommand.getCommandResult().getReturnValue();
+ }
+ if(result instanceof EObject) {
+ target = (EObject)result;
+ }
+ }
+
// find the feature between children and owner
- ArrayList<EStructuralFeature> possibleEFeatures = getEreferences(selectedObject, currentCreationMenu);
+ ArrayList<EStructuralFeature> possibleEFeatures = getEreferences(target, currentCreationMenu);
if (possibleEFeatures.size() == 1) {
- Command cmd = buildCommand(null, selectedObject, currentCreationMenu.getElementTypeIdRef());
+ Command cmd = buildCommand(null, target, currentCreationMenu.getElementTypeIdRef());
if (cmd.canExecute()) {
MenuItem item = new MenuItem(menu, SWT.NONE);
fillIcon(currentCreationMenu, item);
@@ -162,7 +204,7 @@ public class CreationMenuFactory {
topMenuItem.setMenu(topMenu);
for (EStructuralFeature eStructuralFeature : possibleEFeatures) {
- Command cmd = buildCommand((EReference) eStructuralFeature, selectedObject, currentCreationMenu.getElementTypeIdRef());
+ Command cmd = buildCommand((EReference) eStructuralFeature, target, currentCreationMenu.getElementTypeIdRef());
if (cmd.canExecute()) {
MenuItem item = new MenuItem(topMenu, SWT.NONE);
fillIcon(currentCreationMenu, item);
@@ -315,14 +357,13 @@ public class CreationMenuFactory {
* @return a command that can be executed by the domain
*/
protected Command buildCommand(EReference reference, EObject container, String extendedType) {
-
-
IElementEditService provider = ElementEditServiceUtils.getCommandProvider(container);
if (provider == null) {
return UnexecutableCommand.INSTANCE;
}
- ICommand createGMFCommand = provider.getEditCommand(buildRequest(reference, container, extendedType));
+ CreateElementRequest createElementRequest = buildRequest(reference, container, extendedType);
+ ICommand createGMFCommand = provider.getEditCommand(createElementRequest);
if (createGMFCommand != null) {
Command emfCommand = new org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper(createGMFCommand);
return emfCommand;
@@ -333,7 +374,7 @@ public class CreationMenuFactory {
/**
*
* @return
- * the creation request to use in this handler
+ * the creation request to use in this handler
*/
protected CreateElementRequest buildRequest(EReference reference, EObject container, String extendedType) {
if (reference == null) {
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/icons/Switch_12x12.gif b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/icons/Switch_12x12.gif
new file mode 100644
index 00000000000..9a6070c38ef
--- /dev/null
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/icons/Switch_12x12.gif
Binary files differ
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/AbstractReferenceDialog.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/AbstractReferenceDialog.java
new file mode 100644
index 00000000000..ff403674f92
--- /dev/null
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/AbstractReferenceDialog.java
@@ -0,0 +1,178 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.widgets.editors;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This class allow to define a reference value editor.
+ */
+public abstract class AbstractReferenceDialog extends AbstractValueEditor implements IReferenceValueEditor {
+
+ /**
+ * Boolean to detect direct creation.
+ */
+ protected boolean directCreation;
+
+ /**
+ * Indicates whether the widget requires a value or not. If it is mandatory,
+ * it cannot delete/unset its value
+ */
+ protected boolean mandatory;
+
+ /**
+ * Boolean to determinate if the editors are read-only.
+ */
+ protected boolean readOnly;
+
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The parent composite.
+ */
+ protected AbstractReferenceDialog(final Composite parent) {
+ super(parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The parent composite.
+ * @param style
+ * The style.
+ * @param label
+ * The label.
+ */
+ protected AbstractReferenceDialog(final Composite parent, final int style, final String label) {
+ super(parent, style, label);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The parent composite.
+ * @param style
+ * The style.
+ */
+ protected AbstractReferenceDialog(final Composite parent, final int style) {
+ super(parent, style);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The parent composite.
+ * @param label
+ * The label.
+ */
+ protected AbstractReferenceDialog(final Composite parent, final String label) {
+ super(parent, label);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.IReferenceValueEditor#setContentProvider(org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider)
+ */
+ @Override
+ public abstract void setContentProvider(final IStaticContentProvider provider);
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.IReferenceValueEditor#setLabelProvider(org.eclipse.jface.viewers.ILabelProvider)
+ */
+ @Override
+ public abstract void setLabelProvider(final ILabelProvider provider);
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.IReferenceValueEditor#setValueFactory(org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory)
+ */
+ @Override
+ public abstract void setValueFactory(final ReferenceValueFactory factory);
+
+ protected abstract void updateControls();
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.IReferenceValueEditor#setDirectCreation(boolean)
+ */
+ @Override
+ public void setDirectCreation(final boolean directCreation) {
+ this.directCreation = directCreation;
+ updateControls();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.IReferenceValueEditor#setMandatory(boolean)
+ */
+ @Override
+ public void setMandatory(final boolean mandatory) {
+ this.mandatory = mandatory;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractValueEditor#getValue()
+ */
+ @Override
+ public abstract Object getValue();
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractEditor#getEditableType()
+ */
+ @Override
+ public Object getEditableType() {
+ return Object.class;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractEditor#setReadOnly(boolean)
+ */
+ @Override
+ public void setReadOnly(final boolean readOnly) {
+ this.readOnly = readOnly;
+ updateControls();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractEditor#isReadOnly()
+ */
+ @Override
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ protected abstract void updateLabel();
+
+}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/IReferenceValueEditor.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/IReferenceValueEditor.java
new file mode 100644
index 00000000000..ebc5deeab3d
--- /dev/null
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/IReferenceValueEditor.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.widgets.editors;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+
+/**
+ * This interface allow to define the reference value editor methods to implements.
+ */
+public interface IReferenceValueEditor {
+
+ /**
+ * Sets the Content provider for this editor
+ *
+ * @param provider
+ * The content provider used to retrieve the possible values for this Reference.
+ */
+ void setContentProvider(final IStaticContentProvider provider);
+
+ /**
+ * Sets the Label provider for this editor If the label provider is null, a
+ * default one will be used. The same label provider is used for both the
+ * editor's label and the selection dialog.
+ *
+ * @param provider
+ * The label provider.
+ */
+ void setLabelProvider(final ILabelProvider provider);
+
+ /**
+ * Sets the factory.
+ *
+ * @param factory
+ * The reference value factory.
+ */
+ void setValueFactory(final ReferenceValueFactory factory);
+
+ /**
+ * Sets the direct creation value.
+ *
+ * @param directCreation
+ * Boolean to determinate the direct creation value.
+ */
+ void setDirectCreation(final boolean directCreation);
+
+ /**
+ * Sets the mandatory.
+ *
+ * @param mandatory
+ * The mandatory boolean value.
+ */
+ void setMandatory(final boolean mandatory);
+
+ /**
+ * Sets the read only value.
+ *
+ * @param readOnly
+ * The read only value.
+ */
+ void setReadOnly(final boolean readOnly);
+}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultiplicityDialog.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultiplicityDialog.java
new file mode 100644
index 00000000000..2c8766fd456
--- /dev/null
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultiplicityDialog.java
@@ -0,0 +1,605 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.widgets.editors;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.papyrus.infra.widgets.Activator;
+import org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory;
+import org.eclipse.papyrus.infra.widgets.messages.Messages;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+import org.eclipse.papyrus.infra.widgets.util.MultiplicityConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * The multiplicity dialog which allow to define 2 'modes' : The simple mode with a string combo editor and the advanced with 2 editors of ValueSpecification.
+ */
+public class MultiplicityDialog extends AbstractValueEditor implements SelectionListener, IChangeListener {
+
+ /**
+ * The string combo index in the list of editors.
+ */
+ protected static final int MULTIPLICITY_STRING_COMBO_INDEX = 0;
+
+ /**
+ * The lower value editor index in the list of editors.
+ */
+ protected static final int MULTIPLICITY_LOWER_VALUE_INDEX = 1;
+
+ /**
+ * The upper value editor index in the list of editors.
+ */
+ protected static final int MULTIPLICITY_UPPER_VALUE_INDEX = 2;
+
+
+ /**
+ * The stack layout for the 'mode' of editor to display.
+ */
+ protected StackLayout stackLayout;
+
+ /**
+ * The string combo editor for the 'simple' mode.
+ */
+ protected StringCombo stringComboEditor;
+
+ /**
+ * The parent stack layout composite.
+ */
+ protected Composite stackLayoutComposite;
+
+ /**
+ * The composite which contains the 'advanced' mode editors.
+ */
+ protected Composite doubleEditorsComposite;
+
+ /**
+ * The lower value specification editor.
+ */
+ protected AbstractReferenceDialog lowerValueEditor;
+
+ /**
+ * The upper value specification editor.
+ */
+ protected AbstractReferenceDialog upperValueEditor;
+
+ /**
+ * The switch editors button.
+ */
+ protected Button switchEditorsButton;
+
+ /**
+ * Boolean to determinate if the editors are read-only.
+ */
+ protected boolean readOnly;
+
+ /**
+ * The preference store.
+ */
+ protected IPreferenceStore preferenceStore;
+
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The parent composite.
+ * @param style
+ * The style.
+ */
+ public MultiplicityDialog(final Composite parent, final int style) {
+ this(parent, style, null);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The parent composite.
+ * @param style
+ * The style.
+ * @param preferenceStore
+ * The preference store.
+ */
+ public MultiplicityDialog(final Composite parent, final int style, final IPreferenceStore preferenceStore) {
+ super(parent, style);
+
+ // Create the stack layout composite
+ stackLayout = new StackLayout();
+ stackLayoutComposite = new Composite(this, style);
+ stackLayoutComposite.setLayout(stackLayout);
+ stackLayoutComposite.setLayoutData(getDefaultLayoutData());
+
+ // Create the string combo editor
+ stringComboEditor = new StringCombo(stackLayoutComposite, style);
+ stringComboEditor.setLayoutData(getDefaultLayoutData());
+
+ // Create the composite which contains the lower and the upper value specification editors
+ doubleEditorsComposite = new Composite(stackLayoutComposite, style);
+ final GridLayout layout = new GridLayout(2, true);
+ // Manage the height and the width (for a better visualization)
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ doubleEditorsComposite.setLayout(layout);
+ doubleEditorsComposite.setLayoutData(getDefaultLayoutData());
+
+ // Create the lower ValueSpecification editor
+ lowerValueEditor = createLowerValueSpecificationEditor(doubleEditorsComposite, style);
+ lowerValueEditor.setLayoutData(getDefaultLayoutData());
+
+ // Create the upper ValueSpecification editor
+ upperValueEditor = createUpperValueSpecificationEditor(doubleEditorsComposite, style);
+ upperValueEditor.setLayoutData(getDefaultLayoutData());
+
+ // Add a property change listener on the preference
+ this.preferenceStore = preferenceStore;
+ if (null != preferenceStore) {
+ this.preferenceStore.addPropertyChangeListener(new IPropertyChangeListener() {
+
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ displayTopControl();
+ }
+ });
+ }
+
+ displayTopControl();
+
+ createButtons();
+ updateControls();
+ }
+
+ /**
+ * This allow to create the lower ValueSpecification editor.
+ *
+ * @param parent
+ * The parent composite
+ * @param style
+ * The style.
+ * @return The create lower ValueSpecification editor.
+ */
+ protected AbstractReferenceDialog createLowerValueSpecificationEditor(final Composite parent, final int style) {
+ return createValueSpecificationEditor(parent, style);
+ }
+
+ /**
+ * This allow to create the upper ValueSpecification editor.
+ *
+ * @param parent
+ * The parent composite
+ * @param style
+ * The style.
+ * @return The create upper ValueSpecification editor.
+ */
+ protected AbstractReferenceDialog createUpperValueSpecificationEditor(final Composite parent, final int style) {
+ return createValueSpecificationEditor(parent, style);
+ }
+
+ /**
+ * This allow to create the ValueSpecification editor.
+ *
+ * @param parent
+ * The parent composite
+ * @param style
+ * The style.
+ * @return The create ValueSpecification editor.
+ */
+ protected AbstractReferenceDialog createValueSpecificationEditor(final Composite parent, final int style) {
+ return new ReferenceDialog(parent, style);
+ }
+
+ /**
+ * This allow to create the buttons.
+ */
+ protected void createButtons() {
+ ((GridLayout) getLayout()).numColumns++;
+
+ switchEditorsButton = factory.createButton(this, null, SWT.PUSH);
+ switchEditorsButton.setImage(Activator.getDefault().getImage("/icons/Switch_12x12.gif")); //$NON-NLS-1$
+ switchEditorsButton.setToolTipText(Messages.MultiplicityReferenceDialog_SwitchEditors);
+ switchEditorsButton.addSelectionListener(this);
+ }
+
+ /**
+ * This allow to manage the stack layout top control displayed.
+ */
+ protected void displayTopControl() {
+ final String multiplicityEditorMode = preferenceStore.getString(MultiplicityConstants.MULTIPLICITY_EDITOR_MODE);
+ if (null != preferenceStore && null != multiplicityEditorMode) {
+ // If the advanced mode is used, display the double editors composite, else use the simple mode with the string combo
+ stackLayout.topControl = multiplicityEditorMode.equals(MultiplicityConstants.ADVANCED_MODE) ? doubleEditorsComposite : stringComboEditor;
+ } else {
+ if (null == stackLayout.topControl) {
+ stackLayout.topControl = stringComboEditor;
+ }
+ }
+
+ if (!stackLayoutComposite.isDisposed()) {
+ stackLayoutComposite.layout();
+ }
+ setReadOnly(readOnly);
+ updateLabels();
+ }
+
+ /**
+ * This allow to define the switch action for the switch buttons.
+ */
+ protected void switchAction() {
+ if (null != preferenceStore) {
+ if (stackLayout.topControl.equals(stringComboEditor)) {
+ preferenceStore.setValue(MultiplicityConstants.MULTIPLICITY_EDITOR_MODE, MultiplicityConstants.ADVANCED_MODE);
+ } else {
+ preferenceStore.setValue(MultiplicityConstants.MULTIPLICITY_EDITOR_MODE, MultiplicityConstants.SIMPLE_MODE);
+ }
+ } else {
+ stackLayout.topControl = stackLayout.topControl.equals(stringComboEditor) ? doubleEditorsComposite : stringComboEditor;
+ }
+ // Refresh the read only value (because the lower and upper values must be different and multiplicity may not be update by simple editor)
+ displayTopControl();
+ }
+
+ /**
+ * Updates the displayed label for the current value
+ */
+ protected void updateLabels() {
+ lowerValueEditor.updateLabel();
+ upperValueEditor.updateLabel();
+ }
+
+ /**
+ * This allow to update the controls.
+ */
+ protected void updateControls() {
+ if (stackLayout.topControl.equals(stringComboEditor)) {
+ if (!stringComboEditor.isDisposed()) {
+ stringComboEditor.updateControls();
+ }
+ } else {
+ if (!lowerValueEditor.isDisposed()) {
+ lowerValueEditor.updateControls();
+ }
+
+ if (!upperValueEditor.isDisposed()) {
+ upperValueEditor.updateControls();
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.swt.widgets.Control#update()
+ */
+ @Override
+ public void update() {
+ super.update();
+ if (stackLayout.topControl.equals(stringComboEditor)) {
+ if (!stringComboEditor.isDisposed()) {
+ stringComboEditor.update();
+ }
+ } else {
+ if (!lowerValueEditor.isDisposed()) {
+ lowerValueEditor.update();
+ }
+
+ if (!upperValueEditor.isDisposed()) {
+ upperValueEditor.update();
+ }
+ }
+ updateControls();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractListEditor#doBinding()
+ */
+ @Override
+ protected void doBinding() {
+ super.doBinding();
+ if (null != stringComboEditor) {
+ stringComboEditor.doBinding();
+ }
+ if (null != lowerValueEditor) {
+ lowerValueEditor.doBinding();
+ }
+ if (null != upperValueEditor) {
+ upperValueEditor.doBinding();
+ }
+ modelProperty.addChangeListener(this);
+ }
+
+ /**
+ * Sets the content providers.
+ *
+ * @param providers
+ * The content providers for each editor.
+ */
+ public void setContentProviders(final List<IStaticContentProvider> providers) {
+ stringComboEditor.setContentProvider(getObjectFromList(providers, MULTIPLICITY_STRING_COMBO_INDEX));
+ lowerValueEditor.setContentProvider(getObjectFromList(providers, MULTIPLICITY_LOWER_VALUE_INDEX));
+ upperValueEditor.setContentProvider(getObjectFromList(providers, MULTIPLICITY_UPPER_VALUE_INDEX));
+ }
+
+ /**
+ * Sets the label providers.
+ *
+ * @param providers
+ * The label providers for each editor.
+ */
+ public void setLabelProviders(final List<ILabelProvider> providers) {
+ stringComboEditor.setLabelProvider(getObjectFromList(providers, MULTIPLICITY_STRING_COMBO_INDEX));
+ lowerValueEditor.setLabelProvider(getObjectFromList(providers, MULTIPLICITY_LOWER_VALUE_INDEX));
+ upperValueEditor.setLabelProvider(getObjectFromList(providers, MULTIPLICITY_UPPER_VALUE_INDEX));
+
+ updateControls();
+ updateLabels();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractEditor#getEditableType()
+ */
+ @Override
+ public Object getEditableType() {
+ return Object.class;
+ }
+
+ /**
+ * This allow to define if the string combo can be edited.
+ *
+ * @return <code>true</code> if the string combo can be edited, <code>false</code> otherwise.
+ */
+ protected boolean canEditStringCombo() {
+ return true;
+ }
+
+ /**
+ * This allow to define if the lower value can be edited.
+ *
+ * @return <code>true</code> if the lower value can be edited, <code>false</code> otherwise.
+ */
+ protected boolean canEditLowerValue() {
+ return true;
+ }
+
+ /**
+ * This allow to define if the upper value can be edited.
+ *
+ * @return <code>true</code> if the upper value can be edited, <code>false</code> otherwise.
+ */
+ protected boolean canEditUpperValue() {
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractListEditor#setModelObservable(org.eclipse.core.databinding.observable.list.IObservableList)
+ */
+ @Override
+ public void setModelObservable(final IObservableValue modelProperty) {
+ setWidgetObservable(modelProperty);
+ setEditorsModelObservable(modelProperty);
+ super.setModelObservable(modelProperty);
+
+ updateControls();
+ updateLabels();
+ }
+
+ /**
+ * Sets the model properties for the editors.
+ *
+ * @param modelProperty
+ * The observable value.
+ */
+ protected void setEditorsModelObservable(final IObservableValue modelProperty) {
+ if (null != modelProperty && modelProperty.getValue() instanceof List<?>) {
+ final Object stringComboObservableValue = getObjectFromList((List<?>) modelProperty.getValue(), MULTIPLICITY_STRING_COMBO_INDEX);
+ if (stringComboObservableValue instanceof IObservableValue) {
+ stringComboEditor.setModelObservable((IObservableValue) stringComboObservableValue);
+ }
+ final Object lowerValueObservableValue = getObjectFromList((List<?>) modelProperty.getValue(), MULTIPLICITY_LOWER_VALUE_INDEX);
+ if (lowerValueObservableValue instanceof IObservableValue) {
+ lowerValueEditor.setModelObservable((IObservableValue) lowerValueObservableValue);
+ }
+ final Object upperValueObservableValue = getObjectFromList((List<?>) modelProperty.getValue(), MULTIPLICITY_UPPER_VALUE_INDEX);
+ if (upperValueObservableValue instanceof IObservableValue) {
+ upperValueEditor.setModelObservable((IObservableValue) upperValueObservableValue);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.swt.widgets.Control#setToolTipText(java.lang.String)
+ */
+ @Override
+ public void setToolTipText(String text) {
+ stringComboEditor.setToolTipText(text);
+ lowerValueEditor.setToolTipText(Messages.MultiplicityReferenceDialog_LowerValueToolTip);
+ upperValueEditor.setToolTipText(Messages.MultiplicityReferenceDialog_UpperValueToolTip);
+ }
+
+ /**
+ * Sets the value factories.
+ *
+ * @param factories
+ * The Reference Value factories.
+ */
+ public void setValueFactories(final List<ReferenceValueFactory> factories) {
+ lowerValueEditor.setValueFactory(getObjectFromList(factories, MULTIPLICITY_LOWER_VALUE_INDEX));
+ upperValueEditor.setValueFactory(getObjectFromList(factories, MULTIPLICITY_UPPER_VALUE_INDEX));
+ updateControls();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractEditor#setReadOnly(boolean)
+ */
+ @Override
+ public void setReadOnly(final boolean readOnly) {
+ this.readOnly = readOnly;
+ if (stackLayout.topControl.equals(stringComboEditor)) {
+ if (!stringComboEditor.isDisposed()) {
+ stringComboEditor.setReadOnly(readOnly || !canEditStringCombo());
+ }
+ } else {
+ if (!lowerValueEditor.isDisposed()) {
+ lowerValueEditor.setReadOnly(readOnly || !canEditLowerValue());
+ }
+ if (!upperValueEditor.isDisposed()) {
+ upperValueEditor.setReadOnly(readOnly || !canEditUpperValue());
+ }
+ }
+ updateControls();
+ }
+
+ /**
+ * This allow to set the direct creation of the lower and the upper value editors.
+ *
+ * @param directCreation
+ * The direct creation value.
+ */
+ public void setDirectCreation(final boolean directCreation) {
+ lowerValueEditor.setDirectCreation(directCreation);
+ upperValueEditor.setDirectCreation(directCreation);
+ updateControls();
+ }
+
+ /**
+ * This allow to set the mandatory of the lower and the upper value editors.
+ *
+ * @param mandatory
+ * The mandatory value.
+ */
+ public void setMandatory(final boolean mandatory) {
+ lowerValueEditor.setMandatory(mandatory);
+ upperValueEditor.setMandatory(mandatory);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractEditor#isReadOnly()
+ */
+ @Override
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(final SelectionEvent e) {
+ Widget widget = e.widget;
+ if (widget == switchEditorsButton) {
+ switchAction();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetDefaultSelected(final SelectionEvent e) {
+ // Nothing
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.swt.widgets.Widget#dispose()
+ */
+ @Override
+ public void dispose() {
+ if (null != stringComboEditor) {
+ stringComboEditor.dispose();
+ }
+ if (null != lowerValueEditor) {
+ lowerValueEditor.dispose();
+ }
+ if (null != upperValueEditor) {
+ upperValueEditor.dispose();
+ }
+ super.dispose();
+ }
+
+ /**
+ * Get the object index from the list of objects.
+ *
+ * @param listObjects
+ * The list of objects.
+ * @param index
+ * The index object to get.
+ * @return The object at the index position or <code>null</code>.
+ */
+ protected <T> T getObjectFromList(final List<T> listObjects, final int index) {
+ T object = null;
+ if (null != listObjects && !listObjects.isEmpty()) {
+ if (listObjects.size() > index) {
+ object = listObjects.get(index);
+ }
+ }
+ return object;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.widgets.editors.AbstractValueEditor#getValue()
+ *
+ * @return
+ */
+ @Override
+ public Object getValue() {
+ return modelProperty.getValue();
+ }
+
+ /**
+ * Redefine this method to re-affect the correct observable value to each editors.
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.core.databinding.observable.IChangeListener#handleChange(org.eclipse.core.databinding.observable.ChangeEvent)
+ */
+ @Override
+ public void handleChange(ChangeEvent event) {
+ // Manage the modification of observable values by runnable to not freeze the UI modification
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ setEditorsModelObservable(modelProperty);
+ }
+ });
+ }
+}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/ReferenceDialog.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/ReferenceDialog.java
index b81c528e081..5cee8a0585e 100644
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/ReferenceDialog.java
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/ReferenceDialog.java
@@ -35,6 +35,7 @@ import org.eclipse.papyrus.infra.widgets.Activator;
import org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory;
import org.eclipse.papyrus.infra.widgets.databinding.CLabelObservableValue;
import org.eclipse.papyrus.infra.widgets.databinding.ReferenceDialogObservableValue;
+import org.eclipse.papyrus.infra.widgets.databinding.StyledTextReferenceDialogObservableValue;
import org.eclipse.papyrus.infra.widgets.messages.Messages;
import org.eclipse.papyrus.infra.widgets.providers.EncapsulatedContentProvider;
import org.eclipse.papyrus.infra.widgets.providers.IAdaptableContentProvider;
@@ -61,7 +62,7 @@ import org.eclipse.swt.widgets.Widget;
* @author Camille Letavernier
*
*/
-public class ReferenceDialog extends AbstractValueEditor implements SelectionListener {
+public class ReferenceDialog extends AbstractReferenceDialog implements SelectionListener {
/**
* The CLabel displaying the current value
@@ -306,8 +307,10 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
binding.updateModelToTarget();
} else {
- currentValueLabel.setImage(labelProvider.getImage(getValue()));
- currentValueLabel.setText(labelProvider.getText(getValue()));
+ if (null != labelProvider) {
+ currentValueLabel.setImage(labelProvider.getImage(getValue()));
+ currentValueLabel.setText(labelProvider.getText(getValue()));
+ }
}
}
@@ -318,6 +321,7 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
* The content provider used to retrieve the possible values for
* this Reference
*/
+ @Override
public void setContentProvider(IStaticContentProvider provider) {
dialog.setContentProvider(new EncapsulatedContentProvider(provider));
if (getValue() != null) {
@@ -335,6 +339,7 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
* @param provider
* The label provider
*/
+ @Override
public void setLabelProvider(ILabelProvider provider) {
if (provider == null) {
setLabelProvider(new LabelProvider());
@@ -408,17 +413,29 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
@Override
public void setModelObservable(IObservableValue modelProperty) {
- setWidgetObservable(new ReferenceDialogObservableValue(this, this.currentValueLabel, modelProperty, labelProvider));
+ setWidgetObservable(createWidgetObservable(modelProperty));
super.setModelObservable(modelProperty);
updateControls();
}
+ /**
+ * This allow to create the widget observable value.
+ *
+ * @param modelProperty
+ * The current observable value.
+ * @return The created {@link StyledTextReferenceDialogObservableValue}.
+ */
+ protected IObservableValue createWidgetObservable(final IObservableValue modelProperty) {
+ return new ReferenceDialogObservableValue(this, this.currentValueLabel, modelProperty, labelProvider);
+ }
+
@Override
public void setToolTipText(String text) {
super.setLabelToolTipText(text);
currentValueLabel.setToolTipText(text);
}
+ @Override
public void setValueFactory(ReferenceValueFactory factory) {
valueFactory = factory;
updateControls();
@@ -446,6 +463,7 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
/**
* Updates the buttons' status
*/
+ @Override
protected void updateControls() {
// Check if the edit & create buttons should be displayed
boolean exclude = valueFactory == null || !valueFactory.canCreateObject();
@@ -478,6 +496,7 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
updateControls();
}
+ @Override
public void setDirectCreation(boolean directCreation) {
this.directCreation = directCreation;
updateControls();
@@ -508,6 +527,7 @@ public class ReferenceDialog extends AbstractValueEditor implements SelectionLis
this.dialog.setInput(input);
}
+ @Override
public void setMandatory(boolean mandatory) {
this.mandatory = mandatory;
}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextReferenceDialog.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextReferenceDialog.java
index 2811f2d1e55..f4375f11024 100644
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextReferenceDialog.java
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextReferenceDialog.java
@@ -39,6 +39,7 @@ import org.eclipse.papyrus.infra.widgets.messages.Messages;
import org.eclipse.papyrus.infra.widgets.providers.EncapsulatedContentProvider;
import org.eclipse.papyrus.infra.widgets.providers.IAdaptableContentProvider;
import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+import org.eclipse.papyrus.infra.widgets.validator.AbstractValidator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
@@ -62,7 +63,7 @@ import org.eclipse.swt.widgets.Widget;
* Duplicated code from {@link ReferenceDialog}, replacing CLabel by {@link StyledTextStringEditor}
*
*/
-public class StyledTextReferenceDialog extends AbstractValueEditor implements SelectionListener {
+public class StyledTextReferenceDialog extends AbstractReferenceDialog implements SelectionListener {
/**
* The styled text displaying the current value
@@ -167,7 +168,22 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* The style of the styled text.
*/
public StyledTextReferenceDialog(final Composite parent, final int style) {
+ this(parent, style, null);
+ }
+
+ /**
+ * Constructs a new ReferenceDialog in the given parent Composite. The style will be applied to the styled text displaying the current value. This constructor manage the value validator.
+ *
+ * @param parent
+ * The parent composite.
+ * @param style
+ * The style of the styled text.
+ * @param targetValidator
+ * The validator used for the styled text.
+ */
+ public StyledTextReferenceDialog(final Composite parent, final int style, final AbstractValidator targetValidator) {
super(parent, style);
+ this.targetValidator = targetValidator;
GridData gridData = getDefaultLayoutData();
styledTextStringEditor = createStyledTextStringEditor(this, null, factory.getBorderStyle() | style);
@@ -215,7 +231,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* @return The created {@link StyledTextStringEditor}.
*/
protected StyledTextStringEditor createStyledTextStringEditor(final Composite parent, final String initialValue, final int style) {
- StyledTextStringEditor editor = new StyledTextStringEditor(parent, style);
+ StyledTextStringEditor editor = new StyledTextStringEditor(parent, style, targetValidator);
editor.setValue(initialValue);
return editor;
}
@@ -356,7 +372,9 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
binding.updateModelToTarget();
} else {
- styledTextStringEditor.setValue(labelProvider.getText(getValue()));
+ if (null != labelProvider) {
+ styledTextStringEditor.setValue(labelProvider.getText(getValue()));
+ }
}
}
@@ -367,6 +385,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* The content provider used to retrieve the possible values for
* this Reference
*/
+ @Override
public void setContentProvider(final IStaticContentProvider provider) {
dialog.setContentProvider(new EncapsulatedContentProvider(provider));
if (getValue() != null) {
@@ -384,6 +403,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* @param provider
* The label provider
*/
+ @Override
public void setLabelProvider(final ILabelProvider provider) {
if (provider == null) {
setLabelProvider(new LabelProvider());
@@ -451,14 +471,6 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
}
/**
- * {@inheritDoc}
- */
- @Override
- protected void doBinding() {
- super.doBinding();
- }
-
- /**
* Set the initial selection.
*
* @param initialValues
@@ -510,6 +522,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* @param factory
* The reference value factory.
*/
+ @Override
public void setValueFactory(final ReferenceValueFactory factory) {
valueFactory = factory;
updateControls();
@@ -547,6 +560,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
/**
* Updates the buttons' status
*/
+ @Override
protected void updateControls() {
// Check if the edit & create buttons should be displayed
boolean exclude = valueFactory == null || !valueFactory.canCreateObject();
@@ -590,6 +604,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* @param directCreation
* Boolean to determinate the direct creation value.
*/
+ @Override
public void setDirectCreation(final boolean directCreation) {
this.directCreation = directCreation;
updateControls();
@@ -633,6 +648,7 @@ public class StyledTextReferenceDialog extends AbstractValueEditor implements Se
* @param mandatory
* The mandatory boolean value.
*/
+ @Override
public void setMandatory(final boolean mandatory) {
this.mandatory = mandatory;
}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextStringEditor.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextStringEditor.java
index 6f82b025613..ae1075cfe50 100644
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextStringEditor.java
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/StyledTextStringEditor.java
@@ -24,6 +24,7 @@ import org.eclipse.jface.fieldassist.FieldDecoration;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.papyrus.infra.widgets.databinding.StyledTextObservableValue;
import org.eclipse.papyrus.infra.widgets.selectors.StringSelector;
+import org.eclipse.papyrus.infra.widgets.validator.AbstractValidator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.KeyEvent;
@@ -68,7 +69,6 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
/**
- *
* Constructor.
*
* @param parent
@@ -78,11 +78,23 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
*/
public StyledTextStringEditor(Composite parent, int style) {
this(parent, style, null, DEFAULT_HEIGHT_HINT, DEFAULT_WIDTH_HINT);
-
}
/**
+ * Constructor.
*
+ * @param parent
+ * The composite in which this editor should be displayed
+ * @param style
+ * The style for this editor's text box
+ * @param targetValidator
+ * The validator used for the styled text.
+ */
+ public StyledTextStringEditor(final Composite parent, final int style, final AbstractValidator targetValidator) {
+ this(parent, style, null, DEFAULT_HEIGHT_HINT, DEFAULT_WIDTH_HINT, targetValidator);
+ }
+
+ /**
* Constructor.
*
* @param parent
@@ -97,7 +109,22 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
}
/**
+ * Constructor.
*
+ * @param parent
+ * The composite in which this editor should be displayed
+ * @param style
+ * The style for this editor's text box
+ * @param label
+ * The label for this editor
+ * @param targetValidator
+ * The validator used for the styled text.
+ */
+ public StyledTextStringEditor(final Composite parent, final int style, final String label, final AbstractValidator targetValidator) {
+ this(parent, style, label, DEFAULT_HEIGHT_HINT, DEFAULT_WIDTH_HINT, targetValidator);
+ }
+
+ /**
* Constructor.
*
* @param parent
@@ -114,7 +141,6 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
}
/**
- *
* Constructor.
*
* @param parent
@@ -129,20 +155,43 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
* Width hint of the text area in multiline mode
*/
public StyledTextStringEditor(Composite parent, int style, String label, int heighHint, int widthHint) {
+ this(parent, style, label, heighHint, widthHint, null);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param parent
+ * The composite in which this editor should be displayed
+ * @param style
+ * The style for this editor's text box
+ * @param label
+ * The label for this editor
+ * @param heighHint
+ * Height hint of the text area in multiline mode
+ * @param widthHint
+ * Width hint of the text area in multiline mode
+ * @param targetValidator
+ * The validator used for the styled text.
+ */
+ public StyledTextStringEditor(final Composite parent, final int style, final String label, final int heighHint, final int widthHint, final AbstractValidator targetValidator) {
super(parent, label);
+ this.targetValidator = targetValidator;
+
GridData data = getDefaultLayoutData();
data.grabExcessVerticalSpace = true;
data.grabExcessHorizontalSpace = true;
data.verticalAlignment = SWT.FILL;
data.horizontalAlignment = SWT.FILL;
+ int styledTextStyle = style;
if ((style & SWT.MULTI) != 0) {
data.minimumHeight = heighHint;
data.minimumWidth = widthHint;
- style = style | SWT.V_SCROLL;
+ styledTextStyle = style | SWT.V_SCROLL;
}
- text = createStyledText(this, null, style);
+ text = createStyledText(this, null, styledTextStyle);
text.setLayoutData(data);
if (label != null) {
@@ -164,7 +213,6 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
layout.marginWidth = 0;
pack();
-
}
@@ -279,7 +327,7 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
commit();
changeColorField();
}
-
+
@Override
public void setToolTipText(String tooltip) {
text.setToolTipText(tooltip);
@@ -295,7 +343,7 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
if (value instanceof String) {
this.text.setText((String) value);
} else {
- this.text.setText(""); //$NON-NLS-1$;
+ this.text.setText(""); //$NON-NLS-1$
}
}
@@ -378,11 +426,11 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
timer.schedule(currentValidateTask, delay);
}
if (targetValidator != null) {
- IStatus status = targetValidator.validate(text.getText());
+ IStatus status = targetValidator.validate(getTextToValidate());
updateStatus(status);
}
if (modelValidator != null) {
- IStatus status = modelValidator.validate(text.getText());
+ IStatus status = modelValidator.validate(getTextToValidate());
updateStatus(status);
if (binding == null) {
update();
@@ -406,6 +454,15 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
}
}
+ /**
+ * Gets the string to validate.
+ *
+ * @return The string text to validate.
+ */
+ protected String getTextToValidate() {
+ return text.getText();
+ }
+
@Override
public void dispose() {
cancelCurrentTask();
@@ -423,29 +480,30 @@ public class StyledTextStringEditor extends AbstractValueEditor implements KeyLi
@Override
public void updateStatus(IStatus status) {
- switch (status.getSeverity()) {
- case IStatus.OK:
- controlDecoration.hide();
- break;
- case IStatus.WARNING:
- FieldDecoration warning = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_WARNING);
- controlDecoration.setImage(warning.getImage());
- controlDecoration.showHoverText(status.getMessage());
- controlDecoration.setDescriptionText(status.getMessage());
- controlDecoration.show();
- break;
- case IStatus.ERROR:
- FieldDecoration error = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
- controlDecoration.setImage(error.getImage());
- controlDecoration.showHoverText(status.getMessage());
- controlDecoration.setDescriptionText(status.getMessage());
- controlDecoration.show();
- break;
- default:
- controlDecoration.hide();
- break;
+ if(!isDisposed()){
+ switch (status.getSeverity()) {
+ case IStatus.OK:
+ controlDecoration.hide();
+ break;
+ case IStatus.WARNING:
+ FieldDecoration warning = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_WARNING);
+ controlDecoration.setImage(warning.getImage());
+ controlDecoration.showHoverText(status.getMessage());
+ controlDecoration.setDescriptionText(status.getMessage());
+ controlDecoration.show();
+ break;
+ case IStatus.ERROR:
+ FieldDecoration error = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
+ controlDecoration.setImage(error.getImage());
+ controlDecoration.showHoverText(status.getMessage());
+ controlDecoration.setDescriptionText(status.getMessage());
+ controlDecoration.show();
+ break;
+ default:
+ controlDecoration.hide();
+ break;
+ }
}
-
}
@Override
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/Messages.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/Messages.java
index 510d05e4497..9cc4b1d79c0 100644
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/Messages.java
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/Messages.java
@@ -1,132 +1,141 @@
-/*****************************************************************************
- * Copyright (c) 2010, 2014 CEA LIST and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
- * Christian W. Damus (CEA) - bug 402525
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.widgets.messages;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * The Class Messages.
- */
-public class Messages extends NLS {
-
- /** The Constant BUNDLE_NAME. */
- private static final String BUNDLE_NAME = "org.eclipse.papyrus.infra.widgets.messages.messages"; //$NON-NLS-1$
-
- public static String BooleanInputValidator_NotABoolean;
-
- public static String IntegerInputValidator_NotAnIntegerMessage;
-
- public static String RealInputValidator_NotaRealMessage;
-
- public static String UnlimitedNaturalInputValidator_NotAnUnlimitedNaturalMessage;
-
- public static String MultipleStringFileEditor_0;
-
- public static String MultipleStringFileEditor_1;
-
- public static String MultipleStringFileEditor_2;
-
- public static String MultipleValueEditAndSelectionWidget_EditSelectedElement;
-
- /** The Multiple value editor_ add elements. */
- public static String MultipleValueEditor_AddElements;
-
- public static String MultipleValueEditor_addOperation;
-
- public static String MultipleValueEditor_editOperation;
-
- /** The Multiple value editor_ edit selected value */
- public static String MultipleValueEditor_EditSelectedValue;
-
- /** The Multiple value editor_ move selected elements down. */
- public static String MultipleValueEditor_MoveSelectedElementsDown;
-
- /** The Multiple value editor_ move selected elements up. */
- public static String MultipleValueEditor_MoveSelectedElementsUp;
-
- /** The Multiple value editor_ remove selected elements. */
- public static String MultipleValueEditor_RemoveSelectedElements;
-
- /** The Multiple value selector dialog_ add all elements. */
- public static String MultipleValueSelectorDialog_AddAllElements;
-
- /** The Multiple value selector dialog_ add selected elements. */
- public static String MultipleValueSelectorDialog_AddSelectedElements;
-
- /** The Multiple value selector dialog_ create new element */
- public static String MultipleValueSelectorDialog_CreateNewElement;
-
- /** The Multiple value selector dialog_ delete new element */
- public static String MultipleValueSelectorDialog_DeleteNewElement;
-
- /** The Multiple value selector dialog_ remove all elements. */
- public static String MultipleValueSelectorDialog_RemoveAllElements;
-
- public static String ReferenceDialog_0;
-
- public static String ReferenceDialog_1;
-
- public static String ReferenceDialog_CreateANewObject;
-
- public static String ReferenceDialog_editOperation;
-
- public static String ReferenceDialog_EditTheCurrentValue;
-
- /** The Reference dialog_ edit value */
- public static String ReferenceDialog_EditValue;
-
- /** The Reference dialog_ select value */
- public static String ReferenceDialog_SelectValue;
-
- public static String ReferenceDialog_setOperation;
-
- /** The Reference dialog_ unset */
- public static String ReferenceDialog_Unset;
-
- /** The Reference dialog_ edit unset value */
- public static String ReferenceDialog_UnsetValue;
-
- /** Indicates that a list of elements have different values for the given property (Multi-selection) */
- public static String ReferenceDialogObservable_Unchanged;
-
- /** the Enum radio_ no value */
- public static String EnumRadio_NoValue;
-
- public static String FlattenableRestrictedFilteredContentProvider_AllPossibleContentsMessage;
-
- public static String FlattenableRestrictedFilteredContentProvider_FlatViewMessage;
-
- public static String IntegerMask_ErrorTooManyValues;
-
- public static String ProviderBasedBrowseStrategy_0;
-
- public static String StringEditionFactory_EnterANewValue;
-
- public static String StringFileSelector_0;
-
- public static String StringFileSelector_Browse;
-
- public static String StringFileSelector_BrowseWorkspace;
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- /**
- * Instantiates a new messages.
- */
- private Messages() {
- }
-}
+/*****************************************************************************
+ * Copyright (c) 2010, 2014 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ * Christian W. Damus (CEA) - bug 402525
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.widgets.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * The Class Messages.
+ */
+public class Messages extends NLS {
+
+ /** The Constant BUNDLE_NAME. */
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.infra.widgets.messages.messages"; //$NON-NLS-1$
+
+ public static String BooleanInputValidator_NotABoolean;
+
+ public static String IntegerInputValidator_NotAnIntegerMessage;
+
+ public static String RealInputValidator_NotaRealMessage;
+
+ public static String UnlimitedNaturalInputValidator_NotAnUnlimitedNaturalMessage;
+
+ public static String MultipleStringFileEditor_0;
+
+ public static String MultipleStringFileEditor_1;
+
+ public static String MultipleStringFileEditor_2;
+
+ public static String MultipleValueEditAndSelectionWidget_EditSelectedElement;
+
+ /** The Multiple value editor_ add elements. */
+ public static String MultipleValueEditor_AddElements;
+
+ public static String MultipleValueEditor_addOperation;
+
+ public static String MultipleValueEditor_editOperation;
+
+ /** The Multiple value editor_ edit selected value */
+ public static String MultipleValueEditor_EditSelectedValue;
+
+ /** The Multiple value editor_ move selected elements down. */
+ public static String MultipleValueEditor_MoveSelectedElementsDown;
+
+ /** The Multiple value editor_ move selected elements up. */
+ public static String MultipleValueEditor_MoveSelectedElementsUp;
+
+ /** The Multiple value editor_ remove selected elements. */
+ public static String MultipleValueEditor_RemoveSelectedElements;
+
+ /** The Multiple value selector dialog_ add all elements. */
+ public static String MultipleValueSelectorDialog_AddAllElements;
+
+ /** The Multiple value selector dialog_ add selected elements. */
+ public static String MultipleValueSelectorDialog_AddSelectedElements;
+
+ /** The Multiple value selector dialog_ create new element */
+ public static String MultipleValueSelectorDialog_CreateNewElement;
+
+ /** The Multiple value selector dialog_ delete new element */
+ public static String MultipleValueSelectorDialog_DeleteNewElement;
+
+ /** The Multiple value selector dialog_ remove all elements. */
+ public static String MultipleValueSelectorDialog_RemoveAllElements;
+
+ public static String ReferenceDialog_0;
+
+ public static String ReferenceDialog_1;
+
+ public static String ReferenceDialog_CreateANewObject;
+
+ public static String ReferenceDialog_editOperation;
+
+ public static String ReferenceDialog_EditTheCurrentValue;
+
+ /** The Reference dialog_ edit value */
+ public static String ReferenceDialog_EditValue;
+
+ /** The Reference dialog_ select value */
+ public static String ReferenceDialog_SelectValue;
+
+ public static String ReferenceDialog_setOperation;
+
+ /** The Reference dialog_ unset */
+ public static String ReferenceDialog_Unset;
+
+ /** The Reference dialog_ edit unset value */
+ public static String ReferenceDialog_UnsetValue;
+
+ /** Indicates that a list of elements have different values for the given property (Multi-selection) */
+ public static String ReferenceDialogObservable_Unchanged;
+
+ /** The switch editors label for Multiplicity reference dialog. */
+ public static String MultiplicityReferenceDialog_SwitchEditors;
+
+ /** The lower value tool tip for Multiplicity reference dialog. */
+ public static String MultiplicityReferenceDialog_LowerValueToolTip;
+
+ /** The upper value tool tip for Multiplicity reference dialog. */
+ public static String MultiplicityReferenceDialog_UpperValueToolTip;
+
+ /** the Enum radio_ no value */
+ public static String EnumRadio_NoValue;
+
+ public static String FlattenableRestrictedFilteredContentProvider_AllPossibleContentsMessage;
+
+ public static String FlattenableRestrictedFilteredContentProvider_FlatViewMessage;
+
+ public static String IntegerMask_ErrorTooManyValues;
+
+ public static String ProviderBasedBrowseStrategy_0;
+
+ public static String StringEditionFactory_EnterANewValue;
+
+ public static String StringFileSelector_0;
+
+ public static String StringFileSelector_Browse;
+
+ public static String StringFileSelector_BrowseWorkspace;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ /**
+ * Instantiates a new messages.
+ */
+ private Messages() {
+ }
+}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/messages.properties b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/messages.properties
index 8a3e48b30b3..2aa21d64ea1 100644
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/messages.properties
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/messages/messages.properties
@@ -1,54 +1,57 @@
-###############################################################################
-# Copyright (c) 2010, 2014 CEA LIST and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
-# Christian W. Damus (CEA) - bug 402525
-#
-###############################################################################
-
-BooleanInputValidator_NotABoolean=The actual entry is not a Boolean.
-IntegerInputValidator_NotAnIntegerMessage=The actual entry is not an Integer.
-RealInputValidator_NotaRealMessage=The actual entry is not a Real.
-UnlimitedNaturalInputValidator_NotAnUnlimitedNaturalMessage=The actual entry is not an UnlimitedNatural. An UnlimitedNatural must be either -1, * or >= 0
-MultipleStringFileEditor_0=Browse file system
-MultipleStringFileEditor_1=Browse workspace
-MultipleStringFileEditor_2=FilterExtensions and FilterNames do not match
-MultipleValueEditAndSelectionWidget_EditSelectedElement=Edit selected Element
-MultipleValueEditor_AddElements=Add elements
-MultipleValueEditor_addOperation=Add {0}
-MultipleValueEditor_editOperation=Edit {0}
-MultipleValueEditor_EditSelectedValue=Edit the selected value
-MultipleValueEditor_MoveSelectedElementsDown=Move selected elements down
-MultipleValueEditor_MoveSelectedElementsUp=Move selected elements up
-MultipleValueEditor_RemoveSelectedElements=Remove selected elements
-MultipleValueSelectorDialog_AddAllElements=Add all elements
-MultipleValueSelectorDialog_AddSelectedElements=Add selected elements
-MultipleValueSelectorDialog_RemoveAllElements=Remove all elements
-MultipleValueSelectorDialog_CreateNewElement=Create a new element
-MultipleValueSelectorDialog_DeleteNewElement=Deletes a newly created element
-ReferenceDialog_0=An error occured while setting the value.
-ReferenceDialog_1=An error occured while setting the value.
-ReferenceDialog_CreateANewObject=Create a new object
-ReferenceDialog_editOperation=Edit {0}
-ReferenceDialog_EditTheCurrentValue=Edit the current value
-ReferenceDialog_EditValue=Edit the reference value
-ReferenceDialog_SelectValue=Select the value for this reference
-ReferenceDialog_setOperation=Set {0}
-ReferenceDialog_Unset=<Undefined>
-ReferenceDialog_UnsetValue=Unset the reference value
-ReferenceDialogObservable_Unchanged=<Unchanged>
-EnumRadio_NoValue=There is no value to select
-FlattenableRestrictedFilteredContentProvider_AllPossibleContentsMessage=Show all possible values
-FlattenableRestrictedFilteredContentProvider_FlatViewMessage=Flat View
-StringEditionFactory_EnterANewValue=Enter the new value
-StringFileSelector_0=FilterExtensions and FilterNames do not match
-StringFileSelector_Browse=Browse
-StringFileSelector_BrowseWorkspace=Browse workspace
-IntegerMask_ErrorTooManyValues=The mask-based integer editor cannot be used with more than 32 values
-ProviderBasedBrowseStrategy_0=The provider has not been initialized
+###############################################################################
+# Copyright (c) 2010, 2014 CEA LIST and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+# Christian W. Damus (CEA) - bug 402525
+#
+###############################################################################
+
+BooleanInputValidator_NotABoolean=The actual entry is not a Boolean.
+IntegerInputValidator_NotAnIntegerMessage=The actual entry is not an Integer.
+RealInputValidator_NotaRealMessage=The actual entry is not a Real.
+UnlimitedNaturalInputValidator_NotAnUnlimitedNaturalMessage=The actual entry is not an UnlimitedNatural. An UnlimitedNatural must be either -1, * or >= 0
+MultipleStringFileEditor_0=Browse file system
+MultipleStringFileEditor_1=Browse workspace
+MultipleStringFileEditor_2=FilterExtensions and FilterNames do not match
+MultipleValueEditAndSelectionWidget_EditSelectedElement=Edit selected Element
+MultipleValueEditor_AddElements=Add elements
+MultipleValueEditor_addOperation=Add {0}
+MultipleValueEditor_editOperation=Edit {0}
+MultipleValueEditor_EditSelectedValue=Edit the selected value
+MultipleValueEditor_MoveSelectedElementsDown=Move selected elements down
+MultipleValueEditor_MoveSelectedElementsUp=Move selected elements up
+MultipleValueEditor_RemoveSelectedElements=Remove selected elements
+MultipleValueSelectorDialog_AddAllElements=Add all elements
+MultipleValueSelectorDialog_AddSelectedElements=Add selected elements
+MultipleValueSelectorDialog_RemoveAllElements=Remove all elements
+MultipleValueSelectorDialog_CreateNewElement=Create a new element
+MultipleValueSelectorDialog_DeleteNewElement=Deletes a newly created element
+ReferenceDialog_0=An error occured while setting the value.
+ReferenceDialog_1=An error occured while setting the value.
+ReferenceDialog_CreateANewObject=Create a new object
+ReferenceDialog_editOperation=Edit {0}
+ReferenceDialog_EditTheCurrentValue=Edit the current value
+ReferenceDialog_EditValue=Edit the reference value
+ReferenceDialog_SelectValue=Select the value for this reference
+ReferenceDialog_setOperation=Set {0}
+ReferenceDialog_Unset=<Undefined>
+ReferenceDialog_UnsetValue=Unset the reference value
+ReferenceDialogObservable_Unchanged=<Unchanged>
+MultiplicityReferenceDialog_SwitchEditors=Switch editors
+MultiplicityReferenceDialog_LowerValueToolTip=Lower ValueSpecification
+MultiplicityReferenceDialog_UpperValueToolTip=Upper ValueSpecification
+EnumRadio_NoValue=There is no value to select
+FlattenableRestrictedFilteredContentProvider_AllPossibleContentsMessage=Show all possible values
+FlattenableRestrictedFilteredContentProvider_FlatViewMessage=Flat View
+StringEditionFactory_EnterANewValue=Enter the new value
+StringFileSelector_0=FilterExtensions and FilterNames do not match
+StringFileSelector_Browse=Browse
+StringFileSelector_BrowseWorkspace=Browse workspace
+IntegerMask_ErrorTooManyValues=The mask-based integer editor cannot be used with more than 32 values
+ProviderBasedBrowseStrategy_0=The provider has not been initialized
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/MultiplicityConstants.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/MultiplicityConstants.java
new file mode 100644
index 00000000000..69b6372375d
--- /dev/null
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/MultiplicityConstants.java
@@ -0,0 +1,45 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.widgets.util;
+
+/**
+ * The multiplicity constants.
+ */
+public interface MultiplicityConstants {
+
+ /**
+ * The multiplicity editor preference identifier.
+ */
+ public static final String MULTIPLICITY_EDITOR_MODE = "multiplicityEditorMode"; //$NON-NLS-1$
+
+ /**
+ * The simple mode preference identifier.
+ */
+ public static final String SIMPLE_MODE = "simpleMode"; //$NON-NLS-1$
+
+ /**
+ * The simple mode text value display.
+ */
+ public static final String SIMPLE_MODE_TEXT_VALUE = "Simple mode"; //$NON-NLS-1$
+
+ /**
+ * The advanced mode preference identifier.
+ */
+ public static final String ADVANCED_MODE = "advanceMode"; //$NON-NLS-1$
+
+ /**
+ * The advanced mode text value display.
+ */
+ public static final String ADVANCED_MODE_TEXT_VALUE = "Advanced mode"; //$NON-NLS-1$
+
+}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLModelWizard.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLModelWizard.java
index e1e62c61860..23887ef0489 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLModelWizard.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLModelWizard.java
@@ -1,5 +1,5 @@
/*****************************************************************************
-on * Copyright (c) 2010, 2013 CEA LIST.
+ * Copyright (c) 2010, 2013 CEA LIST.
*
*
* All rights reserved. This program and the accompanying materials
@@ -51,8 +51,8 @@ public class NewSysMLModelWizard extends CreateModelWizard {
* {@inheritDoc}
*/
@Override
- protected String[] getDiagramCategoryIds() {
- return new String[] { CreateSysMLModelCommand.COMMAND_ID };
+ protected String[] getDiagramCategoryIds() {
+ return new String[]{ CreateSysMLModelCommand.COMMAND_ID };
}
/**
@@ -72,4 +72,9 @@ public class NewSysMLModelWizard extends CreateModelWizard {
// here SysML is the only available category
}
+ @Override
+ public boolean isPapyrusRootWizard() {
+ return false;
+ }
+
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLProjectWizard.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLProjectWizard.java
index 3994ea393e9..89f70367d29 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLProjectWizard.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.ui/src/org/eclipse/papyrus/sysml/diagram/ui/NewSysMLProjectWizard.java
@@ -68,8 +68,13 @@ public class NewSysMLProjectWizard extends NewPapyrusProjectWizard {
* {@inheritDoc}
*/
@Override
- protected String[] getDiagramCategoryIds() {
- return new String[] { CreateSysMLModelCommand.COMMAND_ID };
+ protected String[] getDiagramCategoryIds() {
+ return new String[]{ CreateSysMLModelCommand.COMMAND_ID };
+ }
+
+ @Override
+ public boolean isPapyrusRootWizard() {
+ return false;
}
}
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/BDDconfig.xmi b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/BDDconfig.xmi
index b5e243cb09e..13dc72d75c9 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/BDDconfig.xmi
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/BDDconfig.xmi
@@ -15,8 +15,8 @@
editPartQualifiedName="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ClassEditPart"
name="Block based on Class representation of class diagram"
viewFactory="org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory.BlockClassifierViewFactory"
- inducedRepresentations="_rC19oNnoEeSqwOe5_frWm6 //@libraries.1/@representations.4 _rC19oNnoEeSqwOe5_frWm7"
- subRepresentations="//@libraries.0/@representations.2"
+ inducedRepresentations="_rC19oNnoEeSqwOe5_frWm6 //@libraries.1/@representations.4 _rC19oNnoEeSqwOe5_frWm7 //@libraries.1/@representations.5 //@libraries.1/@representations.6"
+ subRepresentations="//@libraries.0/@representations.2 //@libraries.0/@representations.4 //@libraries.0/@representations.5 //@libraries.0/@representations.6"
reusedID="2008"/>
</usages>
<libraries
@@ -50,6 +50,45 @@
name="Constraint As Label"
viewFactory="org.eclipse.papyrus.gmf.diagram.common.factory.ShapeViewFactory"
graphicalElementType="org.eclipse.papyrus.sysML.Constraint_Label"/>
+ <representations
+ xsi:type="expansionmodel:Representation"
+ name="Class Port"
+ viewFactory="org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory.PortViewFactory"
+ graphicalElementType="org.eclipse.papyrus.sysML.Class_Port"
+ inducedRepresentations="//@libraries.1/@representations.3">
+ <kind
+ href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_EoAOIN0DEeSiOexlyH3Ifw"/>
+ </representations>
+ <representations
+ xsi:type="expansionmodel:Representation"
+ name="Class ProxyPort"
+ viewFactory="org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory.PortViewFactory"
+ graphicalElementType="org.eclipse.papyrus.sysML.Class_ProxyPort"
+ inducedRepresentations="//@libraries.1/@representations.3">
+ <kind
+ href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_EoAOIN0DEeSiOexlyH3Ifw"/>
+ </representations>
+ <representations
+ xsi:type="expansionmodel:Representation"
+ name="Class FullPort"
+ viewFactory="org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory.PortViewFactory"
+ graphicalElementType="org.eclipse.papyrus.sysML.Class_FullPort"
+ inducedRepresentations="//@libraries.1/@representations.3">
+ <kind
+ href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_EoAOIN0DEeSiOexlyH3Ifw"/>
+ </representations>
+ <representations
+ xsi:type="expansionmodel:Representation"
+ editPartQualifiedName="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForClassEditPart"
+ name="ProxyPort As Label"
+ viewFactory="org.eclipse.papyrus.gmf.diagram.common.factory.ShapeViewFactory"
+ graphicalElementType="org.eclipse.papyrus.sysML.ProxyPort_Label"/>
+ <representations
+ xsi:type="expansionmodel:Representation"
+ editPartQualifiedName="org.eclipse.papyrus.uml.diagram.clazz.edit.parts.PropertyForClassEditPart"
+ name="FullPort As Label"
+ viewFactory="org.eclipse.papyrus.gmf.diagram.common.factory.ShapeViewFactory"
+ graphicalElementType="org.eclipse.papyrus.sysML.FullPort_Label"/>
</libraries>
<libraries
xmi:id="_rC19oNnoEeSqwOe5_frWm5"
@@ -95,7 +134,23 @@
hint="constraints"
children="//@libraries.0/@representations.3">
<kind
- href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_vbTKYN0DEeS-X4lB2Ut-YA"/>
- </representations>
+ href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_vbTKYN0DEeS-X4lB2Ut-YA"/>
+ </representations>
+ <representations
+ xsi:type="expansionmodel:InducedRepresentation"
+ name="ProxyPort Compartment"
+ hint="Proxy Ports"
+ children="//@libraries.0/@representations.7">
+ <kind
+ href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_vbTKYN0DEeS-X4lB2Ut-YA"/>
+ </representations>
+ <representations
+ xsi:type="expansionmodel:InducedRepresentation"
+ name="FullPort Compartment"
+ hint="Full Ports"
+ children="//@libraries.0/@representations.8">
+ <kind
+ href="platform:/plugin/org.eclipse.papyrus.uml.diagram.common/model/UMLRepresentationKind.xmi#_vbTKYN0DEeS-X4lB2Ut-YA"/>
+ </representations>
</libraries>
</expansionmodel:DiagramExpansion>
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/palette/blockDiagram.paletteconfiguration b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/palette/blockDiagram.paletteconfiguration
index c58f1998577..bc45b35bcb5 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/palette/blockDiagram.paletteconfiguration
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/palette/blockDiagram.paletteconfiguration
@@ -41,7 +41,7 @@
<ownedConfigurations
xsi:type="paletteconfiguration:ToolConfiguration"
id="org.eclipse.papyrus.sysML.ControlOperator_Operation_Operation_BorderItem"
- label="Create ControlOperator"
+ label="ControlOperator"
description="Create ControlOperator">
<icon
pluginID="org.eclipse.papyrus.sysml"
@@ -184,22 +184,40 @@
</ownedConfigurations>
<ownedConfigurations
xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Port"
+ id="org.eclipse.papyrus.sysML.Class_Port"
label="Port"
description="Create a Port">
<icon
- pluginID="org.eclipse.papyrus.sysml"
- iconPath="icons/requirements/Requirement.gif"/>
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="/icons/full/obj16/Port.gif"/>
<elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Requirement_2008"/>
+ elementTypeId="org.eclipse.papyrus.sysML.Class_Port"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Class_ProxyPort"
+ label="ProxyPort"
+ description="Create a ProxyPort">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="/icons/full/obj16/Port.gif"/>
<elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Requirement_3004"/>
+ elementTypeId="org.eclipse.papyrus.sysML.Class_ProxyPort"/>
<elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Requirement_3008"/>
+ elementTypeId="org.eclipse.papyrus.sysML.ProxyPort_Label"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Class_FullPort"
+ label="FullPort"
+ description="Create a FullPort">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="/icons/full/obj16/Port.gif"/>
<elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Requirement_3010"/>
+ elementTypeId="org.eclipse.papyrus.sysML.Class_FullPort"/>
<elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Requirement_3014"/>
+ elementTypeId="org.eclipse.papyrus.sysML.FullPort_Label"/>
</ownedConfigurations>
</drawerConfigurations>
<drawerConfigurations
@@ -266,111 +284,6 @@
kind="ConnectionTool"/>
</drawerConfigurations>
<drawerConfigurations
- id="Deprecated"
- label="Deprecated"
- description="Deprecated">
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Deprecated_Property"
- label="Property (Deprecated)"
- description="Create a Deprecated Property">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3002"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3005"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3006"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3012"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3018"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3041"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification"
- label="InstanceSpecification (Deprecated)"
- description="Create a Deprecated InstanceSpecification">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/InstanceSpecification.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_2001"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_3020"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Deprecated_Class"
- label="Class (Deprecated)"
- description="Create a Deprecated Class">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_2008"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3004"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3008"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3010"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3014"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Deprecated_Association"
- label="Association (Deprecated)"
- description="Create a Deprecated Association"
- kind="ConnectionTool">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Association.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Association_2015"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Association_4001"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Association_4019"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Deprecated_Generalization"
- label="Generalization (Deprecated)"
- description="Create a Deprecated Generalization"
- kind="ConnectionTool">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Generalization.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Generalization_4002"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="org.eclipse.papyrus.sysML.Deprecated_DataType"
- label="DataType (Deprecated)"
- description="Create a Deprecated DataType">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/DataType.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_2010"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3027"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3043"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3044"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3045"/>
- </ownedConfigurations>
- </drawerConfigurations>
- <drawerConfigurations
id="Nodes"
label="Other Nodes"
description="Other Nodes">
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/factory/PortViewFactory.java b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/factory/PortViewFactory.java
new file mode 100644
index 00000000000..f0dabe89628
--- /dev/null
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.blockdefinition/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/factory/PortViewFactory.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.core.view.factories.ViewFactory;
+import org.eclipse.gmf.runtime.notation.DecorationNode;
+import org.eclipse.gmf.runtime.notation.Location;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.NotationFactory;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper;
+import org.eclipse.uml2.uml.Operation;
+
+public class PortViewFactory implements ViewFactory {
+
+ /**
+ * visual ID for stereotype label of border item
+ */
+// protected static final String OPERATION_BORDER_ITEM_STEREOTYPE_LABEL = "Operation_BorderItem_Stereotype_Label";
+ /**
+ * visual ID for name label of border item
+ */
+ protected static final String OPERATION_BORDER_ITEM_LABEL = "Operation_BorderItem_Label";
+ @Override
+ public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) {
+ return createPort((EObject)semanticAdapter.getAdapter(EObject.class), containerView,semanticHint, index, persisted, preferencesHint);
+ }
+ public Node createPort(EObject domainElement, View containerView,String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) {
+
+ Operation o;
+
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(semanticHint);
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
+ PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Port");
+ Node label5125 = createLabel(node, OPERATION_BORDER_ITEM_LABEL);
+ label5125.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
+ Location location5125 = (Location)label5125.getLayoutConstraint();
+ location5125.setX(25);
+ location5125.setY(3);
+ return node;
+ }
+ protected Node createLabel(View owner, String hint) {
+ DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode();
+ rv.setType(hint);
+ ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
+ return rv;
+ }
+
+}
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeStructureDiagram.elementtypesconfigurations b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeStructureDiagram.elementtypesconfigurations
index a4f199857d5..3dea3ff4bd6 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeStructureDiagram.elementtypesconfigurations
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeStructureDiagram.elementtypesconfigurations
@@ -1,349 +1,822 @@
<?xml version="1.0" encoding="ASCII"?>
-<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:applystereotypeadviceconfiguration="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/uml/applystereotypeadvice/1.0" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.0" xmlns:stereotypeapplicationmatcherconfiguration="http://www.eclipse.org/payrus/elementtypesconfigurations/uml/stereotypematcherconfiguration" xmi:id="_Qt9c4Mv4EeS5BpE3hOblyw" name="SysML" identifier="org.eclipse.papyrus.SysML14.elementTypes" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c4cv4EeS5BpE3hOblyw" name="ValueType (3080)" identifier="org.eclipse.papyrus.SysML14.ValueType_3080" hint="3080">
- <iconEntry xmi:id="_Qt9c4sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/DataType.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+<elementtypesconfigurations:ElementTypeSetConfiguration
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:applystereotypeadviceconfiguration="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/uml/applystereotypeadvice/1.0"
+ xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.0"
+ xmlns:stereotypeapplicationmatcherconfiguration="http://www.eclipse.org/payrus/elementtypesconfigurations/uml/stereotypematcherconfiguration"
+ xmi:id="_Qt9c4Mv4EeS5BpE3hOblyw"
+ name="SysML"
+ identifier="org.eclipse.papyrus.SysML14.elementTypes"
+ metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c4cv4EeS5BpE3hOblyw"
+ name="ValueType (3080)"
+ identifier="org.eclipse.papyrus.SysML14.ValueType_3080"
+ hint="3080">
+ <iconEntry
+ xmi:id="_Qt9c4sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/DataType.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ValueType</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.DataType_3080</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c48v4EeS5BpE3hOblyw" name="ValueType (2068)" identifier="org.eclipse.papyrus.SysML14.ValueType_2068" hint="2068">
- <iconEntry xmi:id="_Qt9c5Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/DataType.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c48v4EeS5BpE3hOblyw"
+ name="ValueType (2068)"
+ identifier="org.eclipse.papyrus.SysML14.ValueType_2068"
+ hint="2068">
+ <iconEntry
+ xmi:id="_Qt9c5Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/DataType.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ValueType</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.DataType_2068</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c5cv4EeS5BpE3hOblyw" name="DistributedProperty (3070)" identifier="org.eclipse.papyrus.SysML14.DistributedProperty_3070" hint="3070">
- <iconEntry xmi:id="_Qt9c5sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c5cv4EeS5BpE3hOblyw"
+ name="DistributedProperty (3070)"
+ identifier="org.eclipse.papyrus.SysML14.DistributedProperty_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9c5sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.DistributedProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c58v4EeS5BpE3hOblyw" name="DistributedProperty (3101)" identifier="org.eclipse.papyrus.SysML14.DistributedProperty_3101" hint="3101">
- <iconEntry xmi:id="_Qt9c6Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c58v4EeS5BpE3hOblyw"
+ name="DistributedProperty (3101)"
+ identifier="org.eclipse.papyrus.SysML14.DistributedProperty_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9c6Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.DistributedProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c6cv4EeS5BpE3hOblyw" name="ConnectorProperty (3070)" identifier="org.eclipse.papyrus.SysML14.ConnectorProperty_3070" hint="3070">
- <iconEntry xmi:id="_Qt9c6sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c6cv4EeS5BpE3hOblyw"
+ name="ConnectorProperty (3070)"
+ identifier="org.eclipse.papyrus.SysML14.ConnectorProperty_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9c6sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ConnectorProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c68v4EeS5BpE3hOblyw" name="ConnectorProperty (3101)" identifier="org.eclipse.papyrus.SysML14.ConnectorProperty_3101" hint="3101">
- <iconEntry xmi:id="_Qt9c7Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c68v4EeS5BpE3hOblyw"
+ name="ConnectorProperty (3101)"
+ identifier="org.eclipse.papyrus.SysML14.ConnectorProperty_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9c7Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ConnectorProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c7cv4EeS5BpE3hOblyw" name="ParticipantProperty (3070)" identifier="org.eclipse.papyrus.SysML14.ParticipantProperty_3070" hint="3070">
- <iconEntry xmi:id="_Qt9c7sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c7cv4EeS5BpE3hOblyw"
+ name="ParticipantProperty (3070)"
+ identifier="org.eclipse.papyrus.SysML14.ParticipantProperty_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9c7sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ParticipantProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c78v4EeS5BpE3hOblyw" name="ParticipantProperty (3101)" identifier="org.eclipse.papyrus.SysML14.ParticipantProperty_3101" hint="3101">
- <iconEntry xmi:id="_Qt9c8Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c78v4EeS5BpE3hOblyw"
+ name="ParticipantProperty (3101)"
+ identifier="org.eclipse.papyrus.SysML14.ParticipantProperty_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9c8Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ParticipantProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c8cv4EeS5BpE3hOblyw" name="BindingConnector" identifier="org.eclipse.papyrus.SysML14.BindingConnector_4013" hint="4013">
- <iconEntry xmi:id="_Qt9c8sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Connector.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c8cv4EeS5BpE3hOblyw"
+ name="BindingConnector"
+ identifier="org.eclipse.papyrus.SysML14.BindingConnector_4013"
+ hint="4013">
+ <iconEntry
+ xmi:id="_Qt9c8sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Connector.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.BindingConnector</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Connector_4013</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c88v4EeS5BpE3hOblyw" name="Block (3085)" identifier="org.eclipse.papyrus.SysML14.Block_3085" hint="3085">
- <iconEntry xmi:id="_Qt9c9Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c88v4EeS5BpE3hOblyw"
+ name="Block (3085)"
+ identifier="org.eclipse.papyrus.SysML14.Block_3085"
+ hint="3085">
+ <iconEntry
+ xmi:id="_Qt9c9Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Block</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c9cv4EeS5BpE3hOblyw" name="Block (2073)" identifier="org.eclipse.papyrus.SysML14.Block_2073" hint="2073">
- <iconEntry xmi:id="_Qt9c9sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c9cv4EeS5BpE3hOblyw"
+ name="Block (2073)"
+ identifier="org.eclipse.papyrus.SysML14.Block_2073"
+ hint="2073">
+ <iconEntry
+ xmi:id="_Qt9c9sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Block</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c98v4EeS5BpE3hOblyw" name="EndPathMultiplicity (3070)" identifier="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3070" hint="3070">
- <iconEntry xmi:id="_Qt9c-Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c98v4EeS5BpE3hOblyw"
+ name="EndPathMultiplicity (3070)"
+ identifier="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9c-Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.EndPathMultiplicity</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c-cv4EeS5BpE3hOblyw" name="EndPathMultiplicity (3101)" identifier="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3101" hint="3101">
- <iconEntry xmi:id="_Qt9c-sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c-cv4EeS5BpE3hOblyw"
+ name="EndPathMultiplicity (3101)"
+ identifier="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9c-sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.EndPathMultiplicity</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c-8v4EeS5BpE3hOblyw" name="BoundReference (3070)" identifier="org.eclipse.papyrus.SysML14.BoundReference_3070" hint="3070">
- <iconEntry xmi:id="_Qt9c_Mv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c-8v4EeS5BpE3hOblyw"
+ name="BoundReference (3070)"
+ identifier="org.eclipse.papyrus.SysML14.BoundReference_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9c_Mv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.BoundReference</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c_cv4EeS5BpE3hOblyw" name="BoundReference (3101)" identifier="org.eclipse.papyrus.SysML14.BoundReference_3101" hint="3101">
- <iconEntry xmi:id="_Qt9c_sv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c_cv4EeS5BpE3hOblyw"
+ name="BoundReference (3101)"
+ identifier="org.eclipse.papyrus.SysML14.BoundReference_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9c_sv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.BoundReference</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9c_8v4EeS5BpE3hOblyw" name="AdjunctProperty (3070)" identifier="org.eclipse.papyrus.SysML14.AdjunctProperty_3070" hint="3070">
- <iconEntry xmi:id="_Qt9dAMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9c_8v4EeS5BpE3hOblyw"
+ name="AdjunctProperty (3070)"
+ identifier="org.eclipse.papyrus.SysML14.AdjunctProperty_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9dAMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.AdjunctProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dAcv4EeS5BpE3hOblyw" name="AdjunctProperty (3101)" identifier="org.eclipse.papyrus.SysML14.AdjunctProperty_3101" hint="3101">
- <iconEntry xmi:id="_Qt9dAsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dAcv4EeS5BpE3hOblyw"
+ name="AdjunctProperty (3101)"
+ identifier="org.eclipse.papyrus.SysML14.AdjunctProperty_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9dAsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.AdjunctProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dA8v4EeS5BpE3hOblyw" name="ClassifierBehaviorProperty (3070)" identifier="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3070" hint="3070">
- <iconEntry xmi:id="_Qt9dBMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dA8v4EeS5BpE3hOblyw"
+ name="ClassifierBehaviorProperty (3070)"
+ identifier="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9dBMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dBcv4EeS5BpE3hOblyw" name="ClassifierBehaviorProperty (3101)" identifier="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3101" hint="3101">
- <iconEntry xmi:id="_Qt9dBsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dBcv4EeS5BpE3hOblyw"
+ name="ClassifierBehaviorProperty (3101)"
+ identifier="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9dBsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dB8v4EeS5BpE3hOblyw" name="ItemFlow" identifier="org.eclipse.papyrus.SysML14.ItemFlow_4021" hint="4021">
- <iconEntry xmi:id="_Qt9dCMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/InformationFlow.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dB8v4EeS5BpE3hOblyw"
+ name="ItemFlow"
+ identifier="org.eclipse.papyrus.SysML14.ItemFlow_4021"
+ hint="4021">
+ <iconEntry
+ xmi:id="_Qt9dCMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/InformationFlow.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ItemFlow</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.InformationFlow_4021</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dCcv4EeS5BpE3hOblyw" name="FlowProperty (3070)" identifier="org.eclipse.papyrus.SysML14.FlowProperty_3070" hint="3070">
- <iconEntry xmi:id="_Qt9dCsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dCcv4EeS5BpE3hOblyw"
+ name="FlowProperty (3070)"
+ identifier="org.eclipse.papyrus.SysML14.FlowProperty_3070"
+ hint="3070">
+ <iconEntry
+ xmi:id="_Qt9dCsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.FlowProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dC8v4EeS5BpE3hOblyw" name="FlowProperty (3101)" identifier="org.eclipse.papyrus.SysML14.FlowProperty_3101" hint="3101">
- <iconEntry xmi:id="_Qt9dDMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dC8v4EeS5BpE3hOblyw"
+ name="FlowProperty (3101)"
+ identifier="org.eclipse.papyrus.SysML14.FlowProperty_3101"
+ hint="3101">
+ <iconEntry
+ xmi:id="_Qt9dDMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.FlowProperty</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dDcv4EeS5BpE3hOblyw" name="FullPort" identifier="org.eclipse.papyrus.SysML14.FullPort_3069" hint="3069">
- <iconEntry xmi:id="_Qt9dDsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dDcv4EeS5BpE3hOblyw"
+ name="FullPort"
+ identifier="org.eclipse.papyrus.SysML14.FullPort_3069"
+ hint="3069">
+ <iconEntry
+ xmi:id="_Qt9dDsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Port.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.FullPort</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Port_3069</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dD8v4EeS5BpE3hOblyw" name="InterfaceBlock (3085)" identifier="org.eclipse.papyrus.SysML14.InterfaceBlock_3085" hint="3085">
- <iconEntry xmi:id="_Qt9dEMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dD8v4EeS5BpE3hOblyw"
+ name="InterfaceBlock (3085)"
+ identifier="org.eclipse.papyrus.SysML14.InterfaceBlock_3085"
+ hint="3085">
+ <iconEntry
+ xmi:id="_Qt9dEMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.InterfaceBlock</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dEcv4EeS5BpE3hOblyw" name="InterfaceBlock (2073)" identifier="org.eclipse.papyrus.SysML14.InterfaceBlock_2073" hint="2073">
- <iconEntry xmi:id="_Qt9dEsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dEcv4EeS5BpE3hOblyw"
+ name="InterfaceBlock (2073)"
+ identifier="org.eclipse.papyrus.SysML14.InterfaceBlock_2073"
+ hint="2073">
+ <iconEntry
+ xmi:id="_Qt9dEsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.InterfaceBlock</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dE8v4EeS5BpE3hOblyw" name="ProxyPort" identifier="org.eclipse.papyrus.SysML14.ProxyPort_3069" hint="3069">
- <iconEntry xmi:id="_Qt9dFMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dE8v4EeS5BpE3hOblyw"
+ name="ProxyPort"
+ identifier="org.eclipse.papyrus.SysML14.ProxyPort_3069"
+ hint="3069">
+ <iconEntry
+ xmi:id="_Qt9dFMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Port.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ProxyPort</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Port_3069</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dFcv4EeS5BpE3hOblyw" name="ChangeStructuralFeatureEvent" identifier="org.eclipse.papyrus.SysML14.ChangeStructuralFeatureEvent_2088" hint="2088">
- <iconEntry xmi:id="_Qt9dFsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/ChangeEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dFcv4EeS5BpE3hOblyw"
+ name="ChangeStructuralFeatureEvent"
+ identifier="org.eclipse.papyrus.SysML14.ChangeStructuralFeatureEvent_2088"
+ hint="2088">
+ <iconEntry
+ xmi:id="_Qt9dFsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/ChangeEvent.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ChangeStructuralFeatureEvent</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.ChangeEvent_2088</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dF8v4EeS5BpE3hOblyw" name="ControlOperator Operation" identifier="org.eclipse.papyrus.SysML14.ControlOperator_Operation_3102" hint="3102">
- <iconEntry xmi:id="_Qt9dGMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Operation.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dF8v4EeS5BpE3hOblyw"
+ name="ControlOperator Operation"
+ identifier="org.eclipse.papyrus.SysML14.ControlOperator_Operation_3102"
+ hint="3102">
+ <iconEntry
+ xmi:id="_Qt9dGMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Operation.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ControlOperator_Operation</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Operation_3102</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dGcv4EeS5BpE3hOblyw" name="Rate Parameter" identifier="org.eclipse.papyrus.SysML14.Rate_Parameter_3088" hint="3088">
- <iconEntry xmi:id="_Qt9dGsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Parameter.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dGcv4EeS5BpE3hOblyw"
+ name="Rate Parameter"
+ identifier="org.eclipse.papyrus.SysML14.Rate_Parameter_3088"
+ hint="3088">
+ <iconEntry
+ xmi:id="_Qt9dGsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Parameter.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Rate_Parameter</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Parameter_3088</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dG8v4EeS5BpE3hOblyw" name="Discrete Parameter" identifier="org.eclipse.papyrus.SysML14.Discrete_Parameter_3088" hint="3088">
- <iconEntry xmi:id="_Qt9dHMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Parameter.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dG8v4EeS5BpE3hOblyw"
+ name="Discrete Parameter"
+ identifier="org.eclipse.papyrus.SysML14.Discrete_Parameter_3088"
+ hint="3088">
+ <iconEntry
+ xmi:id="_Qt9dHMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Parameter.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Discrete_Parameter</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Parameter_3088</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dHcv4EeS5BpE3hOblyw" name="Continuous Parameter" identifier="org.eclipse.papyrus.SysML14.Continuous_Parameter_3088" hint="3088">
- <iconEntry xmi:id="_Qt9dHsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Parameter.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dHcv4EeS5BpE3hOblyw"
+ name="Continuous Parameter"
+ identifier="org.eclipse.papyrus.SysML14.Continuous_Parameter_3088"
+ hint="3088">
+ <iconEntry
+ xmi:id="_Qt9dHsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Parameter.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Continuous_Parameter</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Parameter_3088</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dH8v4EeS5BpE3hOblyw" name="Optional" identifier="org.eclipse.papyrus.SysML14.Optional_3088" hint="3088">
- <iconEntry xmi:id="_Qt9dIMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Parameter.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dH8v4EeS5BpE3hOblyw"
+ name="Optional"
+ identifier="org.eclipse.papyrus.SysML14.Optional_3088"
+ hint="3088">
+ <iconEntry
+ xmi:id="_Qt9dIMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Parameter.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Optional</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Parameter_3088</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dIcv4EeS5BpE3hOblyw" name="Rationale (3097)" identifier="org.eclipse.papyrus.SysML14.Rationale_3097" hint="3097">
- <iconEntry xmi:id="_Qt9dIsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Comment.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dIcv4EeS5BpE3hOblyw"
+ name="Rationale (3097)"
+ identifier="org.eclipse.papyrus.SysML14.Rationale_3097"
+ hint="3097">
+ <iconEntry
+ xmi:id="_Qt9dIsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Comment.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Rationale</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Comment_3097</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dI8v4EeS5BpE3hOblyw" name="Rationale (2109)" identifier="org.eclipse.papyrus.SysML14.Rationale_2109" hint="2109">
- <iconEntry xmi:id="_Qt9dJMv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Comment.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dI8v4EeS5BpE3hOblyw"
+ name="Rationale (2109)"
+ identifier="org.eclipse.papyrus.SysML14.Rationale_2109"
+ hint="2109">
+ <iconEntry
+ xmi:id="_Qt9dJMv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Comment.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Rationale</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Comment_2109</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dJcv4EeS5BpE3hOblyw" name="View Package" identifier="org.eclipse.papyrus.SysML14.View_Package_CompositeStructure" hint="CompositeStructure">
- <iconEntry xmi:id="_Qt9dJsv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Package.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dJcv4EeS5BpE3hOblyw"
+ name="View Package"
+ identifier="org.eclipse.papyrus.SysML14.View_Package_CompositeStructure"
+ hint="CompositeStructure">
+ <iconEntry
+ xmi:id="_Qt9dJsv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Package.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Package_1000</specializedTypesID>
- <matcherConfiguration xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration" xmi:id="_Qt9dJ8v4EeS5BpE3hOblyw">
+ <matcherConfiguration
+ xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
+ xmi:id="_Qt9dJ8v4EeS5BpE3hOblyw">
<stereotypesQualifiedNames>SysML::ModelElements::View</stereotypesQualifiedNames>
</matcherConfiguration>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dKMv4EeS5BpE3hOblyw" name="View (3085)" identifier="org.eclipse.papyrus.SysML14.View_Class_3085" hint="3085">
- <iconEntry xmi:id="_Qt9dKcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dKMv4EeS5BpE3hOblyw"
+ name="View (3085)"
+ identifier="org.eclipse.papyrus.SysML14.View_Class_3085"
+ hint="3085">
+ <iconEntry
+ xmi:id="_Qt9dKcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.View_Class</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dKsv4EeS5BpE3hOblyw" name="View (2073)" identifier="org.eclipse.papyrus.SysML14.View_Class_2073" hint="2073">
- <iconEntry xmi:id="_Qt9dK8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dKsv4EeS5BpE3hOblyw"
+ name="View (2073)"
+ identifier="org.eclipse.papyrus.SysML14.View_Class_2073"
+ hint="2073">
+ <iconEntry
+ xmi:id="_Qt9dK8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.View_Class</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dLMv4EeS5BpE3hOblyw" name="Conform Dependency" identifier="org.eclipse.papyrus.SysML14.Conform_Dependency_4010" hint="4010">
- <iconEntry xmi:id="_Qt9dLcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Dependency.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dLMv4EeS5BpE3hOblyw"
+ name="Conform Dependency"
+ identifier="org.eclipse.papyrus.SysML14.Conform_Dependency_4010"
+ hint="4010">
+ <iconEntry
+ xmi:id="_Qt9dLcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Dependency.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Conform_Dependency</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Dependency_4010</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dLsv4EeS5BpE3hOblyw" name="Conform Generalization" identifier="org.eclipse.papyrus.SysML14.Conform_Generalization_4015" hint="4015">
- <iconEntry xmi:id="_Qt9dL8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Generalization.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dLsv4EeS5BpE3hOblyw"
+ name="Conform Generalization"
+ identifier="org.eclipse.papyrus.SysML14.Conform_Generalization_4015"
+ hint="4015">
+ <iconEntry
+ xmi:id="_Qt9dL8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Generalization.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Conform_Generalization</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Generalization_4015</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dMMv4EeS5BpE3hOblyw" name="Problem (3097)" identifier="org.eclipse.papyrus.SysML14.Problem_3097" hint="3097">
- <iconEntry xmi:id="_Qt9dMcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Comment.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dMMv4EeS5BpE3hOblyw"
+ name="Problem (3097)"
+ identifier="org.eclipse.papyrus.SysML14.Problem_3097"
+ hint="3097">
+ <iconEntry
+ xmi:id="_Qt9dMcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Comment.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Problem</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Comment_3097</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dMsv4EeS5BpE3hOblyw" name="Problem (2109)" identifier="org.eclipse.papyrus.SysML14.Problem_2109" hint="2109">
- <iconEntry xmi:id="_Qt9dM8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Comment.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dMsv4EeS5BpE3hOblyw"
+ name="Problem (2109)"
+ identifier="org.eclipse.papyrus.SysML14.Problem_2109"
+ hint="2109">
+ <iconEntry
+ xmi:id="_Qt9dM8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Comment.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Problem</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Comment_2109</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dNMv4EeS5BpE3hOblyw" name="ViewPoint (3085)" identifier="org.eclipse.papyrus.SysML14.ViewPoint_3085" hint="3085">
- <iconEntry xmi:id="_Qt9dNcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dNMv4EeS5BpE3hOblyw"
+ name="ViewPoint (3085)"
+ identifier="org.eclipse.papyrus.SysML14.ViewPoint_3085"
+ hint="3085">
+ <iconEntry
+ xmi:id="_Qt9dNcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ViewPoint</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dNsv4EeS5BpE3hOblyw" name="ViewPoint (2073)" identifier="org.eclipse.papyrus.SysML14.ViewPoint_2073" hint="2073">
- <iconEntry xmi:id="_Qt9dN8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dNsv4EeS5BpE3hOblyw"
+ name="ViewPoint (2073)"
+ identifier="org.eclipse.papyrus.SysML14.ViewPoint_2073"
+ hint="2073">
+ <iconEntry
+ xmi:id="_Qt9dN8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ViewPoint</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dOMv4EeS5BpE3hOblyw" name="Expose" identifier="org.eclipse.papyrus.SysML14.Expose_4010" hint="4010">
- <iconEntry xmi:id="_Qt9dOcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Dependency.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dOMv4EeS5BpE3hOblyw"
+ name="Expose"
+ identifier="org.eclipse.papyrus.SysML14.Expose_4010"
+ hint="4010">
+ <iconEntry
+ xmi:id="_Qt9dOcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Dependency.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Expose</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Dependency_4010</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dOsv4EeS5BpE3hOblyw" name="ElementGroup (3097)" identifier="org.eclipse.papyrus.SysML14.ElementGroup_3097" hint="3097">
- <iconEntry xmi:id="_Qt9dO8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Comment.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dOsv4EeS5BpE3hOblyw"
+ name="ElementGroup (3097)"
+ identifier="org.eclipse.papyrus.SysML14.ElementGroup_3097"
+ hint="3097">
+ <iconEntry
+ xmi:id="_Qt9dO8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Comment.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ElementGroup</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Comment_3097</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dPMv4EeS5BpE3hOblyw" name="ElementGroup (2109)" identifier="org.eclipse.papyrus.SysML14.ElementGroup_2109" hint="2109">
- <iconEntry xmi:id="_Qt9dPcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Comment.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dPMv4EeS5BpE3hOblyw"
+ name="ElementGroup (2109)"
+ identifier="org.eclipse.papyrus.SysML14.ElementGroup_2109"
+ hint="2109">
+ <iconEntry
+ xmi:id="_Qt9dPcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Comment.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ElementGroup</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Comment_2109</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dPsv4EeS5BpE3hOblyw" name="ConstraintBlock (3085)" identifier="org.eclipse.papyrus.SysML14.ConstraintBlock_3085" hint="3085">
- <iconEntry xmi:id="_Qt9dP8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dPsv4EeS5BpE3hOblyw"
+ name="ConstraintBlock (3085)"
+ identifier="org.eclipse.papyrus.SysML14.ConstraintBlock_3085"
+ hint="3085">
+ <iconEntry
+ xmi:id="_Qt9dP8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ConstraintBlock</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dQMv4EeS5BpE3hOblyw" name="ConstraintBlock (2073)" identifier="org.eclipse.papyrus.SysML14.ConstraintBlock_2073" hint="2073">
- <iconEntry xmi:id="_Qt9dQcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dQMv4EeS5BpE3hOblyw"
+ name="ConstraintBlock (2073)"
+ identifier="org.eclipse.papyrus.SysML14.ConstraintBlock_2073"
+ hint="2073">
+ <iconEntry
+ xmi:id="_Qt9dQcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.ConstraintBlock</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dQsv4EeS5BpE3hOblyw" name="Allocate Abstraction" identifier="org.eclipse.papyrus.SysML14.Allocate_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dQ8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dQsv4EeS5BpE3hOblyw"
+ name="Allocate Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.Allocate_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dQ8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Allocate_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dRMv4EeS5BpE3hOblyw" name="DeriveReqt Abstraction" identifier="org.eclipse.papyrus.SysML14.DeriveReqt_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dRcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dRMv4EeS5BpE3hOblyw"
+ name="DeriveReqt Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.DeriveReqt_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dRcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.DeriveReqt_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dRsv4EeS5BpE3hOblyw" name="Copy Abstraction" identifier="org.eclipse.papyrus.SysML14.Copy_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dR8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dRsv4EeS5BpE3hOblyw"
+ name="Copy Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.Copy_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dR8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Copy_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dSMv4EeS5BpE3hOblyw" name="Satisfy Abstraction" identifier="org.eclipse.papyrus.SysML14.Satisfy_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dScv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dSMv4EeS5BpE3hOblyw"
+ name="Satisfy Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.Satisfy_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dScv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Satisfy_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dSsv4EeS5BpE3hOblyw" name="TestCase Operation" identifier="org.eclipse.papyrus.SysML14.TestCase_Operation_3102" hint="3102">
- <iconEntry xmi:id="_Qt9dS8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Operation.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dSsv4EeS5BpE3hOblyw"
+ name="TestCase Operation"
+ identifier="org.eclipse.papyrus.SysML14.TestCase_Operation_3102"
+ hint="3102">
+ <iconEntry
+ xmi:id="_Qt9dS8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Operation.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.TestCase_Operation</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Operation_3102</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dTMv4EeS5BpE3hOblyw" name="Requirement (3085)" identifier="org.eclipse.papyrus.SysML14.Requirement_3085" hint="3085">
- <iconEntry xmi:id="_Qt9dTcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dTMv4EeS5BpE3hOblyw"
+ name="Requirement (3085)"
+ identifier="org.eclipse.papyrus.SysML14.Requirement_3085"
+ hint="3085">
+ <iconEntry
+ xmi:id="_Qt9dTcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Requirement</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dTsv4EeS5BpE3hOblyw" name="Requirement (2073)" identifier="org.eclipse.papyrus.SysML14.Requirement_2073" hint="2073">
- <iconEntry xmi:id="_Qt9dT8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dTsv4EeS5BpE3hOblyw"
+ name="Requirement (2073)"
+ identifier="org.eclipse.papyrus.SysML14.Requirement_2073"
+ hint="2073">
+ <iconEntry
+ xmi:id="_Qt9dT8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Class.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Requirement</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dUMv4EeS5BpE3hOblyw" name="Verify Abstraction" identifier="org.eclipse.papyrus.SysML14.Verify_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dUcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dUMv4EeS5BpE3hOblyw"
+ name="Verify Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.Verify_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dUcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Verify_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dUsv4EeS5BpE3hOblyw" name="Trace Abstraction" identifier="org.eclipse.papyrus.SysML14.Trace_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dU8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dUsv4EeS5BpE3hOblyw"
+ name="Trace Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.Trace_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dU8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Trace_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dVMv4EeS5BpE3hOblyw" name="Refine Abstraction" identifier="org.eclipse.papyrus.SysML14.Refine_Abstraction_4007" hint="4007">
- <iconEntry xmi:id="_Qt9dVcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Abstraction.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dVMv4EeS5BpE3hOblyw"
+ name="Refine Abstraction"
+ identifier="org.eclipse.papyrus.SysML14.Refine_Abstraction_4007"
+ hint="4007">
+ <iconEntry
+ xmi:id="_Qt9dVcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Abstraction.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.Refine_Abstraction</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Abstraction_4007</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dVsv4EeS5BpE3hOblyw" name="FlowPort" identifier="org.eclipse.papyrus.SysML14.FlowPort_3069" hint="3069">
- <iconEntry xmi:id="_Qt9dV8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dVsv4EeS5BpE3hOblyw"
+ name="FlowPort"
+ identifier="org.eclipse.papyrus.SysML14.FlowPort_3069"
+ hint="3069">
+ <iconEntry
+ xmi:id="_Qt9dV8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Port.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.FlowPort</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Port_3069</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dWMv4EeS5BpE3hOblyw" name="FlowSpecification (3087)" identifier="org.eclipse.papyrus.SysML14.FlowSpecification_3087" hint="3087">
- <iconEntry xmi:id="_Qt9dWcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Interface.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dWMv4EeS5BpE3hOblyw"
+ name="FlowSpecification (3087)"
+ identifier="org.eclipse.papyrus.SysML14.FlowSpecification_3087"
+ hint="3087">
+ <iconEntry
+ xmi:id="_Qt9dWcv4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Interface.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.FlowSpecification</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Interface_3087</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dWsv4EeS5BpE3hOblyw" name="FlowSpecification (2076)" identifier="org.eclipse.papyrus.SysML14.FlowSpecification_2076" hint="2076">
- <iconEntry xmi:id="_Qt9dW8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Interface.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_Qt9dWsv4EeS5BpE3hOblyw"
+ name="FlowSpecification (2076)"
+ identifier="org.eclipse.papyrus.SysML14.FlowSpecification_2076"
+ hint="2076">
+ <iconEntry
+ xmi:id="_Qt9dW8v4EeS5BpE3hOblyw"
+ iconPath="/icons/full/obj16/Interface.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
<specializedTypesID>org.eclipse.papyrus.SysML14.FlowSpecification</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Interface_2076</specializedTypesID>
</elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dXMv4EeS5BpE3hOblyw" name="Deprecated (3070)" identifier="org.eclipse.papyrus.SysML14.Deprecated_Property_3070" hint="3070">
- <iconEntry xmi:id="_Qt9dXcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3070</specializedTypesID>
- </elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dXsv4EeS5BpE3hOblyw" name="Deprecated (3101)" identifier="org.eclipse.papyrus.SysML14.Deprecated_Property_3101" hint="3101">
- <iconEntry xmi:id="_Qt9dX8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Property_3101</specializedTypesID>
- </elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dYMv4EeS5BpE3hOblyw" name="Deprecated (3085)" identifier="org.eclipse.papyrus.SysML14.Deprecated_Class_3085" hint="3085">
- <iconEntry xmi:id="_Qt9dYcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_3085</specializedTypesID>
- </elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dYsv4EeS5BpE3hOblyw" name="Deprecated (2073)" identifier="org.eclipse.papyrus.SysML14.Deprecated_Class_2073" hint="2073">
- <iconEntry xmi:id="_Qt9dY8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Class_2073</specializedTypesID>
- </elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dZMv4EeS5BpE3hOblyw" name="Deprecated Generalization" identifier="org.eclipse.papyrus.SysML14.Deprecated_Generalization_4015" hint="4015">
- <iconEntry xmi:id="_Qt9dZcv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/Generalization.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Generalization</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.Generalization_4015</specializedTypesID>
- </elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9dZsv4EeS5BpE3hOblyw" name="Deprecated (3080)" identifier="org.eclipse.papyrus.SysML14.Deprecated_DataType_3080" hint="3080">
- <iconEntry xmi:id="_Qt9dZ8v4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/DataType.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.DataType_3080</specializedTypesID>
- </elementTypeConfigurations>
- <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Qt9daMv4EeS5BpE3hOblyw" name="Deprecated (2068)" identifier="org.eclipse.papyrus.SysML14.Deprecated_DataType_2068" hint="2068">
- <iconEntry xmi:id="_Qt9dacv4EeS5BpE3hOblyw" iconPath="/icons/full/obj16/DataType.gif" bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.composite.DataType_2068</specializedTypesID>
- </elementTypeConfigurations>
- <adviceBindingsConfigurations xsi:type="applystereotypeadviceconfiguration:ApplyStereotypeAdviceConfiguration" xmi:id="_Qt9dasv4EeS5BpE3hOblyw" name="Apply View" identifier="org.eclipse.papyrus.SysML14.view_CompositeStructure" target="_Qt9dJcv4EeS5BpE3hOblyw">
- <stereotypesToApply xmi:id="_Qt9da8v4EeS5BpE3hOblyw" stereotypeQualifiedName="SysML::ModelElements::View" updateName="true">
+ <adviceBindingsConfigurations
+ xsi:type="applystereotypeadviceconfiguration:ApplyStereotypeAdviceConfiguration"
+ xmi:id="_Qt9dasv4EeS5BpE3hOblyw"
+ name="Apply View"
+ identifier="org.eclipse.papyrus.SysML14.view_CompositeStructure"
+ target="_Qt9dJcv4EeS5BpE3hOblyw">
+ <stereotypesToApply
+ xmi:id="_Qt9da8v4EeS5BpE3hOblyw"
+ stereotypeQualifiedName="SysML::ModelElements::View"
+ updateName="true">
<requiredProfiles>SysML</requiredProfiles>
</stereotypesToApply>
</adviceBindingsConfigurations>
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14UMLClassDiagram.elementtypesconfigurations b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14UMLClassDiagram.elementtypesconfigurations
index c49d0848832..e369a13ef40 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14UMLClassDiagram.elementtypesconfigurations
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14UMLClassDiagram.elementtypesconfigurations
@@ -2260,420 +2260,6 @@
</elementTypeConfigurations>
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYdcJQEeSX9MoKMBV5Gw"
- name="Deprecated (3002)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Property_3002"
- hint="3002">
- <iconEntry
- xmi:id="_LoKYdsJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Property_3002</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYd8JQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYeMJQEeSX9MoKMBV5Gw"
- name="Deprecated (3005)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Property_3005"
- hint="3005">
- <iconEntry
- xmi:id="_LoKYecJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Property_3005</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYesJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYe8JQEeSX9MoKMBV5Gw"
- name="Deprecated (3006)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Property_3006"
- hint="3006">
- <iconEntry
- xmi:id="_LoKYfMJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Property_3006</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYfcJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYfsJQEeSX9MoKMBV5Gw"
- name="Deprecated (3012)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Property_3012"
- hint="3012">
- <iconEntry
- xmi:id="_LoKYf8JQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Property_3012</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYgMJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYgcJQEeSX9MoKMBV5Gw"
- name="Deprecated (3018)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Property_3018"
- hint="3018">
- <iconEntry
- xmi:id="_LoKYgsJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Property_3018</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYg8JQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYhMJQEeSX9MoKMBV5Gw"
- name="Deprecated (3041)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Property_3041"
- hint="3041">
- <iconEntry
- xmi:id="_LoKYhcJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Property</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Property_3041</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYhsJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYh8JQEeSX9MoKMBV5Gw"
- name="Deprecated (4021)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_4021"
- hint="4021">
- <iconEntry
- xmi:id="_LoKYiMJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/InstanceSpecification.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_InstanceSpecification</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.InstanceSpecificationLink_4021</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYicJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYisJQEeSX9MoKMBV5Gw"
- name="Deprecated (2001)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_2001"
- hint="2001">
- <iconEntry
- xmi:id="_LoKYi8JQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/InstanceSpecification.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_InstanceSpecification</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.InstanceSpecification_2001</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYjMJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYjcJQEeSX9MoKMBV5Gw"
- name="Deprecated (3020)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_3020"
- hint="3020">
- <iconEntry
- xmi:id="_LoKYjsJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/InstanceSpecification.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_InstanceSpecification</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.InstanceSpecification_3020</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYj8JQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYkMJQEeSX9MoKMBV5Gw"
- name="Deprecated (2008)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Class_2008"
- hint="2008">
- <iconEntry
- xmi:id="_LoKYkcJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Class.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Class_2008</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYksJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYk8JQEeSX9MoKMBV5Gw"
- name="Deprecated (3004)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Class_3004"
- hint="3004">
- <iconEntry
- xmi:id="_LoKYlMJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Class.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Class_3004</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYlcJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYlsJQEeSX9MoKMBV5Gw"
- name="Deprecated (3008)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Class_3008"
- hint="3008">
- <iconEntry
- xmi:id="_LoKYl8JQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Class.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Class_3008</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYmMJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYmcJQEeSX9MoKMBV5Gw"
- name="Deprecated (3010)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Class_3010"
- hint="3010">
- <iconEntry
- xmi:id="_LoKYmsJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Class.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Class_3010</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYm8JQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYnMJQEeSX9MoKMBV5Gw"
- name="Deprecated (3014)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Class_3014"
- hint="3014">
- <iconEntry
- xmi:id="_LoKYncJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Class.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Class</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Class_3014</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYnsJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYn8JQEeSX9MoKMBV5Gw"
- name="Deprecated (2015)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Association_2015"
- hint="2015">
- <iconEntry
- xmi:id="_LoKYoMJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Association.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Association</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Association_2015</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYocJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYosJQEeSX9MoKMBV5Gw"
- name="Deprecated (4001)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Association_4001"
- hint="4001">
- <iconEntry
- xmi:id="_LoKYo8JQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Association.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Association</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Association_4001</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYpMJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYpcJQEeSX9MoKMBV5Gw"
- name="Deprecated (4019)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Association_4019"
- hint="4019">
- <iconEntry
- xmi:id="_LoKYpsJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Association.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Association</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Association_4019</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYp8JQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYqMJQEeSX9MoKMBV5Gw"
- name="Deprecated Generalization"
- identifier="org.eclipse.papyrus.sysML.Deprecated_Generalization_4002"
- hint="4002">
- <iconEntry
- xmi:id="_LoKYqcJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/Generalization.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_Generalization</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Generalization_4002</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYqsJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYq8JQEeSX9MoKMBV5Gw"
- name="Deprecated (2010)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_DataType_2010"
- hint="2010">
- <iconEntry
- xmi:id="_LoKYrMJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/DataType.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.DataType_2010</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYrcJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYrsJQEeSX9MoKMBV5Gw"
- name="Deprecated (3027)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_DataType_3027"
- hint="3027">
- <iconEntry
- xmi:id="_LoKYr8JQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/DataType.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.DataType_3027</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYsMJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYscJQEeSX9MoKMBV5Gw"
- name="Deprecated (3043)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_DataType_3043"
- hint="3043">
- <iconEntry
- xmi:id="_LoKYssJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/DataType.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.DataType_3043</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYs8JQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYtMJQEeSX9MoKMBV5Gw"
- name="Deprecated (3044)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_DataType_3044"
- hint="3044">
- <iconEntry
- xmi:id="_LoKYtcJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/DataType.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.DataType_3044</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYtsJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_LoKYt8JQEeSX9MoKMBV5Gw"
- name="Deprecated (3045)"
- identifier="org.eclipse.papyrus.sysML.Deprecated_DataType_3045"
- hint="3045">
- <iconEntry
- xmi:id="_LoKYuMJQEeSX9MoKMBV5Gw"
- iconPath="/icons/full/obj16/DataType.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.SysML14.Deprecated_DataType</specializedTypesID>
- <specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.DataType_3045</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_LoKYucJQEeSX9MoKMBV5Gw">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_tjVDYM1xEeSsRbN4ihgqDg"
name="FlowPort (FlowPort_Label)"
description=""
@@ -2854,7 +2440,7 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_7fjysOgVEeSUQvXhEVQh8w"
- name="Unit"
+ name="Unit_2001"
description="Create an Unit in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.Unit_2001"
hint="2001">
@@ -2864,7 +2450,7 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_v7PJAOgXEeSUQvXhEVQh8w"
- name="Unit"
+ name="Unit_3020"
description="Create an Unit in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.Unit_3020"
hint="3020">
@@ -2874,7 +2460,7 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_zWOO4OgnEeSUQvXhEVQh8w"
- name="Unit"
+ name="QuantityKind_2001"
description="Create an QuantityKind in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.QuantityKind_2001"
hint="2001">
@@ -2884,7 +2470,7 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_zWOO4egnEeSUQvXhEVQh8w"
- name="Unit"
+ name="QuantityKind_3020"
description="Create an QuantityKind in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.QuantityKind_3020"
hint="3020">
@@ -2894,7 +2480,7 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_X7E5oOgtEeSUQvXhEVQh8w"
- name="PartAssociation"
+ name="PartAssociation_2015"
description="Create an Part Association in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.PartAssociation_2015"
hint="2015">
@@ -2904,7 +2490,7 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_nJF78OgtEeSUQvXhEVQh8w"
- name="PartAssociation"
+ name="PartAssociation_4001"
description="Create an Part Association in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.PartAssociation_4001"
hint="4001">
@@ -2914,11 +2500,76 @@
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
xmi:id="_oAQ0gOgtEeSUQvXhEVQh8w"
- name="PartAssociation"
+ name="PartAssociation_4019"
description="Create an Part Association in a UML Class Diagram"
identifier="org.eclipse.papyrus.sysML.PartAssociation_4019"
hint="4019">
<specializedTypesID>org.eclipse.papyrus.SysML14.PartAssociation</specializedTypesID>
<specializedTypesID>org.eclipse.papyrus.uml.diagram.clazz.Association_4019</specializedTypesID>
</elementTypeConfigurations>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_gdLMgOmsEeSrzJhCjczRog"
+ name="Class_Port"
+ description="Create an UML Port in an UML Class Diagram"
+ identifier="org.eclipse.papyrus.sysML.Class_Port"
+ hint="Class_Port">
+ <specializedTypesID>org.eclipse.papyrus.uml.Port</specializedTypesID>
+ </elementTypeConfigurations>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_UZmuEOqKEeSrzJhCjczRog"
+ name="Class_ProxyPort"
+ description="Create an UML ProxyPort in an UML Class Diagram"
+ identifier="org.eclipse.papyrus.sysML.Class_ProxyPort"
+ hint="Class_ProxyPort">
+ <specializedTypesID>org.eclipse.papyrus.SysML14.ProxyPort</specializedTypesID>
+ </elementTypeConfigurations>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_U54woOqKEeSrzJhCjczRog"
+ name="Class_FullPort"
+ description="Create an UML FullPort in an UML Class Diagram"
+ identifier="org.eclipse.papyrus.sysML.Class_FullPort"
+ hint="Class_FullPort">
+ <specializedTypesID>org.eclipse.papyrus.SysML14.FullPort</specializedTypesID>
+ </elementTypeConfigurations>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_0su20OyxEeSNB9Q0D5gJiA"
+ name="ProxyPort (ProxyPort_Label)"
+ description=""
+ identifier="org.eclipse.papyrus.sysML.ProxyPort_Label"
+ hint="ProxyPort_Label">
+ <iconEntry
+ xmi:id="_0su20eyxEeSNB9Q0D5gJiA"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
+ <specializedTypesID>org.eclipse.papyrus.SysML14.ProxyPort</specializedTypesID>
+ <matcherConfiguration
+ xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
+ xmi:id="_0su20uyxEeSNB9Q0D5gJiA"
+ matcherClassName="">
+ <stereotypesQualifiedNames>SysML::DeprecatedElements::FlowPort</stereotypesQualifiedNames>
+ </matcherConfiguration>
+ </elementTypeConfigurations>
+ <elementTypeConfigurations
+ xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
+ xmi:id="_1HdD8OyxEeSNB9Q0D5gJiA"
+ name="FullPort (FullPort_Label)"
+ description=""
+ identifier="org.eclipse.papyrus.sysML.FullPort_Label"
+ hint="FullPort_Label">
+ <iconEntry
+ xmi:id="_1HdD8eyxEeSNB9Q0D5gJiA"
+ iconPath="/icons/full/obj16/Property.gif"
+ bundleId="org.eclipse.uml2.uml.edit"/>
+ <specializedTypesID>org.eclipse.papyrus.SysML14.FullPort</specializedTypesID>
+ <matcherConfiguration
+ xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
+ xmi:id="_1HdD8uyxEeSNB9Q0D5gJiA"
+ matcherClassName="">
+ <stereotypesQualifiedNames>SysML::DeprecatedElements::FlowPort</stereotypesQualifiedNames>
+ </matcherConfiguration>
+ </elementTypeConfigurations>
</elementtypesconfigurations:ElementTypeSetConfiguration>
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration
index 3a04237eb18..7d4a10a3b02 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration
@@ -65,62 +65,6 @@
</ownedConfigurations>
</drawerConfigurations>
<drawerConfigurations
- id="Deprecated"
- label="Deprecated"
- description="Deprecated">
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="palettemodel.Deprecated_DataType"
- label="Deprecated_DataType"
- description="Create a Deprecated">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/DataType.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_DataType_2068"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_DataType_3080"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="palettemodel.Deprecated Generalization"
- label="Deprecated Generalization"
- description="Create a Deprecated Generalization"
- kind="ConnectionTool">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Generalization.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Generalization_4015"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="palettemodel.Deprecated.property"
- label="Deprecated_Property"
- description="Create a Deprecated Property">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Property_3070"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Property_3101"/>
- </ownedConfigurations>
- <ownedConfigurations
- xsi:type="paletteconfiguration:ToolConfiguration"
- id="palettemodel.Deprecated_Class"
- label="Deprecated_Class"
- description="Create a Deprecated_Class">
- <icon
- pluginID="org.eclipse.uml2.uml.edit"
- iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Class_3085"/>
- <elementDescriptors
- elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Class_2073"/>
- </ownedConfigurations>
- </drawerConfigurations>
- <drawerConfigurations
id="SysML Nodes"
label="Other Nodes"
description="Other Nodes">
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.parametric/resources/palette/parametricDiagramPalette.paletteconfiguration b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.parametric/resources/palette/parametricDiagramPalette.paletteconfiguration
index 4d079d3bc78..488e5cfa606 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.parametric/resources/palette/parametricDiagramPalette.paletteconfiguration
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.parametric/resources/palette/parametricDiagramPalette.paletteconfiguration
@@ -1,235 +1,580 @@
<?xml version="1.0" encoding="ASCII"?>
-<paletteconfiguration:PaletteConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.7" id="palettemodel" label="SysML">
- <drawerConfigurations id="palette.sysml.parametric.nodes" label="Nodes" description="Nodes">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Comment" label="Comment" description="Create a comment">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Comment.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Comment_2109"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Comment_3097"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Constraint" label="Constraint" description="Create a constraint">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Constraint.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Constraint_3120"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Constraint_2114"/>
+<paletteconfiguration:PaletteConfiguration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.7"
+ id="palettemodel"
+ label="SysML">
+ <drawerConfigurations
+ id="palette.sysml.parametric.nodes"
+ label="Nodes"
+ description="Nodes">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Comment"
+ label="Comment"
+ description="Create a comment">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Comment.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Comment_2109"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Comment_3097"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Constraint"
+ label="Constraint"
+ description="Create a constraint">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Constraint.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Constraint_3120"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.composite.Constraint_2114"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="palette.sysml.parametric.edges" label="Edges" description="Edges">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Dependency" label="Dependency" description="Create a dependency" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Dependency.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Dependency_2014"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Dependency_4008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Dependency_4018"/>
+ <drawerConfigurations
+ id="palette.sysml.parametric.edges"
+ label="Edges"
+ description="Edges">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Dependency"
+ label="Dependency"
+ description="Create a dependency"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="/icons/full/obj16/Dependency.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Dependency_2014"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Dependency_4008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Dependency_4018"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="Deprecated" label="Deprecated" description="Deprecated">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Deprecated_DataType" label="Deprecated_DataType" description="Create a Deprecated">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/DataType.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_DataType_2068"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_DataType_3080"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Deprecated Generalization" label="Deprecated Generalization" description="Create a Deprecated Generalization" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Generalization.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Generalization_4015"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Deprecated.property" label="Deprecated_Property" description="Create a Deprecated Property">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Property_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Property_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Deprecated_Class" label="Deprecated_Class" description="Create a Deprecated_Class">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Class_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Deprecated_Class_2073"/>
+ <drawerConfigurations
+ id="SysML Nodes"
+ label="Other Nodes"
+ description="Other Nodes">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ClassifierBehaviorProperty"
+ label="ClassifierBehaviorProperty"
+ description="Create a ClassifierBehaviorProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.DistributedProperty"
+ label="DistributedProperty"
+ description="Create a DistributedProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.DistributedProperty_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.DistributedProperty_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ConnectorProperty"
+ label="ConnectorProperty"
+ description="Create a ConnectorProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ConnectorProperty_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ConnectorProperty_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ParticipantProperty"
+ label="ParticipantProperty"
+ description="Create a ParticipantProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ParticipantProperty_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ParticipantProperty_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.FlowProperty"
+ label="FlowProperty"
+ description="Create a FlowProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.FlowProperty_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.FlowProperty_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Block"
+ label="Block"
+ description="Create a Block">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/blocks/Block.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Block_3085"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Block_2073"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ValueType"
+ label="ValueType"
+ description="Create a ValueType">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/blocks/ValueType.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ValueType_3080"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ValueType_2068"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ConstraintBlock"
+ label="ConstraintBlock"
+ description="Create a ConstraintBlock">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/constraints/ConstraintBlock.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ConstraintBlock_3085"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ConstraintBlock_2073"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Requirement"
+ label="Requirement"
+ description="Create a Requirement">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Requirement.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Requirement_3085"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Requirement_2073"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Problem"
+ label="Problem"
+ description="Create a Problem">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/modelelements/Problem.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Problem_3097"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Problem_2109"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.FlowSpecification"
+ label="FlowSpecification"
+ description="Create a FlowSpecification">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Interface.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.FlowSpecification_3087"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.FlowSpecification_2076"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ViewPoint"
+ label="ViewPoint"
+ description="Create a ViewPoint">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml.edit"
+ iconPath="icons/full/obj16/ViewPoint.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ViewPoint_3085"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ViewPoint_2073"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.TestCase Operation"
+ label="TestCase Operation"
+ description="Create a TestCase Operation">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Operation.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.TestCase_Operation_3102"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ControlOperator Operation"
+ label="ControlOperator Operation"
+ description="Create a ControlOperator Operation">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Operation.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ControlOperator_Operation_3102"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Rationale"
+ label="Rationale"
+ description="Create a Rationale">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/modelelements/Rationale.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Rationale_3097"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Rationale_2109"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.View_Class"
+ label="View"
+ description="Create a View">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Class.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.View_Class_3085"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.View_Class_2073"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.View Package"
+ label="View Package"
+ description="Create a View Package">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Package.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.View_Package_CompositeStructure"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.InterfaceBlock "
+ label="InterfaceBlock"
+ description="Create a InterfaceBlock">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Class.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.InterfaceBlock_3085"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.InterfaceBlock_2073"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.AdjunctProperty"
+ label="AdjunctProperty"
+ description="Create a AdjunctProperty ">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.AdjunctProperty_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.AdjunctProperty_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.FlowPort"
+ label="FlowPort"
+ description="Create a FlowPort">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/portandflows/FlowPort.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.FlowPort_3069"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.EndPathMultiplicity "
+ label="EndPathMultiplicity"
+ description="Create a EndPathMultiplicity">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3101"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Rate Parameter"
+ label="Rate Parameter"
+ description="Create a Rate Parameter">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Parameter.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Rate_Parameter_3088"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Discrete Parameter"
+ label="Discrete Parameter"
+ description="Create a Discrete Parameter">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Parameter.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Discrete_Parameter_3088"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Continuous Parameter"
+ label="Continuous Parameter"
+ description="Create a Continuous Parameter">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Parameter.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Continuous_Parameter_3088"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ChangeStructuralFeatureEvent"
+ label="ChangeStructuralFeatureEvent"
+ description="Create a ChangeStructuralFeatureEvent">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/ChangeEvent.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ChangeStructuralFeatureEvent_2088"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ElementGroup"
+ label="ElementGroup"
+ description="Create a ElementGroup">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Comment.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ElementGroup_3097"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ElementGroup_2109"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Optional"
+ label="Optional"
+ description="Create a Optional">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Parameter.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Optional_3088"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.FullPort"
+ label="FullPort"
+ description="Create a FullPort">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Port.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.FullPort_3069"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ProxyPort"
+ label="ProxyPort"
+ description="Create a ProxyPort">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Port.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ProxyPort_3069"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.BoundReference"
+ label="BoundReference"
+ description="Create a BoundReference">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.BoundReference_3070"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.BoundReference_3101"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="SysML Nodes" label="Other Nodes" description="Other Nodes">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ClassifierBehaviorProperty" label="ClassifierBehaviorProperty" description="Create a ClassifierBehaviorProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ClassifierBehaviorProperty_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.DistributedProperty" label="DistributedProperty" description="Create a DistributedProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.DistributedProperty_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.DistributedProperty_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ConnectorProperty" label="ConnectorProperty" description="Create a ConnectorProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ConnectorProperty_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ConnectorProperty_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ParticipantProperty" label="ParticipantProperty" description="Create a ParticipantProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ParticipantProperty_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ParticipantProperty_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.FlowProperty" label="FlowProperty" description="Create a FlowProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.FlowProperty_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.FlowProperty_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Block" label="Block" description="Create a Block">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/blocks/Block.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Block_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Block_2073"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ValueType" label="ValueType" description="Create a ValueType">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/blocks/ValueType.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ValueType_3080"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ValueType_2068"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ConstraintBlock" label="ConstraintBlock" description="Create a ConstraintBlock">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/constraints/ConstraintBlock.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ConstraintBlock_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ConstraintBlock_2073"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Requirement" label="Requirement" description="Create a Requirement">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Requirement.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Requirement_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Requirement_2073"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Problem" label="Problem" description="Create a Problem">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/modelelements/Problem.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Problem_3097"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Problem_2109"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.FlowSpecification" label="FlowSpecification" description="Create a FlowSpecification">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Interface.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.FlowSpecification_3087"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.FlowSpecification_2076"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ViewPoint" label="ViewPoint" description="Create a ViewPoint">
- <icon pluginID="org.eclipse.papyrus.sysml.edit" iconPath="icons/full/obj16/ViewPoint.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ViewPoint_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ViewPoint_2073"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.TestCase Operation" label="TestCase Operation" description="Create a TestCase Operation">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Operation.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.TestCase_Operation_3102"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ControlOperator Operation" label="ControlOperator Operation" description="Create a ControlOperator Operation">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Operation.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ControlOperator_Operation_3102"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Rationale" label="Rationale" description="Create a Rationale">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/modelelements/Rationale.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Rationale_3097"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Rationale_2109"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.View_Class" label="View" description="Create a View">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.View_Class_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.View_Class_2073"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.View Package" label="View Package" description="Create a View Package">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Package.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.View_Package_CompositeStructure"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.InterfaceBlock " label="InterfaceBlock" description="Create a InterfaceBlock">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.InterfaceBlock_3085"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.InterfaceBlock_2073"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.AdjunctProperty" label="AdjunctProperty" description="Create a AdjunctProperty ">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.AdjunctProperty_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.AdjunctProperty_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.FlowPort" label="FlowPort" description="Create a FlowPort">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/portandflows/FlowPort.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.FlowPort_3069"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.EndPathMultiplicity " label="EndPathMultiplicity" description="Create a EndPathMultiplicity">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.EndPathMultiplicity_3101"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Rate Parameter" label="Rate Parameter" description="Create a Rate Parameter">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Parameter.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Rate_Parameter_3088"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Discrete Parameter" label="Discrete Parameter" description="Create a Discrete Parameter">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Parameter.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Discrete_Parameter_3088"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Continuous Parameter" label="Continuous Parameter" description="Create a Continuous Parameter">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Parameter.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Continuous_Parameter_3088"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ChangeStructuralFeatureEvent" label="ChangeStructuralFeatureEvent" description="Create a ChangeStructuralFeatureEvent">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/ChangeEvent.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ChangeStructuralFeatureEvent_2088"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ElementGroup" label="ElementGroup" description="Create a ElementGroup">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Comment.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ElementGroup_3097"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ElementGroup_2109"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Optional" label="Optional" description="Create a Optional">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Parameter.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Optional_3088"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.FullPort" label="FullPort" description="Create a FullPort">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Port.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.FullPort_3069"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ProxyPort" label="ProxyPort" description="Create a ProxyPort">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Port.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ProxyPort_3069"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.BoundReference" label="BoundReference" description="Create a BoundReference">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.BoundReference_3070"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.BoundReference_3101"/>
- </ownedConfigurations>
- </drawerConfigurations>
- <drawerConfigurations id="SysML Edges" label="Other Edges" description="Other Edges">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Expose" label="Expose" description="Create a Expose" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Dependency.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Expose_4010"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Copy Abstraction" label="Copy Abstraction" description="Create a Copy Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Copy.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Copy_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Verify Abstraction" label="Verify Abstraction" description="Create a Verify Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Verify.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Verify_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Trace Abstraction" label="Trace Abstraction" description="Create a Trace Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Trace_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Conform Dependency" label="Conform Dependency" description="Create a Conform Dependency" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Dependency.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Conform_Dependency_4010"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Conform Generalization" label="Conform Generalization" description="Create a Conform Generalization" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Generalization.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Conform_Generalization_4015"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Refine Abstraction" label="Refine Abstraction" description="Create a Refine Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Refine_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Allocate Abstraction" label="Allocate Abstraction" description="Create a Allocate Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Allocate_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.DeriveReqt Abstraction" label="DeriveReqt Abstraction" description="Create a DeriveReqt Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.DeriveReqt_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.Satisfy Abstraction" label="Satisfy Abstraction" description="Create a Satisfy Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Satisfy.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.Satisfy_Abstraction_4007"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.ItemFlow" label="ItemFlow" description="Create a ItemFlow" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/portandflows/ItemFlow.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.ItemFlow_4021"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="palettemodel.BindingConnector" label="BindingConnector" description="Create a BindingConnector">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Connector.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.SysML14.BindingConnector_4013"/>
+ <drawerConfigurations
+ id="SysML Edges"
+ label="Other Edges"
+ description="Other Edges">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Expose"
+ label="Expose"
+ description="Create a Expose"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Dependency.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Expose_4010"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Copy Abstraction"
+ label="Copy Abstraction"
+ description="Create a Copy Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Copy.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Copy_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Verify Abstraction"
+ label="Verify Abstraction"
+ description="Create a Verify Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Verify.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Verify_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Trace Abstraction"
+ label="Trace Abstraction"
+ description="Create a Trace Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Trace_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Conform Dependency"
+ label="Conform Dependency"
+ description="Create a Conform Dependency"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Dependency.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Conform_Dependency_4010"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Conform Generalization"
+ label="Conform Generalization"
+ description="Create a Conform Generalization"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Generalization.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Conform_Generalization_4015"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Refine Abstraction"
+ label="Refine Abstraction"
+ description="Create a Refine Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Refine_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Allocate Abstraction"
+ label="Allocate Abstraction"
+ description="Create a Allocate Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Allocate_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.DeriveReqt Abstraction"
+ label="DeriveReqt Abstraction"
+ description="Create a DeriveReqt Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.DeriveReqt_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.Satisfy Abstraction"
+ label="Satisfy Abstraction"
+ description="Create a Satisfy Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Satisfy.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.Satisfy_Abstraction_4007"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.ItemFlow"
+ label="ItemFlow"
+ description="Create a ItemFlow"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/portandflows/ItemFlow.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.ItemFlow_4021"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="palettemodel.BindingConnector"
+ label="BindingConnector"
+ description="Create a BindingConnector">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Connector.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.SysML14.BindingConnector_4013"/>
</ownedConfigurations>
</drawerConfigurations>
</paletteconfiguration:PaletteConfiguration>
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.requirement/resources/palette/requirementDiagram.paletteconfiguration b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.requirement/resources/palette/requirementDiagram.paletteconfiguration
index 98459667e42..e9bc06562e4 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.requirement/resources/palette/requirementDiagram.paletteconfiguration
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.diagram.requirement/resources/palette/requirementDiagram.paletteconfiguration
@@ -1,294 +1,630 @@
<?xml version="1.0" encoding="ASCII"?>
-<paletteconfiguration:PaletteConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.7" id="palettemodel" label="SysML">
- <drawerConfigurations id="palette.sysml.requirement.nodes" label="Nodes" description="Nodes">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Package" label="Package" description="Create a package">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Package.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Package_2007"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Package_3009"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Requirement" label="Requirement" description="Create a Requirement">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Requirement.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Requirement_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Requirement_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Requirement_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Requirement_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Requirement_3014"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Problem" label="Problem" description="Create a Problem">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/modelelements/Problem.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Problem_2012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Problem_3028"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Rationale" label="Rationale" description="Create a Rationale">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/modelelements/Rationale.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Rationale_2012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Rationale_3028"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.TestCase_Operation" label="TestCase" description="Create a TestCase">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Operation.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3003"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3007"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3013"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3019"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3042"/>
+<paletteconfiguration:PaletteConfiguration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.7"
+ id="palettemodel"
+ label="SysML">
+ <drawerConfigurations
+ id="palette.sysml.requirement.nodes"
+ label="Nodes"
+ description="Nodes">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Package"
+ label="Package"
+ description="Create a package">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Package.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Package_2007"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Package_3009"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Requirement"
+ label="Requirement"
+ description="Create a Requirement">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Requirement.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Requirement_2008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Requirement_3004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Requirement_3008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Requirement_3010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Requirement_3014"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Problem"
+ label="Problem"
+ description="Create a Problem">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/modelelements/Problem.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Problem_2012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Problem_3028"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Rationale"
+ label="Rationale"
+ description="Create a Rationale">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/modelelements/Rationale.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Rationale_2012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Rationale_3028"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.TestCase_Operation"
+ label="TestCase"
+ description="Create a TestCase">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Operation.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3003"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3007"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3013"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3019"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.TestCase_Operation_3042"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="palette.sysml.requirement.edges" label="Edges" description="Edges">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Copy_Abstraction" label="Copy" description="Create a Copy" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Copy.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Copy_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.DeriveReqt_Abstraction" label="DeriveReqt" description="Create a DeriveReqt Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DeriveReqt_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Satisfy_Abstraction" label="Satisfy" description="Create a Satisfy" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Satisfy.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Satisfy_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Verify_Abstraction" label="Verify" description="Create a Verify">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/requirements/Verify.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Verify_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Refine_Abstraction" label="Refine" description="Create a Refine" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Refine_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Trace_Abstraction" label="Trace" description="Create a Trace" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Trace_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Link" label="Link" description="Create a Link" kind="ConnectionTool">
- <icon pluginID="org.eclipse.papyrus.uml.diagram.clazz" iconPath="icons/obj16/Link.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Link_4016"/>
- </ownedConfigurations>
- </drawerConfigurations>
- <drawerConfigurations id="Deprecated" label="Deprecated" description="Deprecated">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Deprecated_Property" label="Property (Deprecated)" description="Create a Deprecated Property">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Property_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification" label="InstanceSpecification (Deprecated)" description="Create a Deprecated InstanceSpecification">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/InstanceSpecification.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_4021"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_2001"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_InstanceSpecification_3020"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Deprecated_Class" label="Class (Deprecated)" description="Create a Deprecated Class" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Class_3014"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Deprecated_Association" label="Association (Deprecated)" description="Create a Deprecated Association" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Association.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Association_2015"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Association_4001"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Association_4019"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Deprecated_Generalization" label="Generalization (Deprecated)" description="Create a Deprecated Generalization" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Generalization.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_Generalization_4002"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Deprecated_DataType" label="DataType (Deprecated)" description="Create a Deprecated DataType">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/DataType.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_2010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3027"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3043"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3044"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Deprecated_DataType_3045"/>
+ <drawerConfigurations
+ id="palette.sysml.requirement.edges"
+ label="Edges"
+ description="Edges">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Copy_Abstraction"
+ label="Copy"
+ description="Create a Copy"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Copy.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Copy_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.DeriveReqt_Abstraction"
+ label="DeriveReqt"
+ description="Create a DeriveReqt Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DeriveReqt_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Satisfy_Abstraction"
+ label="Satisfy"
+ description="Create a Satisfy"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Satisfy.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Satisfy_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Verify_Abstraction"
+ label="Verify"
+ description="Create a Verify">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/requirements/Verify.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Verify_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Refine_Abstraction"
+ label="Refine"
+ description="Create a Refine"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Refine_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Trace_Abstraction"
+ label="Trace"
+ description="Create a Trace"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Trace_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Link"
+ label="Link"
+ description="Create a Link"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.papyrus.uml.diagram.clazz"
+ iconPath="icons/obj16/Link.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.uml.diagram.clazz.Link_4016"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="Other SysML Elements" label="Other SysML Elements" description="Other SysML Elements">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.View_Package_PapyrusUMLClassDi" label="View" description="Create a View">
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Package_PapyrusUMLClassDiagram"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Allocated" label="Allocated" description="Create a Allocated">
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Allocated_2097"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.RequirementRelated" label="RequirementRelated" description="Create a RequirementRelated">
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.RequirementRelated_2097"/>
+ <drawerConfigurations
+ id="Other SysML Elements"
+ label="Other SysML Elements"
+ description="Other SysML Elements">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.View_Package_PapyrusUMLClassDi"
+ label="View"
+ description="Create a View">
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Package_PapyrusUMLClassDiagram"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Allocated"
+ label="Allocated"
+ description="Create a Allocated">
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Allocated_2097"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.RequirementRelated"
+ label="RequirementRelated"
+ description="Create a RequirementRelated">
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.RequirementRelated_2097"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="Nodes" label="Other Nodes" description="Other Nodes">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.AdjunctProperty" label="AdjunctProperty" description="Create a AdjunctProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.BoundReference" label="BoundReference" description="Create a BoundReference">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty" label="ClassifierBehaviorProperty" description="Create a ClassifierBehaviorProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ConnectorProperty" label="ConnectorProperty" description="Create a ConnectorProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ConstraintBlock" label="ConstraintBlock" description="Create a ConstraintBlock">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/constraints/ConstraintBlock.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3014"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ControlOperator_Operation" label="ControlOperator" description="Create a ControlOperator">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Operation.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3003"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3007"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3013"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3019"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3042"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.DistributedProperty" label="DistributedProperty" description="Create a DistributedProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ElementGroup" label="ElementGroup" description="Create a ElementGroup">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Comment.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ElementGroup_2012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ElementGroup_3028"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.EndPathMultiplicity" label="EndPathMultiplicity" description="Create a EndPathMultiplicity">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.FlowProperty" label="FlowProperty" description="Create a FlowProperty">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/portandflows/FlowProperty.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.FlowSpecification" label="FlowSpecification" description="Create a FlowSpecification">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Interface.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_2004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3023"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3036"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3037"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3038"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.InterfaceBlock" label="InterfaceBlock" description="Create a InterfaceBlock">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3014"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ParticipantProperty" label="ParticipantProperty" description="Create a ParticipantProperty">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3002"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3005"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3006"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3012"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3018"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3041"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.View_Package" label="View" description="Create a View">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Package.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Package_2007"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Package_3009"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ViewPoint" label="ViewPoint" description="Create a ViewPoint">
- <icon pluginID="org.eclipse.papyrus.sysml.edit" iconPath="icons/full/obj16/ViewPoint.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3014"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.View_Class" label="View Class" description="Create a View Class">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Class_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Class_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Class_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Class_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.View_Class_3014"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ValueType" label="ValueType" description="Create a ValueType">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/blocks/ValueType.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ValueType_2010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ValueType_3027"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ValueType_3043"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ValueType_3044"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ValueType_3045"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Block" label="Block" description="Create a Block">
- <icon pluginID="org.eclipse.papyrus.sysml" iconPath="icons/blocks/Block.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Block_2008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Block_3004"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Block_3008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Block_3010"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Block_3014"/>
+ <drawerConfigurations
+ id="Nodes"
+ label="Other Nodes"
+ description="Other Nodes">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.AdjunctProperty"
+ label="AdjunctProperty"
+ description="Create a AdjunctProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.AdjunctProperty_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.BoundReference"
+ label="BoundReference"
+ description="Create a BoundReference">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.BoundReference_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty"
+ label="ClassifierBehaviorProperty"
+ description="Create a ClassifierBehaviorProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ClassifierBehaviorProperty_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ConnectorProperty"
+ label="ConnectorProperty"
+ description="Create a ConnectorProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConnectorProperty_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ConstraintBlock"
+ label="ConstraintBlock"
+ description="Create a ConstraintBlock">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/constraints/ConstraintBlock.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_2008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ConstraintBlock_3014"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ControlOperator_Operation"
+ label="ControlOperator"
+ description="Create a ControlOperator">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Operation.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3003"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3007"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3013"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3019"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ControlOperator_Operation_3042"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.DistributedProperty"
+ label="DistributedProperty"
+ description="Create a DistributedProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.DistributedProperty_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ElementGroup"
+ label="ElementGroup"
+ description="Create a ElementGroup">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Comment.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ElementGroup_2012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ElementGroup_3028"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.EndPathMultiplicity"
+ label="EndPathMultiplicity"
+ description="Create a EndPathMultiplicity">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.EndPathMultiplicity_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.FlowProperty"
+ label="FlowProperty"
+ description="Create a FlowProperty">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/portandflows/FlowProperty.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowProperty_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.FlowSpecification"
+ label="FlowSpecification"
+ description="Create a FlowSpecification">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Interface.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_2004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3023"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3036"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3037"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.FlowSpecification_3038"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.InterfaceBlock"
+ label="InterfaceBlock"
+ description="Create a InterfaceBlock">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Class.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_2008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.InterfaceBlock_3014"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ParticipantProperty"
+ label="ParticipantProperty"
+ description="Create a ParticipantProperty">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Property.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3002"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3005"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3006"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3012"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3018"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ParticipantProperty_3041"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.View_Package"
+ label="View"
+ description="Create a View">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Package.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Package_2007"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Package_3009"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ViewPoint"
+ label="ViewPoint"
+ description="Create a ViewPoint">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml.edit"
+ iconPath="icons/full/obj16/ViewPoint.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_2008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ViewPoint_3014"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.View_Class"
+ label="View Class"
+ description="Create a View Class">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Class.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Class_2008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Class_3004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Class_3008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Class_3010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.View_Class_3014"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ValueType"
+ label="ValueType"
+ description="Create a ValueType">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/blocks/ValueType.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ValueType_2010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ValueType_3027"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ValueType_3043"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ValueType_3044"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ValueType_3045"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Block"
+ label="Block"
+ description="Create a Block">
+ <icon
+ pluginID="org.eclipse.papyrus.sysml"
+ iconPath="icons/blocks/Block.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Block_2008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Block_3004"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Block_3008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Block_3010"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Block_3014"/>
</ownedConfigurations>
</drawerConfigurations>
- <drawerConfigurations id="Edges" label="Other Edges" description="Other Edges">
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Conform_Generalization" label="Conform" description="Create a Conform Generalization" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Generalization.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Conform_Generalization_4002"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Allocate_Abstraction" label="Allocate" description="Create a Allocate Abstraction" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Abstraction.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Allocate_Abstraction_4006"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Conform_Dependency" label="Conform" description="Create a Conform " kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Dependency.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Conform_Dependency_2014"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Conform_Dependency_4008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Conform_Dependency_4018"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.Expose" label="Expose" description="Create a Expose" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Dependency.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Expose_2014"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Expose_4008"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.Expose_4018"/>
- </ownedConfigurations>
- <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.papyrus.sysML.ItemFlow" label="ItemFlow" description="Create a ItemFlow" kind="ConnectionTool">
- <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/InformationFlow.gif"/>
- <elementDescriptors elementTypeId="org.eclipse.papyrus.sysML.ItemFlow_4026"/>
+ <drawerConfigurations
+ id="Edges"
+ label="Other Edges"
+ description="Other Edges">
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Conform_Generalization"
+ label="Conform"
+ description="Create a Conform Generalization"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Generalization.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Conform_Generalization_4002"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Allocate_Abstraction"
+ label="Allocate"
+ description="Create a Allocate Abstraction"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Abstraction.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Allocate_Abstraction_4006"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Conform_Dependency"
+ label="Conform"
+ description="Create a Conform "
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Dependency.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Conform_Dependency_2014"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Conform_Dependency_4008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Conform_Dependency_4018"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.Expose"
+ label="Expose"
+ description="Create a Expose"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/Dependency.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Expose_2014"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Expose_4008"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.Expose_4018"/>
+ </ownedConfigurations>
+ <ownedConfigurations
+ xsi:type="paletteconfiguration:ToolConfiguration"
+ id="org.eclipse.papyrus.sysML.ItemFlow"
+ label="ItemFlow"
+ description="Create a ItemFlow"
+ kind="ConnectionTool">
+ <icon
+ pluginID="org.eclipse.uml2.uml.edit"
+ iconPath="icons/full/obj16/InformationFlow.gif"/>
+ <elementDescriptors
+ elementTypeId="org.eclipse.papyrus.sysML.ItemFlow_4026"/>
</ownedConfigurations>
</drawerConfigurations>
</paletteconfiguration:PaletteConfiguration>
diff --git a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.service.types/model/SysML14.elementtypesconfigurations b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.service.types/model/SysML14.elementtypesconfigurations
index 871fc68ff07..3ddad5a2ed3 100644
--- a/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.service.types/model/SysML14.elementtypesconfigurations
+++ b/plugins/sysml/sysml14/org.eclipse.papyrus.sysml14.service.types/model/SysML14.elementtypesconfigurations
@@ -1253,125 +1253,6 @@
</elementTypeConfigurations>
<elementTypeConfigurations
xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_k4SnXLwFEeSwNLK2W02HwA"
- name="Deprecated ValueSpecification"
- identifier="org.eclipse.papyrus.SysML14.Deprecated_ValueSpecification"
- hint="UML::ValueSpecification">
- <iconEntry
- xmi:id="_k4SnXbwFEeSwNLK2W02HwA"
- iconPath="/icons/full/obj16/ValueSpecification.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.uml.ValueSpecification</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_k4SnXrwFEeSwNLK2W02HwA">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_k4SnX7wFEeSwNLK2W02HwA"
- name="Deprecated Property"
- identifier="org.eclipse.papyrus.SysML14.Deprecated_Property"
- hint="UML::Property">
- <iconEntry
- xmi:id="_k4SnYLwFEeSwNLK2W02HwA"
- iconPath="/icons/full/obj16/Property.gif"
- bundleId="org.eclipse.uml2.uml.edit"/>
- <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
- <matcherConfiguration
- xsi:type="stereotypeapplicationmatcherconfiguration:StereotypeApplicationMatcherConfiguration"
- xmi:id="_k4SnYbwFEeSwNLK2W02HwA">
- <stereotypesQualifiedNames>SysML::DeprecatedElements::Deprecated</stereotypesQualifiedNames>
- </matcherConfiguration>
- </elementTypeConfigurations>
- <elementTypeConfigurations
- xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"
- xmi:id="_k4SnYrwFEeSwNLK2W02HwA"
- name="Deprecated InstanceSpecification"