【问题标题】:enterprise architect scripting in java: how to change the way of a connector?Java中的企业架构师脚本:如何改变连接器的方式?
【发布时间】: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


【解决方案1】:

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

以下是一些组合

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

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

【讨论】:

  • 您好 Nizam Mohamed,非常感谢您的回答。它工作的:)
【解决方案2】:

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

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

【讨论】:

  • 嗨 Uffe,再次非常感谢你:-) 你是我的 EA 脚本英雄!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多