Enterprise Architect 脚本不更新图表
Enterprise Architect script not updating diagram
我在 Enterprise Architect 中有一个 JScript,它应该通过根据 将 DiagramLinks 的几何 属性 的 "HDN" 属性设置为 1 来隐藏一些连接器标签:
// Get a reference to the current diagram
var currentDiagram as EA.Diagram;
currentDiagram = Repository.GetCurrentDiagram();
if (currentDiagram != null)
{
for (var i = 0; i < currentDiagram.DiagramLinks.Count; i++)
{
var currentDiagramLink as EA.DiagramLink;
currentDiagramLink = currentDiagram.DiagramLinks.GetAt(i);
currentDiagramLink.Geometry = currentDiagramLink.Geometry
.replace(/HDN=0/g, "HDN=1")
.replace(/LLT=;/, "LLT=HDN=1;")
.replace(/LRT=;/, "LRT=HDN=1;");
if (!currentDiagramLink.Update())
{
Session.Output(currentDiagramLink.GetLastError());
}
}
}
但是,图表没有更新(视图没有改变)。我错过了什么吗?
第二次执行脚本时,我可以在调试器中看到,新的 Geometry 值仍然存在,但似乎没有应用。
图表不会因任何元素更改而更新(好吧,通常并且在大多数情况下;这是 EA)。您需要使用
重新加载更改的图表
Repository.ReloadDiagram (currentDiagram.DiagramID);
我在 Enterprise Architect 中有一个 JScript,它应该通过根据
// Get a reference to the current diagram
var currentDiagram as EA.Diagram;
currentDiagram = Repository.GetCurrentDiagram();
if (currentDiagram != null)
{
for (var i = 0; i < currentDiagram.DiagramLinks.Count; i++)
{
var currentDiagramLink as EA.DiagramLink;
currentDiagramLink = currentDiagram.DiagramLinks.GetAt(i);
currentDiagramLink.Geometry = currentDiagramLink.Geometry
.replace(/HDN=0/g, "HDN=1")
.replace(/LLT=;/, "LLT=HDN=1;")
.replace(/LRT=;/, "LRT=HDN=1;");
if (!currentDiagramLink.Update())
{
Session.Output(currentDiagramLink.GetLastError());
}
}
}
但是,图表没有更新(视图没有改变)。我错过了什么吗?
第二次执行脚本时,我可以在调试器中看到,新的 Geometry 值仍然存在,但似乎没有应用。
图表不会因任何元素更改而更新(好吧,通常并且在大多数情况下;这是 EA)。您需要使用
重新加载更改的图表Repository.ReloadDiagram (currentDiagram.DiagramID);