【问题标题】:How to change the default label positions of connectors in Enterprise Architect如何在 Enterprise Architect 中更改连接器的默认标签位置
【发布时间】:2017-09-24 05:55:16
【问题描述】:

我正在通过Enterprise Architect 12 绘制活动图。图类型是 UML Behavioral 下的 Activity。我发现连接器标签的位置靠近目标元素,如图所示。这很混乱。

如何更改默认标签位置,使其靠近源元素,如图所示?

或者有什么简单的方法可以将连接器的标签从Target Top Label更改为Source Top Label

【问题讨论】:

  • 注:在 Activity 中,您使用 Actions 执行单个步骤。 Activity 本身就是一系列步骤。不幸的是ActionActivity 的形状相同。

标签: position label uml diagram enterprise-architect


【解决方案1】:

最好使用Guards 作为您在Constraints 选项卡中找到的标签。这些出现在中间标签位置并用方括号括起来。这实际上是您想要展示的内容。

这里是我的原始答案,供您娱乐

无法按照您想要的开箱即用方式更改标签位置。您需要编写一个脚本来执行此操作。

有两种方法可以完成这样的脚本。最舒服的是使用响应EA_OnPostNewConnector 的加载项。然后,您需要检查连接器是否是从 DecisionAction 的一个,并相应地移动标签。

第二个是有一个简单的脚本(您可以在 EA 的脚本窗口中编辑),您可以为打开的图表运行该脚本以扫描图表中的所有 Decisions 并相应地更改标签位置。

更改标签

一旦您手头有一个从DecisionAction 的连接器,您将需要像这样更改标签位置:

  • DiagramLinks 获取相应的连接器,因为它具有标签位置
  • Connector.ClientID.SupplierID 获取元素ID,并使用Respository.GetElementByID(<id>) 检索元素
  • 通过查看Element.Type 将两个元素分配给decisionaction
  • 从图中获取与这两个元素匹配的DiagramObjects(这样您就可以在图中获得它们的位置)
  • 现在是时候做一点三角函数了:这两个元素的位置(DiagramElement.Left.Right.Top.Bottom 包含适当的坐标)构成一个向量,您在该向量的末端进行计算(我将给你留点乐趣)你认为它应该去的标签位置
  • 最后你把这个坐标放到标签位置(见下文)。

标签位置存储在DiagramObject.Geometry中。这是一个分号分隔的字符串,其中一个标签是LRT=<colon-list>;<colon-list> 本身是一个以冒号分隔的列表,其中两个类似于 OX=-1:OY=-71: 并代表标签位置。这是相对于 EA 最初放置标签的“正常”位置的位置。

总而言之:有很多乐趣在等着你:-/

【讨论】:

  • @_@~~~ 以前从未使用过脚本。我想知道有什么简单的方法可以将连接器的标签从Target Top Label 更改为Source Top Label
  • 没有。 EA 在此标签位置显示 ControlFlow 注释。如果您将标签更改为出现在另一个标签中(如果我算对的话,有 6 个)GUI 将不会根据您的需要显示它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-21
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多