package Draw2D_1;
import org.eclipse.draw2d.AbstractRouter;
import org.eclipse.draw2d.Connection;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
public class ChipConnectionRouter extends AbstractRouter{
static Point A_POINT;
public ChipConnectionRouter(ChipTrough chipTrough){
}
public void route(Connection conn) {
// 清空连线的所有点
PointList points = conn.getPoints();
points.removeAllPoints();
// 得到目标和源参考点
Point sourceRef = conn.getSourceAnchor().getReferencePoint();
System.out.println(sourceRef+ " 进来起点坐标");
Point targetRef = conn.getTargetAnchor().getReferencePoint();
System.out.println(sourceRef+ " 进来目标点坐标坐标");
A_POINT = new Point(sourceRef.x, targetRef.y);
A_POINT.setLocation(sourceRef.x, targetRef.y);
// A_POINT.setLocation(sourceRef.x, targetRef.y);
// 得到起始点和结束点
Point startPoint = conn.getSourceAnchor().getLocation(A_POINT);
Point endPoint = conn.getTargetAnchor().getLocation(A_POINT);
// 添加起始点
A_POINT.setLocation(startPoint);
conn.translateToRelative(A_POINT);
System.out.println(A_POINT+ " 起点");
points.addPoint(A_POINT);
// 添加转折点
Point p = new Point(sourceRef.x-40,sourceRef.y+8);
points.addPoint(p);
Point p1 = new Point(sourceRef.x-40,sourceRef.y+130);
points.addPoint(p1);
Point p2 = new Point(targetRef.x+10,sourceRef.y+130);
points.addPoint(p2);
// A_POINT.setLocation(sourceRef.x, targetRef.y);
// conn.translateToRelative(A_POINT);
// System.out.println(A_POINT+ " 转折");
// points.addPoint(A_POINT);
// 添加结束点
A_POINT.setLocation(endPoint);
conn.translateToRelative(A_POINT);
System.out.println(A_POINT+ " 终点");
points.addPoint(A_POINT);
// 设置连线经过的所有点
conn.setPoints(points);
}
}
import org.eclipse.draw2d.AbstractRouter;
import org.eclipse.draw2d.Connection;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
public class ChipConnectionRouter extends AbstractRouter{
static Point A_POINT;
public ChipConnectionRouter(ChipTrough chipTrough){
}
public void route(Connection conn) {
// 清空连线的所有点
PointList points = conn.getPoints();
points.removeAllPoints();
// 得到目标和源参考点
Point sourceRef = conn.getSourceAnchor().getReferencePoint();
System.out.println(sourceRef+ " 进来起点坐标");
Point targetRef = conn.getTargetAnchor().getReferencePoint();
System.out.println(sourceRef+ " 进来目标点坐标坐标");
A_POINT = new Point(sourceRef.x, targetRef.y);
A_POINT.setLocation(sourceRef.x, targetRef.y);
// A_POINT.setLocation(sourceRef.x, targetRef.y);
// 得到起始点和结束点
Point startPoint = conn.getSourceAnchor().getLocation(A_POINT);
Point endPoint = conn.getTargetAnchor().getLocation(A_POINT);
// 添加起始点
A_POINT.setLocation(startPoint);
conn.translateToRelative(A_POINT);
System.out.println(A_POINT+ " 起点");
points.addPoint(A_POINT);
// 添加转折点
Point p = new Point(sourceRef.x-40,sourceRef.y+8);
points.addPoint(p);
Point p1 = new Point(sourceRef.x-40,sourceRef.y+130);
points.addPoint(p1);
Point p2 = new Point(targetRef.x+10,sourceRef.y+130);
points.addPoint(p2);
// A_POINT.setLocation(sourceRef.x, targetRef.y);
// conn.translateToRelative(A_POINT);
// System.out.println(A_POINT+ " 转折");
// points.addPoint(A_POINT);
// 添加结束点
A_POINT.setLocation(endPoint);
conn.translateToRelative(A_POINT);
System.out.println(A_POINT+ " 终点");
points.addPoint(A_POINT);
// 设置连线经过的所有点
conn.setPoints(points);
}
}