我想用我的 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();
所以我认为它会以同样的方式适用于初始(或入口点):
Element initElement = elements.AddNew("Start...","EntryPoint");
但出现以下异常:
java.lang.Exception: Invalid parent for EntryPoint (Package)
有人可以帮助我吗?我的另一个问题是,集合的 ElementTypes 是否有任何枚举?因为我只找到了集合类的以下信息..
AddNew (string Name, string Type)
但是类型的信息只告诉“类型:字符串(最多 30 个字符)”。
这是 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;
乌夫已经在他的回答中解释了这一点。首先使用类型参数创建元素,然后设置特定的子类型。在此之后不要忘记 update() 。
Element element = elements.AddNew("StartHere", "StateNode");
element.Subtype = 100;
element.Update();
elements.Refresh();
再次感谢 Uffe 提供的这个例子:)