diff options
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.xtend | 110 |
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 + } } |