2013-11-19 7 views
1

Я программно рисую блок-схему (используя Java UNO Runtime Reference), в которой я показываю условие If-Else. Но я столкнулся с проблемами, показывая «ELSE "состояние, потому что в таком случае разъем перемещается по промежуточной форме (как shwon в прилагаемом рисунке) enter image description hereКак избежать контактирования, перемещающегося по форме в Open Office/Libre Office Draw

кода я использовал рисовать разъемы: -

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)); 

Пожалуйста, укажите, как макет и правильно подключенных соединителей маршрута, используя ссылку Runtime UNO в Java.

ответ

2

У меня была такая же проблема в OpenOffice Draw, и я не мог найти возможности добавить дополнительные ручки к одному коннектору. Но один коннектор может закончиться другим. Таким образом, я закончил использовать два разъема, первый из которых не заканчивается стрелкой (синим), второй начинается с первого конца (красным).

example of non-crossing connectors