diff options
author | Mickael ADAM | 2014-11-18 16:40:47 +0000 |
---|---|---|
committer | Mickael ADAM | 2014-11-20 15:37:37 +0000 |
commit | 44689e90adf4724399b430d10a8fe9372197fbeb (patch) | |
tree | 988f7129bdf131163929909e40c9ef6958bffd00 /plugins/developer/org.eclipse.papyrus.def | |
parent | 5a1e5a0cbe42f2dbd1894bff6bdbd985bab179b9 (diff) | |
download | org.eclipse.papyrus-44689e90adf4724399b430d10a8fe9372197fbeb.tar.gz org.eclipse.papyrus-44689e90adf4724399b430d10a8fe9372197fbeb.tar.xz org.eclipse.papyrus-44689e90adf4724399b430d10a8fe9372197fbeb.zip |
440201: [Diagram] Class diagram shapes shall be refactored
https://bugs.eclipse.org/bugs/show_bug.cgi?id=440201
Patch Set 1:
-Improve GmfGenExtension:
Now override createNodePlate throught gmfgen
add edit policy for external label
-Clean and fix some bug in roundedCompartment
Patch Set 2:
- Used of RoundedRectangleNodePlate for all node by default, let the
possibility to override it.
Change-Id: Ie64ad8e049bd4d11cb9075987fee555ba4b97a3c
Signed-off-by: Mickael ADAM <mickael.adam@ALL4TEC.net>
440201: [Diagram] Class diagram shapes shall be refactored
https://bugs.eclipse.org/bugs/show_bug.cgi?id=440201
-Improve GmfGenExtension:
Now override createNodePlate throught gmfgen
add edit policy for external label
-Clean and fix some bug in roundedCompartment
Change-Id: Ie64ad8e049bd4d11cb9075987fee555ba4b97a3c
Signed-off-by: Mickael ADAM <mickael.adam@ALL4TEC.net>
Diffstat (limited to 'plugins/developer/org.eclipse.papyrus.def')
5 files changed, 79 insertions, 20 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore index 37f57489b1b..34f20c26406 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore @@ -7,3 +7,4 @@ /LinkEditPart.java /LinkLabelEditPart.java /NodeLabelEditPart.java +/ExternalNodeLabelEditPart.java diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/LinkLabelEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/LinkLabelEditPart.xtend index 03513d7a8c8..7dcf4beeee4 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/LinkLabelEditPart.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/LinkLabelEditPart.xtend @@ -19,6 +19,7 @@ import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference import xpt.Common import org.eclipse.gmf.codegen.gmfgen.CustomBehaviour +import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView @Singleton class LinkLabelEditPart extends diagram.editparts.LinkLabelEditPart{ @Inject extension Common; @@ -50,25 +51,21 @@ import org.eclipse.gmf.codegen.gmfgen.CustomBehaviour ««« END: PapyrusGenCode ''' - override extendsList(GenLinkLabel it) '''extends org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusLabelEditPart''' - - override createDefaultEditPolicies(GenLinkLabel it) ''' - /** - * @generated Papyrus Generation - */ - @Override - protected void createDefaultEditPolicies() { - super.createDefaultEditPolicies(); - installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); - installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new «diagram.getTextSelectionEditPolicyQualifiedClassName()»()); - ««« BEGIN: PapyrusGenCode - installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.PapyrusLinkLabelDragPolicy()); - ««« END: PapyrusGenCode - ««« Get the added custom behavoir - «FOR CustomBehaviour:it.behaviour.filter(typeof (CustomBehaviour))» - installEditPolicy(«CustomBehaviour.key», new «CustomBehaviour.editPolicyQualifiedClassName»()); - «ENDFOR» - } +// override extendsList(GenLinkLabel it) '''extends org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusLabelEditPart''' + + override extendsList(GenLinkLabel it) ''' + «««BEGIN: PapyrusGenCode + «««specify a java super class for external nodes + «IF it.eResource.allContents.filter(typeof (ExtendedGenView)).filter[v | v.genView.contains(it) && v.superOwnedEditPart != null].size != 0» + extends «FOR extendedObject : it.eResource.allContents.filter(typeof (ExtendedGenView)).filter[v|v.genView.contains(it) && v.superOwnedEditPart != null].toIterable» + «extendedObject.superOwnedEditPart» + «ENDFOR» + «««END: PapyrusGenCode + «ELSE» + extends org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusLabelEditPart + «ENDIF» ''' - + + + } diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend new file mode 100644 index 00000000000..2a80b048294 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend @@ -0,0 +1,32 @@ +/*****************************************************************************
+ * Copyright (c) 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package aspects.impl.diagram.editparts
+
+import xpt.diagram.editparts.Common
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel
+import com.google.inject.Inject
+
+/**
+ * @author Mickael ADAM
+ *
+ */
+class ExternalNodeLabelEditPart extends impl.diagram.editparts.ExternalNodeLabelEditPart {
+
+ override additionalEditPolicies(GenExternalNodeLabel it){
+ '''
+ installEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.ExternalLabelPrimaryDragRoleEditPolicy());
+ '''
+ }
+
+}
\ No newline at end of file diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/LinkLabelEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/LinkLabelEditPart.xtend index 80c54cde444..1175194be6e 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/LinkLabelEditPart.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/LinkLabelEditPart.xtend @@ -38,5 +38,10 @@ import xpt.diagram.editparts.Common ««« End Papyrus Code super.handleNotificationEvent(event); ''' + + override additionalEditPolicies(GenLinkLabel it) + ''' + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.PapyrusLinkLabelDragPolicy()); + ''' } diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend index fdcba4dc643..192306b028c 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend @@ -33,6 +33,8 @@ import utils.EditPartsUtils_qvto import xpt.Common import xpt.diagram.editparts.EditPartFactory import xpt.diagram.editparts.Utils_qvto +import xpt.diagram.ViewmapAttributesUtils_qvto +import org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate @Singleton class NodeEditPart extends impl.diagram.editparts.NodeEditPart { @Inject extension Common; @@ -40,6 +42,8 @@ import xpt.diagram.editparts.Utils_qvto @Inject extension EditPartsUtils_qvto; @Inject extension VisualIDRegistry; + @Inject extension ViewmapAttributesUtils_qvto; + @Inject extension Utils_qvto; @Inject extension xpt.diagram.Utils_qvto; @Inject EditPartFactory xptEditPartFactory; @@ -174,6 +178,26 @@ override addFixedChild (GenNode it)''' // } // ''' + override createNodePlate(GenNode it) ''' + «IF it.eResource.allContents.filter(typeof(SpecificNodePlate)).filter[v |v.editParts.contains(it) && v.nodePlateQualifiedName!=null].size != 0» + «val editPart = it.eResource.allContents.filter(typeof(SpecificNodePlate)).filter[v |v.editParts.contains(it) && v.nodePlateQualifiedName!=null].head» + protected org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure createNodePlate() { + «editPart.nodePlateQualifiedName» result = new «editPart.nodePlateQualifiedName»(«IF getDiagram().isPixelMapMode()»«defaultSizeWidth(viewmap, 40)», «defaultSizeHeight(viewmap, 40)»«ELSE»getMapMode().DPtoLP(«defaultSizeWidth(viewmap, 40)»), getMapMode().DPtoLP(«defaultSizeHeight(viewmap, 40)»)«ENDIF»); + «setupNodePlate» + return result; + } + «««END: BEGIN: PapyrusGenCode + «ELSE» + ««« «super.createNodePlate(it)» + ««« By default node edit part are now RoundedRectangleNodePlateFigure + protected org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure createNodePlate() { + org.eclipse.papyrus.infra.gmfdiag.common.figure.node.RoundedRectangleNodePlateFigure result = new org.eclipse.papyrus.infra.gmfdiag.common.figure.node.RoundedRectangleNodePlateFigure(«IF getDiagram().isPixelMapMode()»«defaultSizeWidth(viewmap, 40)», «defaultSizeHeight(viewmap, 40)»«ELSE»getMapMode().DPtoLP(«defaultSizeWidth(viewmap, 40)»), getMapMode().DPtoLP(«defaultSizeHeight(viewmap, 40)»)«ENDIF»); + «setupNodePlate» + return result; + } + «ENDIF» + ''' + override borderItemSelectionEditPolicy(GenNode it)''' «IF hasBorderItems(it)» org.eclipse.gmf.runtime.notation.View childView = (org.eclipse.gmf.runtime.notation.View) child.getModel(); |