/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.diagram.ui.connection;
import org.eclipse.draw2d.Connection;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.requests.BendpointRequest;
import org.teiid.designer.diagram.ui.connection.commands.BendpointCommand;
import org.teiid.designer.diagram.ui.connection.commands.CreateBendpointCommand;
import org.teiid.designer.diagram.ui.connection.commands.DeleteBendpointCommand;
import org.teiid.designer.diagram.ui.connection.commands.MoveBendpointCommand;
/**
* @since 8.0
*/
public class LinkBendpointEditPolicy extends org.eclipse.gef.editpolicies.BendpointEditPolicy {
@Override
protected Command getCreateBendpointCommand(BendpointRequest request) {
Point p = request.getLocation();
CreateBendpointCommand com = new CreateBendpointCommand(p);
Connection conn = getConnection();
conn.translateToRelative(p);
com.setLocation(p);
Point ref1 = getConnection().getSourceAnchor().getReferencePoint();
Point ref2 = getConnection().getTargetAnchor().getReferencePoint();
conn.translateToRelative(ref1);
conn.translateToRelative(ref2);
// com.setRelativeDimensions(p.getDifference(ref1), p.getDifference(ref2));
com.setConnectionModel((NodeConnectionModel)request.getSource().getModel());
com.setIndex(request.getIndex());
return com;
}
@Override
protected Command getMoveBendpointCommand(BendpointRequest request) {
Point p = request.getLocation();
MoveBendpointCommand com = new MoveBendpointCommand(p);
Connection conn = getConnection();
conn.translateToRelative(p);
com.setLocation(p);
Point ref1 = getConnection().getSourceAnchor().getReferencePoint();
Point ref2 = getConnection().getTargetAnchor().getReferencePoint();
conn.translateToRelative(ref1);
conn.translateToRelative(ref2);
// com.setRelativeDimensions(p.getDifference(ref1), p.getDifference(ref2));
com.setConnectionModel((NodeConnectionModel)request.getSource().getModel());
com.setIndex(request.getIndex());
return com;
}
@Override
protected Command getDeleteBendpointCommand(BendpointRequest request) {
BendpointCommand com = new DeleteBendpointCommand();
Point p = request.getLocation();
com.setLocation(p);
com.setConnectionModel((NodeConnectionModel)request.getSource().getModel());
com.setIndex(request.getIndex());
return com;
}
}