如何更改Enterprise Architect中连接器的默认标签位置

时间:2017-09-24 05:55:16

标签: position label uml diagram enterprise-architect

我按Enterprise Architect 12绘制活动图表。图表类型为 UML行为下的活动。我发现连接器标签的位置接近目标元素,如图所示。这很令人困惑。

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

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

enter image description here

1 个答案:

答案 0 :(得分:3)

最好使用Guards作为Constraints标签中的标签。它们出现在中间标签位置并用方括号括起来。这实际上就是你要展示的内容。

enter image description here

为了您的娱乐,这是我的原始答案

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

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

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

更改标签

从手边的DecisionAction获得连接后,您需要更改标签位置,如下所示:

  • DiagramLinks获取相应的连接符,因为它具有标签位置
  • Connector.ClientID.SupplierID获取元素ID,并使用Respository.GetElementByID(<id>)
  • 检索元素
  • 通过查看decision
  • 将这两个元素分配给actionElement.Type
  • 从图中获取与DiagramObject匹配的两个元素(因此您可以在图上获得它们的位置)
  • 现在是一个小三角学的时间:两个元素的位置(DiagramElement.Left.Right.Top.Bottom包含适当的坐标)在哪一端你计算(我会给你留下一些乐趣)标签位置,你认为应该去哪里
  • 最后你拿这个坐标并把它放到标签位置(见下文)。

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

总而言之:很多等待你的乐趣: - /