我正在使用 GEF 和 Draw2d 创建图表。
我有一个要展示的 3 级结构,这意味着:
RootEditPart
/
Level1EditPart
/
Level2EditPart
/
Level3EditPart
其中 Level2 有多个孩子。
我想在 Level3EditParts (在 Level2 容器内)之间绘制连接。
我感到困惑的是我在哪里为这些连接设置线路路由算法,以及它如何通过父/子 EditPart/Figure 层次结构继承。
理想情况下,我想使用 ShortestPathConnectionRouter。我尝试通过使用我的 Level2EditPart 中的图将其设置为连接层的连接路由器来使用它。我的理解是,它会使用这个数字的孩子作为要避开的障碍物(所以它不会画线穿过我的其他 Level3,而是尽量避开它们)。
但是,它不是那样工作的,当我调试 ShortestPathRoutingAlgorithm 中的代码时,它使用一个坐标系统作为连接图(我猜它是连接层的坐标系统),另一个用于Level3 Figure(其父级的坐标系。Level2 Figure)。这意味着当它与我的一个 Level3 相交时它永远不会成功,所以永远不要试图避开它们。
所以我要么误解了 ShortestPathConnectionRouter 的功能,要么我设置不正确。谁能给我一些帮助?