Package org.eclipse.gef.examples.logicdesigner.edit

Source Code of org.eclipse.gef.examples.logicdesigner.edit.WireBendpointEditPolicy

/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* 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:
*     IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.gef.examples.logicdesigner.edit;
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.eclipse.gef.examples.logicdesigner.model.Wire;
import org.eclipse.gef.examples.logicdesigner.model.commands.BendpointCommand;
import org.eclipse.gef.examples.logicdesigner.model.commands.CreateBendpointCommand;
import org.eclipse.gef.examples.logicdesigner.model.commands.DeleteBendpointCommand;
import org.eclipse.gef.examples.logicdesigner.model.commands.MoveBendpointCommand;

public class WireBendpointEditPolicy
  extends org.eclipse.gef.editpolicies.BendpointEditPolicy
{

protected Command getCreateBendpointCommand(BendpointRequest request) {
  CreateBendpointCommand com = new CreateBendpointCommand();
  Point p = request.getLocation();
  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.setWire((Wire)request.getSource().getModel());
  com.setIndex(request.getIndex());
  return com;
}

protected Command getMoveBendpointCommand(BendpointRequest request) {
  MoveBendpointCommand com = new MoveBendpointCommand();
  Point p = request.getLocation();
  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.setWire((Wire)request.getSource().getModel());
  com.setIndex(request.getIndex());
  return com;
}

protected Command getDeleteBendpointCommand(BendpointRequest request) {
  BendpointCommand com = new DeleteBendpointCommand();
  Point p = request.getLocation();
  com.setLocation(p);
  com.setWire((Wire)request.getSource().getModel());
  com.setIndex(request.getIndex());
  return com;
}

}
TOP

Related Classes of org.eclipse.gef.examples.logicdesigner.edit.WireBendpointEditPolicy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.