/******************************************************************************* * Copyright (c) 2012 VMware, Inc. * 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: * VMware, Inc. - initial API and implementation *******************************************************************************/ package org.springframework.ide.eclipse.config.graph.policies; import org.eclipse.gef.commands.Command; import org.eclipse.gef.editpolicies.ConnectionEditPolicy; import org.eclipse.gef.requests.GroupRequest; import org.springframework.ide.eclipse.config.graph.model.Activity; import org.springframework.ide.eclipse.config.graph.model.Transition; import org.springframework.ide.eclipse.config.graph.model.commands.DeleteConnectionCommand; /** * EditPolicy for Transitions. Supports deletion and "splitting", i.e. adding an * Activity that splits the transition into an incoming and outgoing connection * to the new Activity. * @author Leo Dos Santos * @author Christian Dupuis */ public class TransitionEditPolicy extends ConnectionEditPolicy { /** * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#eraseTargetFeedback(org.eclipse.gef.Request) */ // @Override // public void eraseTargetFeedback(Request request) { // if (REQ_CREATE.equals(request.getType())) { // getConnectionFigure().setLineWidth(1); // } // } /** * @see org.eclipse.gef.editpolicies.ConnectionEditPolicy#getCommand(org.eclipse.gef.Request) */ // @Override // public Command getCommand(Request request) { // if (REQ_CREATE.equals(request.getType())) { // return getSplitTransitionCommand(request); // } // return super.getCommand(request); // } // private PolylineConnection getConnectionFigure() { // return ((PolylineConnection) ((TransitionPart) getHost()).getFigure()); // } /** * @see ConnectionEditPolicy#getDeleteCommand(org.eclipse.gef.requests.GroupRequest) */ @Override protected Command getDeleteCommand(GroupRequest request) { Transition transition = (Transition) getHost().getModel(); Activity source = transition.source; DeleteConnectionCommand cmd = new DeleteConnectionCommand(source.getDiagram().getTextEditor()); cmd.setTransition(transition); cmd.setSource(source); cmd.setTarget(transition.target); return cmd; } // protected Command getSplitTransitionCommand(Request request) { // SplitTransitionCommand cmd = new SplitTransitionCommand(); // cmd.setTransition(((Transition) getHost().getModel())); // cmd.setParent(((StructuredActivity) ((TransitionPart) // getHost()).getSource().getParent().getModel())); // cmd.setNewActivity(((Activity) ((CreateRequest) // request).getNewObject())); // return cmd; // } /** * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#getTargetEditPart(org.eclipse.gef.Request) */ // @Override // public EditPart getTargetEditPart(Request request) { // if (REQ_CREATE.equals(request.getType())) { // return getHost(); // } // return null; // } /** * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#showTargetFeedback(org.eclipse.gef.Request) */ // @Override // public void showTargetFeedback(Request request) { // if (REQ_CREATE.equals(request.getType())) { // getConnectionFigure().setLineWidth(2); // } // } }