【发布时间】:2014-05-19 11:11:27
【问题描述】:
我想用我的 java 代码生成一个活动图。 它的工作原理是创建一个动作元素:
//Add the actionElement to the package
Element actionElement = elements.AddNew("MyFirstAction", "Action");
elements.Refresh();
//Add the element to the activity diagram
DiagramObject dob = dobs.AddNew("", "");
dobs.Refresh();
//reference the DiagramObject to the before created element
dob.SetElementID(element.GetElementID());
dob.Update();
dobs.Refresh();
所以我认为它会以同样的方式适用于 Initial(或 EntryPoint):
Element initElement = elements.AddNew("Start...","EntryPoint");
但出现以下异常:
java.lang.Exception: Invalid parent for EntryPoint (Package)
有人可以帮助我吗?我的另一个问题是,集合的 ElementTypes 是否有任何枚举? 因为我只找到了集合类的以下信息..
AddNew (string Name, string Type)
但是Type的信息只告诉“Type: String (up to 30 characters long)”。
这里是 Collection 类的链接: http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/automation/collection.html
问候
编辑
在 Uffe 的帮助下,我得到了一些活动图组件的子类型和类型的信息。 “原始名称”是您想要添加“新元素或连接器”时在 Enterprise Architect 的 GUI 中看到的名称:
- 原名:“行动”;类型:“行动”;子类型:0;
- 原名:“活动”;类型:“活动”;子类型:0;
- 原名:“结构化活动”(Other->Simple Composite);类型:“活动”;亚型:8;
- 原名:“首字母”;类型:“状态节点”;子类型:100;
- 原名:“决赛”;类型:“状态节点”;子类型:101;
- 原名:“Flow Final”;类型:“状态节点”;亚型:102;
- 原名:《决定》;类型:“决定”;子类型:0;
- 原名:“合并”;类型:“合并节点”;子类型:0;
- 原名:《决定》;类型:“决定”;子类型:0;
- 原名:“Fork/Join”(横向);类型:“同步”;子类型:0;
- 原始名称:“Fork/Join”(垂直);类型:“同步”;子类型:1;
- 原名:“图例”;类型:“文本”;亚型:76;
- 原名:“同步”;类型:“状态节点”;亚型:6;
Uffe 已经在他的回答中解释了这一点。首先使用类型参数创建元素,然后设置特定的子类型。之后不要忘记 update()。
Element element = elements.AddNew("StartHere", "StateNode");
element.Subtype = 100;
element.Update();
elements.Refresh();
再次感谢 Uffe 提供此示例:)
【问题讨论】:
标签: scripting uml enterprise-architect activity-diagram