Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/impl/diagram/editparts/CompartmentEditPart.xtend')
-rw-r--r--plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/impl/diagram/editparts/CompartmentEditPart.xtend110
1 files changed, 53 insertions, 57 deletions
diff --git a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/impl/diagram/editparts/CompartmentEditPart.xtend b/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/impl/diagram/editparts/CompartmentEditPart.xtend
index 7f541f1b2da..58914aeff5a 100644
--- a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/impl/diagram/editparts/CompartmentEditPart.xtend
+++ b/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/impl/diagram/editparts/CompartmentEditPart.xtend
@@ -1,40 +1,40 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2020 Borland Software Corporation, CEA LIST, Artal
+/*****************************************************************************
+ * Copyright (c) 2006, 2009, 2021 Borland Software Corporation, CEA LIST, ARTAL and others
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
* SPDX-License-Identifier: EPL-2.0
*
- * Contributors:
- * Dmitry Stadnik (Borland) - initial API and implementation
- * Alexander Shatalin (Borland) - initial API and implementation
- * Michael Golubev (Montages) - #386838 - migrate to Xtend2
- * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Bug 569174
+ * Contributors:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Etienne Allogo (ARTAL) - etienne.allogo@artal.fr - Bug 569174 : 1.4 Merge papyrus extension templates into codegen.xtend
*****************************************************************************/
package impl.diagram.editparts
import com.google.inject.Inject
+import com.google.inject.Singleton
import org.eclipse.papyrus.gmf.codegen.gmfgen.GenCompartment
import org.eclipse.papyrus.gmf.codegen.gmfgen.GenDiagram
import org.eclipse.papyrus.gmf.codegen.gmfgen.ViewmapLayoutType
import org.eclipse.papyrus.gmf.codegen.xtend.annotations.Localization
import xpt.Common
-import xpt.Common_qvto
import xpt.Externalizer
import xpt.diagram.editparts.Utils_qvto
-import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.GenLink
-@com.google.inject.Singleton class CompartmentEditPart {
+import xpt.CodeStyle
+
+@Singleton class CompartmentEditPart {
@Inject extension Common;
- @Inject extension Common_qvto;
+ @Inject extension CodeStyle;
@Inject extension Utils_qvto;
@Inject Externalizer xptExternalizer;
@Inject xpt.diagram.editparts.Common xptEditpartsCommon;
- @Inject ElementTypes xptElementTypes;
def className(GenCompartment it) '''«editPartClassName»'''
@@ -50,6 +50,7 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
def hasModelChildrenChanged(GenCompartment it) '''
«IF listLayout»
«generatedMemberComment»
+ «overrideC»
protected boolean hasModelChildrenChanged(org.eclipse.emf.common.notify.Notification evt) {
return false;
}
@@ -58,35 +59,50 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
def getCompartmentName(GenCompartment it) '''
«generatedMemberComment»
+ «overrideC»
public String getCompartmentName() {
return «xptExternalizer.accessorCall(diagram.editorGen, i18nKeyForCompartmentTitle(it))»;
}
'''
- def createFigure(GenCompartment it) '''
- «IF !needsTitle»
- «/*By default titles are shown even if there are no TitleStyle, we need to switch it off*/generatedMemberComment»
- public org.eclipse.draw2d.IFigure createFigure() {
- org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure result = (org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure) super.createFigure();
- result.setTitleVisibility(false);
- return result;
- }
- «ENDIF»
- '''
+ def createFigure(GenCompartment it) {
+ if (hasExternalSuperClass(it,
+ 'org.eclipse.papyrus.uml.diagram.activity.edit.part.ShapeCompartmentWithoutScrollbarsEditPart')) {
+ '''
+ «overrideC»
+ public org.eclipse.draw2d.IFigure createFigure() {
+ return super.createFigure();
+ }
+ '''
+ } else {
+
+ '''
+ «IF !needsTitle»
+ «/*By default titles are shown even if there are no TitleStyle, we need to switch it off*/generatedMemberComment»
+ «overrideC»
+ public org.eclipse.draw2d.IFigure createFigure() {
+ org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure result = (org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure) super.createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+ «ENDIF»
+ '''
+ }
+ }
- def createDefaultEditPoliciesBody(GenCompartment it) '''
+ def CharSequence createDefaultEditPoliciesBody(GenCompartment it) '''
super.createDefaultEditPolicies();
«IF canCollapse»
installEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy());
«ENDIF»
«xptEditpartsCommon.installSemanticEditPolicy(it)»
- «IF childNodes.notEmpty»
- «xptEditpartsCommon.installCreationEditPolicy(it)»
+ «IF ! childNodes.empty»
+ installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCreationEditPolicy());
installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.DRAG_DROP_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy());
+ installEditPolicy(org.eclipse.papyrus.uml.diagram.common.editpolicies.PasteEditPolicy.PASTE_ROLE, new org.eclipse.papyrus.uml.diagram.common.editpolicies.PasteEditPolicy());
«ENDIF»
«xptEditpartsCommon.installCanonicalEditPolicy(it)»
«xptEditpartsCommon.behaviour(it)»
- «additionalEditPolicies(it)»
'''
def additionalEditPolicies(GenCompartment it) ''''''
@@ -94,6 +110,7 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
def refreshVisuals(GenCompartment it) '''
«IF isStoringChildPositions(node)»
«generatedMemberComment»
+ «overrideC»
protected void refreshVisuals() {
super.refreshVisuals();
refreshBounds();
@@ -115,6 +132,7 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
def refreshBounds(GenCompartment it) '''
«IF isStoringChildPositions(node)»
«generatedMemberComment»
+ «overrideC»
protected void refreshBounds() {
int x = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_X())).intValue();
int y = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_Y())).intValue();
@@ -127,6 +145,7 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
def setRatio(GenCompartment it) '''
«generatedMemberComment»
+ «overrideC»
protected void setRatio(Double ratio) {
«IF ViewmapLayoutType::UNKNOWN_LITERAL == node.layoutType»
if (getFigure().getParent().getLayoutManager() instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout) {
@@ -141,33 +160,8 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
def getTargetEditPartMethod(GenCompartment it) '''
«generatedMemberComment»
+ «overrideC»
public org.eclipse.gef.EditPart getTargetEditPart(org.eclipse.gef.Request request) {
- «IF childNodes.notEmpty»
- if (request instanceof org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest) {
- org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter adapter = ((org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest) request).getViewAndElementDescriptor().getCreateElementRequestAdapter();
- org.eclipse.gmf.runtime.emf.type.core.IElementType type = (org.eclipse.gmf.runtime.emf.type.core.IElementType) adapter.getAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType.class);
- «FOR childNode : it.childNodes»
- if (type == «xptElementTypes.accessElementType(childNode)») {
- return this;
- }
- «ENDFOR»
- return getParent().getTargetEditPart(request);
- }
- if (request instanceof org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeConnectionRequest) {
- «IF haveOneOfChildNodesIncomimgLinks(it)»
- if (org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_CONNECTION_END.equals(request.getType())) {
- for (Object type : ((org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeConnectionRequest) request).getElementTypes()) {
- if (type instanceof org.eclipse.gmf.runtime.emf.type.core.IElementType) {
- org.eclipse.gmf.runtime.emf.type.core.IElementType elementType = (org.eclipse.gmf.runtime.emf.type.core.IElementType) type;
- if («FOR GenLink link : collectIncomingLinks(it) SEPARATOR " || "»elementType.equals(«xptElementTypes.accessElementType(link)»)«ENDFOR»)
- return super.getTargetEditPart(request);
- }
- }
- }
- «ENDIF»
- return getParent().getTargetEditPart(request);
- }
- «ENDIF»
return super.getTargetEditPart(request);
}
'''
@@ -179,7 +173,7 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
'''
@Localization def internal_i18nAccessors(GenCompartment it) //
- '''«IF null != title»«xptExternalizer.accessorField(i18nKeyForCompartmentTitle(it))»«ENDIF»'''
+ '''«IF null !== title»«xptExternalizer.accessorField(i18nKeyForCompartmentTitle(it))»«ENDIF»'''
@Localization def i18nValues(GenDiagram it) '''
«FOR compartment : it.compartments»
@@ -188,12 +182,14 @@ import xpt.providers.ElementTypes import org.eclipse.papyrus.gmf.codegen.gmfgen.
'''
@Localization def internal_i18nValues(GenCompartment it) '''
- «IF null != title»«xptExternalizer.messageEntry(i18nKeyForCompartmentTitle(it), title)»«ENDIF»
+ «IF null !== title»«xptExternalizer.messageEntry(i18nKeyForCompartmentTitle(it), title)»«ENDIF»
'''
@Localization def String i18nKeyForCompartmentTitle(GenCompartment compartment) {
return className(compartment) + '.title'
}
-
+ def boolean hasExternalSuperClass(GenCompartment it, String className) {
+ superEditPart == className
+ }
}

Back to the top