我尝试改变连接活动图中两个元素的连接器的方式。我使用 sparx 的 Java API (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 x, int y);
也许任何人都可以帮助我:)
问候,菲尔
编辑:
在 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 不可用以更改样式。当然,您必须在更改样式后再次 Refresh() 。