【问题标题】:Enterprise Architect script not updating diagramEnterprise Architect 脚本不更新图表
【发布时间】:2017-07-04 04:21:56
【问题描述】:

我在 Enterprise Architect 中有一个 JScript,它应该通过根据https://stackoverflow.com/a/28810123 将 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());
        }
    }
}

但是,图表没有更新(视图没有改变)。我错过了什么吗?

第二次执行脚本时,我可以在调试器中看到新的几何值仍然存在,但它们似乎没有被应用。

【问题讨论】:

    标签: enterprise-architect


    【解决方案1】:

    图表不会因任何元素更改而更新(嗯,通常和大多数情况下;这是 EA)。您需要使用

    重新加载更改的图表
    Repository.ReloadDiagram (currentDiagram.DiagramID);
    

    【讨论】:

    • 谢谢,这有助于更新视图!还有一个问题,也许你也知道:实际上,我只想隐藏连接器的源和目标“顶部标签”部分,而不是“底部标签”。但是,如果我手动执行,这两种情况下的 Geometry 属性看起来完全相同。您知道如何以编程方式实现这一目标吗?
    • 您应该为此提出一个新问题。那我晚上再看看。应该可以的。
    • 感谢您的帮助。我在这里创建了一个新问题:stackoverflow.com/q/44889397/3775882
    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    相关资源
    最近更新 更多