From 4cb2981a4c989a031eb145291a8d7faf66308f56 Mon Sep 17 00:00:00 2001 From: Mickael ADAM Date: Tue, 21 Mar 2017 15:54:02 +0100 Subject: Bug 512343 - [Palette] Papyrus Palette framework should be refactored Change-Id: I4170f878f144bc9e47ed21f1f3beaeb53911a887 Signed-off-by: Mickael ADAM --- ...YSMLBlockDefinitionDiagram.paletteconfiguration | 274 ++++++++++ .../plugin.gen.xml | 10 +- .../plugin.xml | 590 +-------------------- .../factory/DiagramPaletteFactory.java | 4 +- .../part/BlockDefinitionDiagramEditor.java | 6 +- .../StructuredClassifierCreationEditPolicy.java | 2 +- ...sSysMLInternalBlockDiagram.paletteconfiguration | 102 ++++ .../plugin.xml | 126 +---- .../factory/DiagramPaletteFactory.java | 4 +- .../part/InternalBlockDiagramEditor.java | 6 +- ...yrusSYSMLParametricDiagram.paletteconfiguration | 78 +++ .../plugin.xml | 179 +------ .../parametric/factory/DiagramPaletteFactory.java | 4 +- .../META-INF/MANIFEST.MF | 3 +- ...rusSYSMLRequirementDiagram.paletteconfiguration | 120 +++++ .../plugin.xml | 53 +- .../CustomInheritedElementViewProvider.java | 146 ++++- 17 files changed, 798 insertions(+), 909 deletions(-) create mode 100644 plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/palettes/PapyrusSYSMLBlockDefinitionDiagram.paletteconfiguration create mode 100644 plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/palettes/PapyrusSysMLInternalBlockDiagram.paletteconfiguration create mode 100644 plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/palettes/PapyrusSYSMLParametricDiagram.paletteconfiguration create mode 100644 plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/palettes/PapyrusSYSMLRequirementDiagram.paletteconfiguration (limited to 'plugins/sysml') diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/palettes/PapyrusSYSMLBlockDefinitionDiagram.paletteconfiguration b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/palettes/PapyrusSYSMLBlockDefinitionDiagram.paletteconfiguration new file mode 100644 index 00000000000..92253fe122a --- /dev/null +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/palettes/PapyrusSYSMLBlockDefinitionDiagram.paletteconfiguration @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SysML + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.gen.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.gen.xml index 37d985fa5e8..aceeac5c1d9 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.gen.xml +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/plugin.gen.xml @@ -1116,7 +1116,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -923,86 +430,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1342,4 +769,21 @@ diagramType="BlockDefinition"> + + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/factory/DiagramPaletteFactory.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/factory/DiagramPaletteFactory.java index 3d2bfe8cbf1..991c6ceeabe 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/factory/DiagramPaletteFactory.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/factory/DiagramPaletteFactory.java @@ -19,10 +19,10 @@ import java.util.HashMap; import org.eclipse.gef.Tool; import org.eclipse.gmf.runtime.diagram.ui.services.palette.PaletteFactory; import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeConnectionTool; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.sysml.diagram.blockdefinition.provider.ElementTypes; import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeConnectionTool; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.uml.service.types.element.UMLElementTypes; @SuppressWarnings("serial") diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/BlockDefinitionDiagramEditor.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/BlockDefinitionDiagramEditor.java index f1e423830a6..1df0636b286 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/BlockDefinitionDiagramEditor.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src-gen/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/BlockDefinitionDiagramEditor.java @@ -43,14 +43,14 @@ import org.eclipse.papyrus.commands.util.OperationHistoryDirtyState; import org.eclipse.papyrus.infra.core.services.ServiceException; import org.eclipse.papyrus.infra.core.services.ServicesRegistry; import org.eclipse.papyrus.infra.gmfdiag.common.GmfMultiDiagramDocumentProvider; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.PapyrusPaletteContextMenuProvider; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.PapyrusPaletteService; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.PapyrusPaletteViewer; import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor; import org.eclipse.papyrus.sysml.diagram.blockdefinition.Activator; import org.eclipse.papyrus.sysml.diagram.blockdefinition.utils.FixPortsLocationOnOpening; import org.eclipse.papyrus.uml.diagram.common.listeners.DropTargetListener; -import org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteContextMenuProvider; -import org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteViewer; import org.eclipse.papyrus.uml.diagram.common.part.UmlGmfDiagramEditor; -import org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.TransferData; import org.eclipse.swt.events.KeyEvent; diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-uml/org/eclipse/papyrus/uml/diagram/common/edit/policy/StructuredClassifierCreationEditPolicy.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-uml/org/eclipse/papyrus/uml/diagram/common/edit/policy/StructuredClassifierCreationEditPolicy.java index a20355cf839..08a6de67b6d 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-uml/org/eclipse/papyrus/uml/diagram/common/edit/policy/StructuredClassifierCreationEditPolicy.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-uml/org/eclipse/papyrus/uml/diagram/common/edit/policy/StructuredClassifierCreationEditPolicy.java @@ -41,9 +41,9 @@ import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalC import org.eclipse.gmf.runtime.notation.View; import org.eclipse.papyrus.gmf.diagram.common.commands.CreateViewCommand; import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCreationEditPolicy; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.infra.gmfdiag.common.snap.NodeSnapHelper; import org.eclipse.papyrus.uml.diagram.common.locator.PortPositionLocator; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeCreationTool; /** * Replaces the {@link DefaultCreationEditPolicy} in order to manage Affixed Port position on creation or on drop. diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/palettes/PapyrusSysMLInternalBlockDiagram.paletteconfiguration b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/palettes/PapyrusSysMLInternalBlockDiagram.paletteconfiguration new file mode 100644 index 00000000000..1896bd823bf --- /dev/null +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/palettes/PapyrusSysMLInternalBlockDiagram.paletteconfiguration @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml index 025d0da3831..1ce2200cd9b 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/plugin.xml @@ -12,116 +12,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -554,4 +444,20 @@ + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/factory/DiagramPaletteFactory.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/factory/DiagramPaletteFactory.java index baa79966e65..bc27f1d84a3 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/factory/DiagramPaletteFactory.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/factory/DiagramPaletteFactory.java @@ -19,10 +19,10 @@ import java.util.HashMap; import org.eclipse.gef.Tool; import org.eclipse.gmf.runtime.diagram.ui.services.palette.PaletteFactory; import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeConnectionTool; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.sysml.diagram.internalblock.provider.ElementTypes; import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeConnectionTool; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.uml.service.types.element.UMLElementTypes; @SuppressWarnings("serial") diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/part/InternalBlockDiagramEditor.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/part/InternalBlockDiagramEditor.java index e497248cd40..5ed04b12383 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/part/InternalBlockDiagramEditor.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src-gen/org/eclipse/papyrus/sysml/diagram/internalblock/part/InternalBlockDiagramEditor.java @@ -44,15 +44,15 @@ import org.eclipse.papyrus.gmf.diagram.common.compatibility.IDiagramVersionUpdat import org.eclipse.papyrus.infra.core.services.ServiceException; import org.eclipse.papyrus.infra.core.services.ServicesRegistry; import org.eclipse.papyrus.infra.gmfdiag.common.GmfMultiDiagramDocumentProvider; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.PapyrusPaletteContextMenuProvider; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.PapyrusPaletteService; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.PapyrusPaletteViewer; import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor; import org.eclipse.papyrus.sysml.diagram.internalblock.Activator; import org.eclipse.papyrus.sysml.diagram.internalblock.compatibility.DiagramVersionUpdater; import org.eclipse.papyrus.sysml.diagram.internalblock.factory.InternalBlockDiagramViewFactory; import org.eclipse.papyrus.uml.diagram.common.listeners.DropTargetListener; -import org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteContextMenuProvider; -import org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteViewer; import org.eclipse.papyrus.uml.diagram.common.part.UmlGmfDiagramEditor; -import org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.TransferData; import org.eclipse.swt.events.KeyEvent; diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/palettes/PapyrusSYSMLParametricDiagram.paletteconfiguration b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/palettes/PapyrusSYSMLParametricDiagram.paletteconfiguration new file mode 100644 index 00000000000..41c44e7d9b3 --- /dev/null +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/palettes/PapyrusSYSMLParametricDiagram.paletteconfiguration @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml index 60063823af8..44487bcb7a8 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/plugin.xml @@ -183,169 +183,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -705,4 +542,20 @@ target="1.3.0"> + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/factory/DiagramPaletteFactory.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/factory/DiagramPaletteFactory.java index 9394e8c22ac..a5028a8a321 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/factory/DiagramPaletteFactory.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/factory/DiagramPaletteFactory.java @@ -19,10 +19,10 @@ import java.util.HashMap; import org.eclipse.gef.Tool; import org.eclipse.gmf.runtime.diagram.ui.services.palette.PaletteFactory; import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeConnectionTool; +import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.sysml.diagram.parametric.provider.ElementTypes; import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeConnectionTool; -import org.eclipse.papyrus.uml.diagram.common.service.AspectUnspecifiedTypeCreationTool; import org.eclipse.papyrus.uml.service.types.element.UMLElementTypes; @SuppressWarnings("serial") diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/META-INF/MANIFEST.MF b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/META-INF/MANIFEST.MF index 82b32409899..78b3db28eff 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/META-INF/MANIFEST.MF +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/META-INF/MANIFEST.MF @@ -15,7 +15,8 @@ Require-Bundle: org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.0.0,4. org.eclipse.papyrus.sysml.diagram.common;bundle-version="[2.0.0,3.0.0)";visibility:=reexport, org.eclipse.papyrus.uml.appearance;bundle-version="[2.0.0,3.0.0)", org.eclipse.papyrus.infra.internationalization.utils;bundle-version="[1.0.0,2.0.0)", - org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[1.0.0,2.0.0)" + org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[1.0.0,2.0.0)", + org.eclipse.papyrus.sysml.service.types;bundle-version="[2.0.0,3.0.0)" Bundle-Vendor: %providerName Bundle-ActivationPolicy: lazy Bundle-Version: 3.0.0.qualifier diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/palettes/PapyrusSYSMLRequirementDiagram.paletteconfiguration b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/palettes/PapyrusSYSMLRequirementDiagram.paletteconfiguration new file mode 100644 index 00000000000..b21fced9612 --- /dev/null +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/palettes/PapyrusSYSMLRequirementDiagram.paletteconfiguration @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml index 4b720d17968..a1f7f3a7ffa 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/plugin.xml @@ -25,40 +25,6 @@ categoryId="org.eclipse.papyrus.editor.category"/> - - - - - - - - - - - - - - - - - - - - - - - - @@ -182,6 +148,8 @@ elements="uml.Abstraction, uml.Dependency"/> + + @@ -869,4 +837,21 @@ diagramType="RequirementDiagram"> + + + + + + + + + + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/CustomInheritedElementViewProvider.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/CustomInheritedElementViewProvider.java index 6aa348384ab..a66cfc04b93 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/CustomInheritedElementViewProvider.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.requirement/src/org/eclipse/papyrus/sysml/diagram/requirement/provider/CustomInheritedElementViewProvider.java @@ -1,23 +1,30 @@ /***************************************************************************** - * Copyright (c) 2010 CEA LIST. + * Copyright (c) 2017 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 - * + * + * Mickaƫl ADAM (ALL4TEC) mickael.adam@all4tec.net - Bug 510587 *****************************************************************************/ package org.eclipse.papyrus.sysml.diagram.requirement.provider; +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.services.view.CreateEdgeViewOperation; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation; import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.notation.Edge; 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.sysml.diagram.common.utils.SysMLGraphicalTypes; +import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes; import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ClassAttributeCompartmentEditPart; import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ClassNameEditPart; import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ClassNestedClassifierCompartmentEditPart; @@ -35,26 +42,146 @@ public class CustomInheritedElementViewProvider extends InheritedClassDiagramVie super(); } + /** + * + * @see org.eclipse.papyrus.sysml.diagram.requirement.provider.InheritedClassDiagramViewProvider#provides(org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation) + */ @Override - public Node createClass_Shape(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { + protected boolean provides(final CreateNodeViewOperation operation) { + boolean provides = false; + + // Must have a container + if (operation.getContainerView() != null) { + + // This provider is registered for Requirement Diagram only + String diagramType = operation.getContainerView().getDiagram().getType(); + if (ElementTypes.DIAGRAM_ID.equals(diagramType)) { + + // Get the type of the container + String containerGraphicalType = operation.getContainerView().getType(); + if (ElementTypes.DIAGRAM_ID.equals(containerGraphicalType)) { - Shape node = NotationFactory.eINSTANCE.createShape(); + // get the type + IElementType elementType = (IElementType) operation.getSemanticAdapter().getAdapter(IElementType.class); + if (SysMLElementTypes.REQUIREMENT == elementType + || SysMLElementTypes.PROBLEM == elementType + || SysMLElementTypes.RATIONALE == elementType) { + provides = true; + } + } + } + } + return provides || super.provides(operation); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.papyrus.sysml.diagram.requirement.provider.InheritedClassDiagramViewProvider#provides(org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation) + */ + @Override + protected boolean provides(final CreateEdgeViewOperation operation) { + boolean provides = false; + + // Must have a container + if (operation.getContainerView() != null) { + + String diagramType = operation.getContainerView().getDiagram().getType(); + if (ElementTypes.DIAGRAM_ID.equals(diagramType)) { + + // get the type + IElementType elementType = (IElementType) operation.getSemanticAdapter().getAdapter(IElementType.class); + if (SysMLElementTypes.COPY == elementType + || SysMLElementTypes.DERIVE_REQT == elementType + || SysMLElementTypes.SATISFY == elementType + || SysMLElementTypes.VERIFY == elementType) { + provides = true; + } + } + } + return provides || super.provides(operation); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.papyrus.sysml.diagram.requirement.provider.InheritedClassDiagramViewProvider#createNode(org.eclipse.core.runtime.IAdaptable, org.eclipse.gmf.runtime.notation.View, java.lang.String, int, boolean, + * org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint) + */ + @Override + public Node createNode(final IAdaptable semanticAdapter, final View containerView, final String semanticHint, final int index, final boolean persisted, final PreferencesHint preferencesHint) { + Node node = null; + if (SysMLElementTypes.REQUIREMENT.getDisplayName().equals(semanticHint)) { + node = createRequirementNode(semanticAdapter, containerView, index, persisted, preferencesHint); + } else if (SysMLElementTypes.PROBLEM.getDisplayName().equals(semanticHint) + || SysMLElementTypes.RATIONALE.getDisplayName().equals(semanticHint)) { + + final EObject domainElement = getSemanticElement(semanticAdapter); + node = createComment_Shape(domainElement, containerView, index, persisted, preferencesHint); + } + + return null != node ? node : super.createNode(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); + } + + + /** + * {@inheritDoc} + * + * @see org.eclipse.papyrus.sysml.diagram.requirement.provider.InheritedClassDiagramViewProvider#createEdge(org.eclipse.core.runtime.IAdaptable, org.eclipse.gmf.runtime.notation.View, java.lang.String, int, boolean, + * org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint) + */ + @Override + public Edge createEdge(final IAdaptable semanticAdapter, final View containerView, final String semanticHint, final int index, final boolean persisted, final PreferencesHint preferencesHint) { + Edge edge = null; + + if (SysMLElementTypes.COPY.getDisplayName().equals(semanticHint) + || SysMLElementTypes.DERIVE_REQT.getDisplayName().equals(semanticHint) + || SysMLElementTypes.SATISFY.getDisplayName().equals(semanticHint) + || SysMLElementTypes.VERIFY.getDisplayName().equals(semanticHint)) { + final EObject domainElement = getSemanticElement(semanticAdapter); + edge = createAbstraction_Edge(domainElement, containerView, index, persisted, preferencesHint); + } + + return null != edge ? edge : super.createEdge(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint); + } + + /** + * create a Requirement Node. + * + * @param IAdaptable + * (for semantic element) + * @param containerView + * the container view that will contain the created view. + * @param index + * position in the container view's list of children views. + * @param persisted + * indicates if the created view will be persisted or not + * @param preferencesHint + * The preference hint that is to be used to find the appropriate + * preference store from which to retrieve diagram preference + * values. The preference hint is mapped to a preference store in + * the preference registry <@link DiagramPreferencesRegistry>. + * @return the created Requirement Node + */ + protected Shape createRequirementNode(final IAdaptable semanticAdapter, final View containerView, final int index, final boolean persisted, final PreferencesHint preferencesHint) { + Shape node; + node = NotationFactory.eINSTANCE.createShape(); node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); node.setType(SysMLGraphicalTypes.SHAPE_SYSML_REQUIREMENT_AS_CLASSIFER_ID); ViewUtil.insertChildView(containerView, node, index, persisted); + final EObject domainElement = getSemanticElement(semanticAdapter); node.setElement(domainElement); stampShortcut(containerView, node); // initializeFromPreferences final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint.getPreferenceStore(); - PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Class"); - PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Class"); - PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Class"); + PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Class");//$NON-NLS-1$ + PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Class");//$NON-NLS-1$ + PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Class");//$NON-NLS-1$ // createLabel(node, UMLVisualIDRegistry.getType(ClassNameEditPart.VISUAL_ID)); createLabel(node, UMLVisualIDRegistry.getType(ClassNameEditPart.VISUAL_ID)); - createCompartment(node, UMLVisualIDRegistry.getType(ClassAttributeCompartmentEditPart.VISUAL_ID), true, true, true, true); createCompartment(node, UMLVisualIDRegistry.getType(ClassOperationCompartmentEditPart.VISUAL_ID), true, true, true, true); createCompartment(node, UMLVisualIDRegistry.getType(ClassNestedClassifierCompartmentEditPart.VISUAL_ID), true, true, true, true); @@ -66,8 +193,7 @@ public class CustomInheritedElementViewProvider extends InheritedClassDiagramVie createLabel(compartment, SysMLGraphicalTypes.LABEL_SYSML_REQUIREMENT_ID_ID); createLabel(compartment, SysMLGraphicalTypes.LABEL_SYSML_REQUIREMENT_TEXT_ID); - PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(node, prefStore, "Class"); + PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(node, prefStore, "Class");//$NON-NLS-1$ return node; - } } -- cgit v1.2.3