【发布时间】:2014-05-26 20:51:34
【问题描述】:
我尝试更改连接活动图中两个元素的连接器的方式。我使用 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° 角。
我没有找到任何连接器类的属性来实现它。我希望我可以使用如下函数: 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;
}
}
}
在添加新的连接器后刷新()图表的集合图表链接很重要,因为否则图表链接在集合图表链接中不可用以更改样式。当然你必须在改变样式后再次 Refresh() 。
【问题讨论】:
-
我建议你挖掘一下
SetRouteStyle和SetStyleEx方法。
标签: java uml enterprise-architect activity-diagram