使用Java的Enterprise Architect脚本-添加CustomProperty

菲尔

我想在活动图中添加一个图例,该图例将由java和ea-api以编程方式生成。我已经知道如何创建图例元素并将其显示在图中(类型:“文本”和子类型:76):

Element legend = elements.AddNew("Color Legend", "Text");
elements.Refresh();

legend.SetSubtype(76);
legend.Update();

//Show in diagram
DiagramObject diagramObject = diagramObjects.AddNew("l=0; r=100; t=0; b=-100;", "");
diagramObjects.Refresh();
// reference the DiagramObject to the before created element
diagramObject.SetElementID(legend.GetElementID());

但这只是一个空洞的传说。所以我的问题是,如何向CustomProperties中添加一个CustomProperty。我的第一种方法是以下代码:

Collection<CustomProperty> customProperties = legend.GetCustomProperties();
CustomProperty cp = customProperties.AddNew("LegendEntryTest", "Back_Ground_Color=2124031;");
customProperties.Refresh();
legend.Update();

但这不起作用,图例仍然是空的:(

这是一个示例示例:

在此处输入图片说明

问候,菲尔

编辑在吉尔特·贝莱肯斯的帮助下,我解决了我的问题。现在,我使用repository.Execute(String sqlStmt)方法将自定义属性插入t_xref以下代码是一个如何工作的小示例:

//get elementGUID of legend
String legendGUID = legend.GetElementGUID();

//create the description value for one custom_property
String name="TestColor1";
String color="3381504";
int customPropertyIndex = 0;

String description = "@PROP=@NAME="+name+"@ENDNAME;@TYPE=LEGEND_OBJECTSTYLE@ENDTYPE;@VALU=#Back_Ground_Color#="+color+";#Pen_Color#=16777215;#Pen_Size#=1;#Legend_Type#=LEGEND_OBJECTSTYLE;@ENDVALU;@PRMT="+customPropertyIndex +"@ENDPRMT;@ENDPROP;"

//add description part for the legend
description += "@PROP=@NAME=Legend@ENDNAME;@TYPE=LEGEND_STYLE_SETTINGS@ENDTYPE;@VALU=@ENDVALU;@PRMT=@ENDPRMT;@ENDPROP;"

String sqlInsertStmt="INSERT INTO t_xref "
            + "(" 
                + "Client,"
                + "XrefID,"
                + "Type,"
                + "Name,"
                + "Visibility,"
                + "Partition,"
                + "Supplier,"
                + "Description"
            + ") "
            + " VALUES ("
                +"'"+legendGUID+ "',"
                + "'{"+UUID.randomUUID().toString()+"}',"
                + "'element property',"
                + "'CustomProperties',"
                + "'Public',"
                + "'0',"
                + "'&lt;none&gt;',"
                + "'"+description+"'"
            + ");"
                ;

repository.Execute(sqlInsertStmt);

随着java.util.UUID我生成该领域的新GUID XrefID

顺便说一句:要将RGB颜色转换为Enterprise Architect可以接受的颜色,可以使用以下公式:

 int colorValue = color.getRed() + (color.getGreen() * 256)
            + (color.getBlue() * 256 * 256);

(RGB色彩模型)

吉尔特·贝莱肯斯(Geert Bellekens)

您可以尝试使用代码添加自定义属性,但我敢肯定,您必须借助SQL hack才能填写所有必需的详细信息。如果检查数据库,则会发现图例的所有自定义属性都存储在表t_xref的一行中。“客户”列包含t_object.ea_guid,“描述”列包含自定义属性的所有详细信息。我做了一个小测试,这就是描述中存储的内容(为便于阅读,我添加了换行符)

@PROP=@NAME=Wit@ENDNAME;@TYPE=LEGEND_OBJECTSTYLE@ENDTYPE;@VALU=#Back_Ground_Color#=16777215;#Pen_Color#=16777215;#Pen_Size#=1;#Legend_Type#=LEGEND_OBJECTSTYLE;@ENDVALU;@PRMT=0@ENDPRMT;@ENDPROP;
@PROP=@NAME=rood@ENDNAME;@TYPE=LEGEND_OBJECTSTYLE@ENDTYPE;@VALU=#Back_Ground_Color#=255;#Pen_Color#=255;#Pen_Size#=1;#Legend_Type#=LEGEND_OBJECTSTYLE;@ENDVALU;@PRMT=1@ENDPRMT;@ENDPROP;
@PROP=@NAME=blauw@ENDNAME;@TYPE=LEGEND_OBJECTSTYLE@ENDTYPE;@VALU=#Back_Ground_Color#=16711680;#Pen_Color#=16711680;#Pen_Size#=1;#Legend_Type#=LEGEND_OBJECTSTYLE;@ENDVALU;@PRMT=2@ENDPRMT;@ENDPROP;
@PROP=@NAME=Legend@ENDNAME;@TYPE=LEGEND_STYLE_SETTINGS@ENDTYPE;@VALU=@ENDVALU;@PRMT=@ENDPRMT;@ENDPROP;

如果我在哪里,我将结合使用Repository.Execute()和肮脏的SQL插入语句来完成工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java的Enterprise Architect脚本-创建和修改链接文档

来自分类Dev

使用Java的Enterprise Architect脚本-Activitydiagram入口点初始

来自分类Dev

使用Java的Enterprise Architect脚本-Activitydiagram入口点初始

来自分类Dev

为什么在我的Enterprise Architect版本中无法使用脚本?

来自分类Dev

Enterprise Architect 脚本未更新图表

来自分类Dev

Python脚本无法保存连接器-Enterprise Architect

来自分类Dev

如何通过脚本从XMI正确导入完整的Enterprise Architect项目?

来自分类Dev

向Enterprise Architect Addin添加图标和快捷方式

来自分类Dev

在元素注释中添加超链接 Enterprise Architect

来自分类Dev

Enterprise Architect脚本:为序列图设置连接器的属性

来自分类Dev

如何使用Java Automation API为Enterprise Architect中的枚举条目设置初始值?

来自分类Dev

Sparx Enterprise Architect(EA 14)从类模型为C#生成代码,但仍默认使用Java

来自分类Dev

Java脚本-添加时间

来自分类Dev

您如何停止Sparx Enterprise Architect向所有图添加关系?

来自分类Dev

如何使用Enterprise Architect跳线连接器

来自分类Dev

如何在 Enterprise Architect 中使用 UML 生成 XSD simpleType

来自分类Dev

使用 C# 在 Enterprise Architect 中迭代包的层次结构

来自分类Dev

Enterprise Architect - Undo checkout branch

来自分类Dev

Enterprise Architect 上的属性大小

来自分类Dev

Enterprise Architect - SysML 图标题

来自分类Dev

如何使用脚本添加cronjob?

来自分类Dev

Java脚本:使用onclick按钮连续添加和减去变量

来自分类Dev

有没有一种方法可以在Enterprise Architect中以不同的方式添加相同的术语?

来自分类Dev

添加JavaScript文档Sencha Architect

来自分类Dev

如何覆盖Enterprise Architect默认属性窗口

来自分类Dev

Enterprise Architect在“ ::”之前编辑类名称

来自分类Dev

Is there a way to search project glossaries in Sparx Enterprise Architect?

来自分类Dev

如何在Enterprise Architect中过滤流?

来自分类Dev

在Enterprise Architect中组织图元素

Related 相关文章

  1. 1

    使用Java的Enterprise Architect脚本-创建和修改链接文档

  2. 2

    使用Java的Enterprise Architect脚本-Activitydiagram入口点初始

  3. 3

    使用Java的Enterprise Architect脚本-Activitydiagram入口点初始

  4. 4

    为什么在我的Enterprise Architect版本中无法使用脚本?

  5. 5

    Enterprise Architect 脚本未更新图表

  6. 6

    Python脚本无法保存连接器-Enterprise Architect

  7. 7

    如何通过脚本从XMI正确导入完整的Enterprise Architect项目?

  8. 8

    向Enterprise Architect Addin添加图标和快捷方式

  9. 9

    在元素注释中添加超链接 Enterprise Architect

  10. 10

    Enterprise Architect脚本:为序列图设置连接器的属性

  11. 11

    如何使用Java Automation API为Enterprise Architect中的枚举条目设置初始值?

  12. 12

    Sparx Enterprise Architect(EA 14)从类模型为C#生成代码,但仍默认使用Java

  13. 13

    Java脚本-添加时间

  14. 14

    您如何停止Sparx Enterprise Architect向所有图添加关系?

  15. 15

    如何使用Enterprise Architect跳线连接器

  16. 16

    如何在 Enterprise Architect 中使用 UML 生成 XSD simpleType

  17. 17

    使用 C# 在 Enterprise Architect 中迭代包的层次结构

  18. 18

    Enterprise Architect - Undo checkout branch

  19. 19

    Enterprise Architect 上的属性大小

  20. 20

    Enterprise Architect - SysML 图标题

  21. 21

    如何使用脚本添加cronjob?

  22. 22

    Java脚本:使用onclick按钮连续添加和减去变量

  23. 23

    有没有一种方法可以在Enterprise Architect中以不同的方式添加相同的术语?

  24. 24

    添加JavaScript文档Sencha Architect

  25. 25

    如何覆盖Enterprise Architect默认属性窗口

  26. 26

    Enterprise Architect在“ ::”之前编辑类名称

  27. 27

    Is there a way to search project glossaries in Sparx Enterprise Architect?

  28. 28

    如何在Enterprise Architect中过滤流?

  29. 29

    在Enterprise Architect中组织图元素

热门标签

归档