当前位置: 首页 > 知识库问答 >
问题:

使用javascript编写Enterprise Architect脚本-向关系图添加图例

冯新知
2023-03-14

我试图在一个图中添加一个图例,其中一部分问题是:Enterprise Architect使用java编写脚本--添加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();
}

共有1个答案

董高朗
2023-03-14

您不需要通过调用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();
}
 类似资料:
  • 使用Chart.js2.0。我正在寻找一种在图表底部添加页脚(一行文本)的方法,以便显示数据源。 我尝试通过option对象来解决它,就像title和legend被包括和修改一样。像这样: 我在文档中几次提到了“footer”,以及样式化它或在“工具提示”上下文中使用它的方法,但还没有看到如何具体添加它。 编辑/更新:我找到了两种方法(但没有完美的解决方案)来在图表中添加页脚,同时尝试解决这个问题

  • 这个问题已经被问到了,但我想找到一个更清楚的解决办法。 给定X是100x2数据,标签是标签向量(从1到9),我绘制散点图如下: 如何添加图例来解释一行代码中的颜色?其他解决方案分别绘制每个标签:

  • 我想在我的活动图中添加一个图例,它将由java和EA-API编程生成。我已经知道如何创建legend元素并在图中显示它(类型:“text”和子类型:76): 但这只是一个空洞的传说。所以我的问题是,如何向CustomProperties添加一个CustomProperties。我的第一种方法是下面的代码: 但这不起作用,传说还是空的:( 你好,菲尔 在Geert Bellekens的帮助下,我已经

  • 我正在使用将多个数据帧绘制为点图。此外,我正在同一轴上绘制所有数据帧。 我该如何在情节中加入传奇? 我的代码获取每个数据帧,并在同一个图形上一个接一个地绘制它。 每个数据框都有相同的列 我的代码: 这将在同一绘图上绘制3条线。然而,这个传说却不见了。文档不接受参数。 一个有效的解决方法是创建一个新的数据帧并使用。 但是我想知道是否有一种方法可以为代码创建一个图例,首先向图中依次添加点图,然后添加图

  • 我有一个gejson文件,它由覆盖着六边形多边形的纽约市组成,我把它读进了geopandas数据框。我希望在数据框的图中添加Stmen TonerLite底图。但是,我无法复制与这里的工作示例相同的结果-https://geopandas.org/gallery/plotting_basemap_background.html 我在下面给出了相关数据帧的代码和crs的一个小示例: 我得到了一个没有

  • 问题内容: 我有许多固定大小的图像(例如500 * 500)。我想编写一个python脚本,将其调整为固定大小(例如800 * 800),但将原始图像保持在中心,并用固定颜色(例如黑色)填充多余的区域。 我正在使用PIL。我现在可以使用该功能调整图像的大小,但这会改变纵横比。有什么办法吗? 问题答案: 您可以创建具有所需新尺寸的新图像,然后将旧图像粘贴到中间,然后保存。如果需要,可以覆盖原始图像(