#modelio
Вопрос:
Я использую 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())
.
Есть ли способ убедиться, что целевая стрелка следует по тому же пути, что и на эталонной диаграмме?