diff options
Diffstat (limited to 'plugins/toolsmiths/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend')
-rw-r--r-- | plugins/toolsmiths/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend b/plugins/toolsmiths/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend deleted file mode 100644 index d68b809cb6a..00000000000 --- a/plugins/toolsmiths/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend +++ /dev/null @@ -1,197 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2007-2013 Borland Software Corporation 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/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Alexander Shatalin (Borland) - initial API and implementation - * Dmitry Stadnik (Borland) - creation logic was moved in commands - * Michael Golubev (Borland) - [243151] explicit source/target for links - * - #386838 - migrate to Xtend2 - * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation - * - *****************************************************************************/ -package aspects.xpt.diagram.editpolicies - -import com.google.inject.Inject -import com.google.inject.Singleton -import org.eclipse.papyrus.gmf.codegen.gmfgen.GenLink -import org.eclipse.papyrus.gmf.codegen.gmfgen.GenLinkEnd -import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService -import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand -import xpt.Common -import xpt.diagram.commands.CreateLinkCommand -import xpt.diagram.editpolicies.Utils_qvto -import xpt.editor.VisualIDRegistry -import xpt.providers.ElementTypes - -/** - * Start start of link creation. - * User click to this editpart and start dragging with link tool. - * Complete end of the command - * User points to this editpart as a link target and release mouse button. - * - * Outgoing the node is link source - * This element could be a source for this type of link. - * Incoming the node is link destination - * This element could be a target for this type of link. - * - * Parameters: - * - * diagram GenDiagram used to collect all defined links - * - * this Instance of GenLinkEnd for the element link could be creates to/from. - * This could be GenNode or GenLink in case of links to links, - * in the latter case it is assumed that its a TypeLink (so its model facet is LinkTypeModelFacet), - * because RefLinks don't have underlying semantic identity - * -*/ -@Singleton class linkCommands extends xpt.diagram.editpolicies.linkCommands { - @Inject extension Utils_qvto; - @Inject extension Common; - - @Inject aspects.xpt.diagram.editpolicies.Utils_qvto aspectsUtils_qvto - @Inject VisualIDRegistry xptVisualIDRegistry; - @Inject ElementTypes xptElementTypes; - @Inject CreateLinkCommand xptCreateLinkCommand; - - override createLinkCommands(GenLinkEnd it) ''' - - «IF it.eResource.allContents.filter(typeof (GenerateUsingElementTypeCreationCommand)).size <1» - - «generatedMemberComment()» - protected org.eclipse.gef.commands.Command getCreateRelationshipCommand( - org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) { - org.eclipse.gef.commands.Command command = req.getTarget() == null ? - getStartCreateRelationshipCommand(req) : getCompleteCreateRelationshipCommand(req); - return command != null ? command : super.getCreateRelationshipCommand(req); - } - «ENDIF» - - «generatedMemberComment()» - protected org.eclipse.gef.commands.Command getStartCreateRelationshipCommand( - org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) { - org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType = req.getElementType(); - if(requestElementType == null) { - return null; - } - org.eclipse.gmf.runtime.emf.type.core.IElementType baseElementType = requestElementType; - - «FOR l : getAllPotentialLinks(it)» - «startLinkCommands(l, it)» - «ENDFOR» - return null; - } - - «generatedMemberComment()» - protected org.eclipse.gef.commands.Command getCompleteCreateRelationshipCommand( - org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) { - org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType = req.getElementType(); - if(requestElementType == null) { - return null; - } - org.eclipse.gmf.runtime.emf.type.core.IElementType baseElementType = requestElementType; - - «FOR l : getAllPotentialLinks(it)» - «completeLinkCommands(l, it)» - «ENDFOR» - return null; - } - ''' - - override startLinkCommands(GenLink it, GenLinkEnd linkEnd) ''' - if («xptElementTypes.accessElementType(it)» == baseElementType) { - «IF createStartLinkCommand(it, linkEnd)» - - return getGEFWrapper(new «xptCreateLinkCommand.qualifiedClassName(it)»(req, - «IF createStartIncomingLinkCommand(it, linkEnd)» - req.getTarget(), req.getSource() - «ELSE» - req.getSource(), req.getTarget() - «ENDIF» - )); - «ELSE» - return null; - «ENDIF» - ''' - - override completeLinkCommands(GenLink it, GenLinkEnd linkEnd) ''' - if («xptElementTypes.accessElementType(it)» == baseElementType) { - «IF createCompleteLinkCommand(it, linkEnd)» - - return getGEFWrapper(new «xptCreateLinkCommand.qualifiedClassName(it)»(req, - «IF createCompleteOutgoingLinkCommand(it, linkEnd)» - req.getTarget(), req.getSource() - «ELSE» - req.getSource(), req.getTarget() - «ENDIF» - )); - «ELSE» - return null; - «ENDIF» - ''' - - - // We overwrite the reorientTypeLinkCommands to manages the links which use the ReorientCommand provided by the EditService - override reorientTypeLinkCommands(GenLinkEnd it) ''' - «generatedMemberComment( - 'Returns command to reorient EClass based link. New link target or source\n' + 'should be the domain model element associated with this node.\n' - )» - protected org.eclipse.gef.commands.Command getReorientRelationshipCommand( - org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest req) { - String vid = getVisualID(req); - if (vid != null) { - switch (vid) { - «FOR link : getReroutableTypeLinks(it)» - «reorientLinkCommandWithService(link) » - «ENDFOR» - «callReorientCommand(it)» - «FOR link : getReroutableTypeLinks(it)» - «reorientLinkCommandWithoutService(link) » - «ENDFOR» - } - } - return super.getReorientRelationshipCommand(req); - } - ''' - - //This function writes only : "case myLinkEditPart.VISUAL_ID:" - //for the link which uses the ReorientCommand provided by the EditService - def reorientLinkCommandWithService(GenLink it) ''' - «IF it.eResource.allContents.filter(typeof(EditPartUsingReorientService)).filter[v| v.genView.contains(it)].size != 0» - «xptVisualIDRegistry.caseVisualID(it)» - «ENDIF» - ''' - - // This function writes the code to call the ReorientCommand provided by the ReorientService - def callReorientCommand(GenLinkEnd it) ''' - «var rServiceNodes = it.eResource.allContents.filter(typeof (EditPartUsingReorientService))» - «IF !rServiceNodes.empty» - «IF !rServiceNodes.filter[rServiceNode|(!(rServiceNode.genView.filter[view|getReroutableTypeLinks(it).toList.contains(view)].empty))].empty» - org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider =org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(req.getRelationship()); - if(provider == null) { - return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE; - } - // Retrieve re-orient command from the Element Edit service - org.eclipse.gmf.runtime.common.core.command.ICommand reorientCommand = provider.getEditCommand(req); - if(reorientCommand == null) { - return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE; - } - return getGEFWrapper(reorientCommand.reduce()); - «ENDIF» - «ENDIF» - ''' - - // This function writes the code for the Links which uses their own ReorientCommand (the initial code) - def reorientLinkCommandWithoutService(GenLink it) ''' - «IF it.eResource.allContents.filter(EditPartUsingReorientService).filter[v|v.genView.contains(it)].size == 0» - «reorientLinkCommand(it)» - «ENDIF» - ''' - -} |