diff options
author | Laurent Wouters | 2014-03-14 13:51:50 +0000 |
---|---|---|
committer | Laurent Wouters | 2014-03-14 13:54:22 +0000 |
commit | f515b310417b386c79d9fbd2500c5373a7179aa7 (patch) | |
tree | 1785439bb2467282b35964ab71c18f8e2fffff38 /plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric | |
parent | 832ceab5e78772d2b483348f620de7b47a4c091f (diff) | |
download | org.eclipse.papyrus-f515b310417b386c79d9fbd2500c5373a7179aa7.tar.gz org.eclipse.papyrus-f515b310417b386c79d9fbd2500c5373a7179aa7.tar.xz org.eclipse.papyrus-f515b310417b386c79d9fbd2500c5373a7179aa7.zip |
399860: Papyrus shall enable to customize the creation policy of views
https://bugs.eclipse.org/bugs/show_bug.cgi?id=399860
Signed-off-by: Laurent Wouters <laurent.wouters@cea.fr>
Diffstat (limited to 'plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric')
6 files changed, 39 insertions, 123 deletions
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/META-INF/MANIFEST.MF b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/META-INF/MANIFEST.MF index 5e2d1dc918d..7b7ed041cc8 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/META-INF/MANIFEST.MF +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/META-INF/MANIFEST.MF @@ -1,4 +1,4 @@ -Manifest-Version: 1.0
+Manifest-Version: 1.0 Export-Package: org.eclipse.papyrus.sysml.diagram.parametric,
org.eclipse.papyrus.sysml.diagram.parametric.commands,
org.eclipse.papyrus.sysml.diagram.parametric.edit.part,
@@ -15,46 +15,48 @@ Bundle-ActivationPolicy: lazy Bundle-Name: %pluginName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
+Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, org.eclipse.papyrus.sysml;bundle-version="1.0.0",
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
- org.eclipse.emf.common.ui;bundle-version="2.5.0",
- org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="1.2.0",
+ org.eclipse.emf.common.ui;bundle-version="2.5.0", + org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="1.2.0", org.eclipse.papyrus.uml.diagram.composite;bundle-version="1.0.0",
- org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="1.3.0",
+ org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="1.3.0", org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.0.0",
- org.eclipse.core.expressions,
+ org.eclipse.core.expressions, org.eclipse.papyrus.sysml.service.types;bundle-version="1.0.0",
org.eclipse.papyrus.uml.service.types;bundle-version="1.0.0",
org.eclipse.papyrus.infra.widgets;bundle-version="1.0.0",
- org.eclipse.gmf.runtime.diagram.core;bundle-version="1.4.1",
- org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.5.0",
+ org.eclipse.gmf.runtime.diagram.core;bundle-version="1.4.1", + org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.5.0", org.eclipse.papyrus.uml.tools;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.0.0",
org.eclipse.papyrus.infra.services.edit;bundle-version="1.0.0",
org.eclipse.papyrus.infra.gmfdiag.navigation;bundle-version="1.0.0",
- org.eclipse.ui.ide;bundle-version="3.8.0",
+ org.eclipse.ui.ide;bundle-version="3.8.0", org.eclipse.papyrus.uml.tools.utils;bundle-version="1.0.0",
- org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0", org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.0.0",
org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.0.0",
- org.eclipse.gmf.tooling.runtime;bundle-version="3.1.0",
+ org.eclipse.gmf.tooling.runtime;bundle-version="3.1.0", org.eclipse.papyrus.sysml.diagram.internalblock;bundle-version="1.0.0",
org.eclipse.papyrus.uml.diagram.common;bundle-version="1.0.0",
org.eclipse.papyrus.sysml.diagram.common;bundle-version="1.0.0",
org.eclipse.papyrus.uml.diagram.clazz;bundle-version="1.0.0",
org.eclipse.papyrus.views.properties;bundle-version="1.0.0",
- org.eclipse.core.databinding.observable;bundle-version="1.4.1",
- org.eclipse.papyrus.views.properties.model;bundle-version="1.0.0"
+ org.eclipse.core.databinding.observable;bundle-version="1.4.1", + org.eclipse.papyrus.views.properties.model;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0"
Bundle-Vendor: %providerName
Bundle-Version: 1.0.0.qualifier
-Bundle-ManifestVersion: 2
+Bundle-ManifestVersion: 2 Bundle-Activator: org.eclipse.papyrus.sysml.diagram.parametric.Activat
or
Bundle-SymbolicName: org.eclipse.papyrus.sysml.diagram.parametric;sing
leton:=true
-Import-Package: org.eclipse.gmf.runtime.notation
+Import-Package: org.eclipse.gmf.runtime.notation 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 5d692b0f0e7..90703712cbc 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 @@ -46,59 +46,10 @@ name="Show/Hide Constraint expression"/> </extension> -<extension point="org.eclipse.ui.handlers"> - <handler - class="org.eclipse.papyrus.sysml.diagram.parametric.CreateParametricDiagramWithNavigationHandler" - commandId="org.eclipse.papyrus.sysml.diagram.parametric.CreateCommand"> - <activeWhen> - <with variable="activeEditorId"> - <equals value="org.eclipse.papyrus.infra.core.papyrusEditor" /> - </with> - </activeWhen> - </handler> -</extension> <!-- Diagram creation command registration in menu and toolbar --> <extension point="org.eclipse.ui.menus"> - <menuContribution locationURI="menu:org.eclipse.papyrus.ui.menu"> - <menu id="org.eclipse.papyrus.uml.diagram.ui.menu.diagrams" label="Diagrams"> - <command commandId="org.eclipse.papyrus.sysml.diagram.parametric.CreateCommand" - icon="icons/obj16/Diagram_Parametric.png" label="Create a new Parametric Diagram" - style="push" tooltip="Create a new Parametric Diagram"> - <visibleWhen> - <reference definitionId="org.eclipse.papyrus.sysml.diagram.common.IsPapyrusActiveWithSysML"/> - </visibleWhen> - - </command> - </menu> - </menuContribution> - - <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar"> - <toolbar id="org.eclipse.papyrus.uml.diagram.ui.toolbar"> - <command commandId="org.eclipse.papyrus.sysml.diagram.parametric.CreateCommand" - icon="icons/obj16/Diagram_Parametric.png" label="Create a new Parametric Diagram" - style="push" tooltip="Create a new Parametric Diagram"> - <visibleWhen> - <reference definitionId="org.eclipse.papyrus.sysml.diagram.common.IsPapyrusActiveWithSysML"/> - </visibleWhen> - - </command> - </toolbar> - </menuContribution> - - <menuContribution locationURI="popup:org.eclipse.papyrus.views.modelexplorer.popupmenu.creatediagram"> - <command commandId="org.eclipse.papyrus.sysml.diagram.parametric.CreateCommand" - icon="icons/obj16/Diagram_Parametric.png" - label="Create a new Parametric Diagram" - style="push" - tooltip="Create a new Parametric Diagram"> - <visibleWhen> - <reference definitionId="org.eclipse.papyrus.sysml.diagram.common.IsPapyrusActiveWithSysML"/> - </visibleWhen> - - </command> - </menuContribution> <menuContribution locationURI="popup:org.eclipse.papyrus.uml.diagram.ui.popupmenu.format"> <menu diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCreateCommand.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCreateCommand.java index dd2a875a2a8..a8302d4f326 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCreateCommand.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src-gen/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCreateCommand.java @@ -9,6 +9,7 @@ * Contributors: * Régis CHEVREL: chevrel.regis <at> gmail.com * CEA LIST - Initial API and implementation + * Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Viewpoints application * *****************************************************************************/ package org.eclipse.papyrus.sysml.diagram.parametric; @@ -31,6 +32,7 @@ import org.eclipse.papyrus.infra.gmfdiag.common.AbstractPapyrusGmfCreateDiagramC import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils; import org.eclipse.papyrus.infra.services.edit.service.IElementEditService; import org.eclipse.papyrus.infra.services.edit.utils.GMFCommandUtils; +import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype; import org.eclipse.papyrus.sysml.blocks.Block; import org.eclipse.papyrus.sysml.diagram.common.utils.SysMLGraphicalTypes; import org.eclipse.papyrus.sysml.diagram.parametric.provider.ElementTypes; @@ -41,17 +43,18 @@ import org.eclipse.uml2.uml.Element; import org.eclipse.uml2.uml.Package; import org.eclipse.uml2.uml.util.UMLUtil; -// Start of user code custom imports -// End of user code - +/** + * Represents a creation command for a SysML parametric diagram + * @author Laurent Wouters + */ public class ParametricDiagramCreateCommand extends AbstractPapyrusGmfCreateDiagramCommandHandler { - + /** * {@inheritDoc} */ @Override protected String getDefaultDiagramName() { - return "NewParametricDiagram"; //$NON-NLS-1$ + return "New Parametric Diagram"; //$NON-NLS-1$ } /** @@ -74,27 +77,26 @@ public class ParametricDiagramCreateCommand extends AbstractPapyrusGmfCreateDiag * {@inheritDoc} */ @Override - protected Diagram createDiagram(Resource diagramResource, EObject owner, String name) { + protected Diagram doCreateDiagram(Resource diagramResource, EObject owner, EObject element, ViewPrototype prototype, String name) { // Start of user code Custom diagram creation Diagram diagram = null; - if(owner instanceof org.eclipse.uml2.uml.Class) { - org.eclipse.uml2.uml.Class cOwner = (org.eclipse.uml2.uml.Class)owner; + if (element instanceof org.eclipse.uml2.uml.Class) { + org.eclipse.uml2.uml.Class cOwner = (org.eclipse.uml2.uml.Class)element; Block block = UMLUtil.getStereotypeApplication(cOwner, Block.class); if(block != null) { - canvasDomainElement = (EObject)owner; - Package owningPackage = ((Element)owner).getNearestPackage(); - diagram = super.createDiagram(diagramResource, owningPackage, name); + canvasDomainElement = (EObject)element; + Package owningPackage = ((Element)element).getNearestPackage(); + diagram = super.doCreateDiagram(diagramResource, owner, owningPackage, prototype, name); } - } else if(owner instanceof Package) { + } else if (element instanceof Package) { try { canvasDomainElement = null; - - IEditCommandRequest request = new CreateElementRequest((Package)owner, SysMLElementTypes.BLOCK); - IElementEditService commandService = ElementEditServiceUtils.getCommandProvider(owner); + IEditCommandRequest request = new CreateElementRequest((Package)element, SysMLElementTypes.BLOCK); + IElementEditService commandService = ElementEditServiceUtils.getCommandProvider(element); if(commandService == null) { return null; } @@ -104,7 +106,7 @@ public class ParametricDiagramCreateCommand extends AbstractPapyrusGmfCreateDiag createElementCommand.execute(new NullProgressMonitor(), null); EObject block = GMFCommandUtils.getCommandEObjectResult(createElementCommand); canvasDomainElement = block; - diagram = super.createDiagram(diagramResource, (Package)owner, name); + diagram = super.doCreateDiagram(diagramResource, owner, (Package)element, prototype, name); } } catch (ExecutionException e) { diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/CreateParametricDiagramWithNavigationHandler.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/CreateParametricDiagramWithNavigationHandler.java deleted file mode 100644 index a116905a594..00000000000 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/CreateParametricDiagramWithNavigationHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2013 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: - * Régis CHEVREL: chevrel.regis <at> gmail.com - * CEA LIST - Initial API and implementation - * - *****************************************************************************/ -package org.eclipse.papyrus.sysml.diagram.parametric; - -import org.eclipse.papyrus.infra.gmfdiag.navigation.CreateDiagramWithNavigationHandler; - - -public class CreateParametricDiagramWithNavigationHandler extends CreateDiagramWithNavigationHandler { - - public CreateParametricDiagramWithNavigationHandler() { - super(new ParametricDiagramCreateCommand(), new ParametricDiagramCondition()); - } - -} diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCondition.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCondition.java index ec094bdaa2d..db8c22d2667 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCondition.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/ParametricDiagramCondition.java @@ -9,14 +9,13 @@ * Contributors: * chevrel.regis@gmail.com * CEA LIST - Initial API and implementation + * Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Viewpoints application * *****************************************************************************/ package org.eclipse.papyrus.sysml.diagram.parametric; import org.eclipse.emf.ecore.EObject; import org.eclipse.papyrus.infra.core.extension.commands.PerspectiveContextDependence; -import org.eclipse.papyrus.sysml.blocks.Block; -import org.eclipse.uml2.uml.util.UMLUtil; /** * ParametricDiagramCondition to set conditions for the diagram creation @@ -28,19 +27,6 @@ public class ParametricDiagramCondition extends PerspectiveContextDependence { */ @Override public boolean create(EObject selectedElement) { - if(super.create(selectedElement)) { - // Could create a Parametric Diagram on a Block - if(selectedElement instanceof org.eclipse.uml2.uml.Class) { - org.eclipse.uml2.uml.Class clazz = (org.eclipse.uml2.uml.Class)selectedElement; - if(UMLUtil.getStereotypeApplication(clazz, Block.class) != null) { - return true; - } - } - // Could create a Parametric Diagram on a Package, an intermediate Block will be created - else if(selectedElement instanceof org.eclipse.uml2.uml.Package) { - return true; - } - } return false; } } diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/commands/CustomParametricContextLinkCreateCommand.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/commands/CustomParametricContextLinkCreateCommand.java index 7f1ebc23682..5b82c60ff3c 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/commands/CustomParametricContextLinkCreateCommand.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/src/org/eclipse/papyrus/sysml/diagram/parametric/commands/CustomParametricContextLinkCreateCommand.java @@ -90,7 +90,7 @@ public class CustomParametricContextLinkCreateCommand extends if(!canExecute()) {
throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
}
- Namespace context = resolveTargetNamespace();
+ Namespace context = getTarget();
if(getSource() != null && context != null) {
getSource().setContext(context);
String defaultNameWithIncrementFromBase = NamedElementHelper.getDefaultNameWithIncrementFromBase(Constraint.class.getSimpleName(), context.getOwnedRules(), getSource());
@@ -122,7 +122,7 @@ public class CustomParametricContextLinkCreateCommand extends * Get the property Namespace in case of property typed by a Namespace
*/
@Override
- protected Namespace resolveTargetNamespace() {
+ protected Namespace getTarget() {
EObject targetNamespace;
if (target instanceof Property) {
targetNamespace = ((Property) target).getType();
|