我正在尝试向部分以下问题的图中添加图例:Enterprise Architect scripting with java - add CustomProperty但我没有运气在我的图表上获得可见的图例。这是我的代码:
function addLegend()
{
Repository.EnsureOutputVisible( "Script" );
Repository.ClearOutput("Script");
var pkg as EA.Package;
pkg = Repository.GetTreeSelectedPackage();
elements = pkg.Elements;
var legend = elements.AddNew('Diagram Legend', 'Text');
legend.Subtype = 76;
legend.Update();
elements.Refresh();
var diagram as EA.Diagram;
diagram = Repository.GetDiagramByID(10);
Session.Output(diagram.Name);
diagramObjects = diagram.DiagramObjects;
diagramObject = diagramObjects.AddNew("l=100; r=100; t=100; b=500;", "");
diagramObject.ElementID = legend.ElementID;
diagramObjects.Refresh();
diagram.Update();
}
` 如前所述,没有显示图例 - 任何帮助表示赞赏。我的 EA 版本是 12.0。
最佳答案
您不需要通过调用Update()
来保存新创建的DiagramObject,也不需要这些对Refresh()
的调用
更新图表的调用也可能会撤消您尝试对图表进行的任何更改。 使用以下稍微更改的代码尝试一下(未经测试)
function addLegend()
{
Repository.EnsureOutputVisible( "Script" );
Repository.ClearOutput("Script");
var pkg as EA.Package;
pkg = Repository.GetTreeSelectedPackage();
elements = pkg.Elements;
var legend = elements.AddNew('Diagram Legend', 'Text');
legend.Subtype = 76;
legend.Update();
var diagram as EA.Diagram;
diagram = Repository.GetDiagramByID(10);
Session.Output(diagram.Name);
diagramObjects = diagram.DiagramObjects;
diagramObject = diagramObjects.AddNew("l=100; r=100; t=100; b=500;", "");
diagramObject.ElementID = legend.ElementID;
diagramObject.Update();
}
关于javascript - Enterprise Architect 使用 javascript 编写脚本 - 向图表添加图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37297803/