我想在连接的开始或结束位置添加标签。但是在这里我没有找到除ManhattanMidpointLocator之外的定位器。那我该怎么做呢?如何在连接处放置标签?
请找到我的代码,如下所示
draw2d.LabelConnection = function() {
draw2d.Connection.call(this);
this.sourcePort = null;
this.targetPort = null;
this.lineSegments = [];
this.setColor(new draw2d.Color(0, 255, 0));
this.setLineWidth(2);
var label = new draw2d.Label("Message");
label.setBackgroundColor(new draw2d.Color(230, 230, 250));
label.setBorder(new draw2d.LineBorder(1));
this.addFigure(label, new draw2d.Locator());
};
draw2d.LabelConnection.prototype = new draw2d.Connection();
draw2d.LabelConnection.prototype.type = "draw2d.LabelConnection";
以上代码在(0,0)位置显示标签。 请帮助我。
答案 0 :(得分:0)
我不确定“任何位置”是什么意思,但如果你实现自己的定位器,那就非常简单。
查看ManhattanMidpointLocator的代码。在重定位功能中,您了解画布上连接的所有内容。从那里你只需要发明一个标签位置的计算。
答案 1 :(得分:0)
现在使用Graphiti代替Draw2D,但定位器的代码应如下所示(未经测试):
draw2d.StartConnectionLocator=function(/*:draw2d.Connection*/ connection)
{
draw2d.ConnectionLocator.call(this,connection);
};
draw2d.StartConnectionLocator.prototype.relocate=function(/*:draw2d.Figure*/ target)
{
var conn = this.getConnection();
var points = conn.getPoints();
var index = Math.floor((points.getSize() -2) / 2);
if (points.getSize() <= index+1)
return;
var startPoint = points.get(0);
var myPosition = new draw2d.Point();
myPosition.x = startPoint.x +5;
myPosition.y = startPoint.y +5;
target.setPosition(myPosition.x,myPosition.y);
};
答案 2 :(得分:0)
使用:
Connection.get StartPoint()来确定连接的起点 检索连接的所有段。
问候