如何避免连接器在 Open Office/Libre Office Draw 中移过形状

Posted

技术标签:

【中文标题】如何避免连接器在 Open Office/Libre Office Draw 中移过形状【英文标题】:How to avoid connectors moving over shape in Open Office/Libre Office Draw 【发布时间】:2013-11-19 08:17:58 【问题描述】:

我正在以编程方式绘制流程图(使用 Java UNO 运行时参考),其中我正在显示 If-Else 条件。但是在显示“ELSE”条件时我遇到了问题,因为在这种情况下,连接器在中间形状上移动(如附图所示)

我用来绘制连接器的代码是:-

XShapes xShapes = (XShapes)
                UnoRuntime.queryInterface(XShapes.class, xDrawPage);
        XMultiServiceFactory xMsf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDrawDoc);
        Object connector = xMsf.createInstance("com.sun.star.drawing.ConnectorShape"); 
        xShapes.add(UnoRuntime.queryInterface(XShape.class, connector));

XPropertySet xConnector2PropSet = (XPropertySet)UnoRuntime.queryInterface(
                XPropertySet.class, connector);
        xConnector2PropSet.setPropertyValue("EdgeKind", ConnectorType.STANDARD);
        xConnector2PropSet.setPropertyValue("StartShape", xShape1);
        xConnector2PropSet.setPropertyValue("StartGluePointIndex", new Integer(startPt));
        xConnector2PropSet.setPropertyValue("LineEndName", "Arrow");
        xConnector2PropSet.setPropertyValue("EndShape", xShape2 );
        xConnector2PropSet.setPropertyValue("EndGluePointIndex", new Integer(endPt));

请建议如何使用 Java 中的 UNO 运行时参考正确布局和路由连接器。

【问题讨论】:

【参考方案1】:

我在 OpenOffice Draw 中遇到了同样的问题,找不到任何可能为一个连接器添加更多句柄。但是一个连接器可以以另一个连接器结束。所以我最终使用了两个连接器,第一个没有以箭头结尾(蓝色),第二个从第一个结束的地方开始(红色)。

【讨论】:

以上是关于如何避免连接器在 Open Office/Libre Office Draw 中移过形状的主要内容,如果未能解决你的问题,请参考以下文章

重新连接后如何避免双重连接关闭?

如何在更新和插入并发时避免重复行

数据库连接失败时,如何捕捉错误,避免弹出错误提示,以便下次自动重新连接

如何避免星型模式中事实表之间的连接?

Mongodb 连接失败,怎么避免抛错影响正常流程

如何避免换行编码? [复制]