Я использую GEF и Draw2d для создания графика.
У меня есть трехуровневая структура, которую я хочу показать, что означает:
RootEditPart
/
Level1EditPart
/
Level2EditPart
/
Level3EditPart
Там, где у Level2 есть несколько дочерних элементов.
Я хочу нарисовать связи между Level3EditParts (в контейнере Level2).
Что меня смущает, так это где я задаю алгоритм линейной маршрутизации для этих соединений и как он наследуется через иерархию родителей / дочерних элементов EditPart / Figure.
В идеале, я бынравится использовать ShortestPathConnectionRouter.Я попытался использовать это, установив это как маршрутизатор соединения для уровня соединения, используя рисунок из моего Level2EditPart.Насколько я понимаю, тогда он будет использовать детей этой фигуры в качестве препятствий, которых следует избегать (поэтому он не будет рисовать линии через мои другие Уровни 3, но попытаться их избежать).
Хотя это не работает так,когда я отлаживаю код, похоже, что в ShortestPathRoutingAlgorithm используется одна система координат для фигуры соединения (я предполагаю, что это система координат для уровня соединений), а другая для фигур уровня 3 (координатаСистема ординат их родителей. Рисунок 2-го уровня).Это означает, что ему никогда не удастся сработать, когда он пересекает один из моих уровней 3, поэтому никогда не пытаюсь их избегать.
Так что я либо неправильно понимаю возможности ShortestPathConnectionRouter, либо я его неправильно настроил.Кто-нибудь может мне помочь?