Enterprise Architect:仅以编程方式隐藏连接器的 "top" 标签

Enterprise Architect: Hide only "top" labels of connectors programmatically

我想隐藏图表所有连接器标签的 "top" 部分。为此,我尝试设置一个脚本,但它目前隐藏了所有标签(还有我想保留的 "bottom" 标签):

// 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());
        }
    }
}

当我仅手动隐藏顶部标签时(connector/Visibility/Set 标签可见性的上下文菜单),DiagramLinks 的几何 属性 保持不变,所以我想详细的标签可见性信息必须是包含在模型的其他地方。

有人知道如何更改我的脚本吗?

提前致谢!

编辑: 用于编辑详细标签可见性的对话框如下所示:

我的目标是以编程方式取消选中 "top label" 复选框。

Geometry 属性中,您会发现部分字符串,如

LLT=CX=36:CY=13:OX=0:OY=0:HDN=0:BLD=0:ITA=0:UND=0:CLR=-1:ALN=1:DIR=0:ROT=0;

所以在 LLT 和下一个分号之间,您需要找到 HDN=0 并将其替换为 HDN=1。像上面这样的简单全局更改是行不通的。您需要像正则表达式 LLT=([^;]+); 中那样的通配符才能正常工作。