我正在使用 Modelio 3.7。
我有两个引用相同模型对象的活动图。这两个图显示了相同的对象,具有不同的样式。(即它们代表相同的流程,用不同的颜色来表达两种不同的观点。
我正在尝试编写一个 Jython 脚本,该脚本将一个图表作为图形布局的参考,并确保第二个图表上的相应图形出现在完全相同的位置,并且第二个图形上的链接遵循与第一张图中的路径完全相同。
我对节点的布局没有问题:
def syncNodes(ref, target):
if differentRectangles(ref.getBounds(), target.getBounds()):
print "=======> ACTION: move bounds from " + target.getBounds().toString() + " to " + ref.getBounds().toString()
target.setBounds(ref.getBounds())
else:
print "=======> NOOP: bounds from " + target.getBounds().toString() + " to " + ref.getBounds().toString()
但链接完全是另一个问题:
def syncLinks(ref, target):
if differentPaths(ref.getPath(), target.getPath()):
print "=======> ACTION: change path from " + target.getPath().toString() + " to " + ref.getPath().toString()
target.getPath().setPoints(ref.getPath().getPoints())
else:
print "=======> NOOP: change path from " + target.getPath().toString() + " to " + ref.getPath().toString()
if not target.getRouterKind().equals(ref.getRouterKind()):
print "=======> ACTION: change routerkind from " + target.getRouterKind().toString() + " to " + ref.getRouterKind().toString()
target.setRouterKind(ref.getRouterKind())
target.setRouterKind(IDiagramLink.LinkRouterKind.BENDPOINT)
else:
print "=======> NOOP: change routerkind from " + target.getRouterKind().toString() + " to " + ref.getRouterKind().toString()
链接最终穿过图表外围的奇怪位置,路径中的点最终与我设置的不同target.getPath().setPoints(ref.getPath().getPoints())
。
有没有办法确保目标箭头遵循与参考图中相同的路径?