0

我尝试改变连接活动图中两个元素的连接器的方式。我使用 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() 。

4

2 回答 2

1

与元素一样,其在一个特定图表中的视觉表示由 a 表示DiagramObject,aDiagramLink控制一个图表中一个连接器的显示。因此,如果您想在一个图表中更改连接器的外观而不影响任何其他图表,则需要从中检索相关内容DiagramLinkDiagram.DiagramLinks对其进行更改。

不存在您建议的方法,因此最简单的方法可能是绘制一些看起来像您想要的方式的连接器,然后检查数据库(t_connector 和 t_diagramlinks)以查看该几何图形的表示方式。

于 2014-05-27T06:27:27.170 回答
1

您可以将线型设置为正交 - 方形或横向 - 垂直以实现此目的。为此,您需要获取 DiagramLink 并设置其样式。

下面是一些组合

(正交方格)Mode=3;TREE=OS;

(横向垂直)模式=3;树=LV;

于 2014-05-27T05:47:17.013 回答