我试图改变连接活动图中两个元素的连接器的方式。我使用来自sparx的Java (eaapi.jar)。我的功能是连接两个元素:
public void connectTwoElements(Element source, Element target) {
Connector con = source.GetConnectors().AddNew("","ControlFlow");
con.SetSupplierID(target.GetElementID());
con.Update();
source.GetConnectors().Refresh();
}我的目标是改变连接器的方式,就像下面正确的场景一样。连接器到目标元素的方式应该有一个边缘点来创建一个90°的角度。

我没有找到类Connector的任何属性来实现它。我希望我可以使用这样的函数: myConnector.addBetweenPoint(int,int );
也许任何人都能帮我:)
你好,菲尔
编辑:
在Nizam Mohamed和Uffe在下面帮助我之后,我修改了我的方法:
public void connectTwoElements(Element source, Element target, String connectorLabel) {
Connector con = source.GetConnectors().AddNew(connectorLabel,"ControlFlow");
con.SetSupplierID(target.GetElementID());
con.Update();
source.GetConnectors().Refresh();
diagram.GetDiagramLinks().Refresh();
//change style of diagram link
Collection<DiagramLink> diagramLinks = diagram.GetDiagramLinks();
for(DiagramLink dl : diagramLinks){
if(dl.GetConnectorID()==con.GetConnectorID()){
dl.SetStyle("Mode=3;TREE=LV;");
dl.Update();
diagram.GetDiagramLinks().Refresh();
break;
}
}
}在添加新连接器后,刷新图的集合DiagramLinks很重要,因为否则集合DiagramLinks中无法使用DiagramLink来更改样式。当然,在更改样式之后,您必须再次刷新它。
发布于 2014-05-27 05:47:17
您可以将线条设置为正交-平方或横向-垂直来实现这一点。为此,您需要获取DiagramLink并设置其样式。
下面是一些组合
(对正交平方) Mode=3;TREE=OS;
(横向垂直) Mode=3;TREE=LV;
发布于 2014-05-27 06:27:27
就像元素一样,其在一个特定图中的可视化表示是由一个DiagramObject表示的,DiagramLink控制一个图中一个连接器的显示。因此,如果您希望在不影响任何其他关系图的情况下更改连接器的外观,则需要从DiagramLink检索相关的Diagram.DiagramLinks并对其进行更改。
按照建议的路线不存在任何方法,因此最简单的方法可能是绘制一些看起来像您想要的连接器,然后检查数据库(t_connector和t_diagramlinks)以查看该几何图形的表示方式。
https://stackoverflow.com/questions/23877560
复制相似问题