Layout GEF:如何自下而上绘制图表

Layout GEF:如何自下而上绘制图表,layout,position,eclipse-gef,draw2d,bottom-up,Layout,Position,Eclipse Gef,Draw2d,Bottom Up,我试图在GEF编辑器中绘制一棵树。问题是我需要从下往上画。我有一个用于节点图形的主层和一个用于连接的连接层。 主层是一个FreeformLayer,根编辑部分是一个ScalableFreeformLayeredPane。主层有一个XYLayout 现在我需要找到编辑器的底边(=视口???),以便能够在该位置绘制图形的底层(“标记”)(主层的底部y-标记的高度=标记的y)。我怎么能得到这个 我曾尝试使用BorderLayout进行此操作,因此标记会被绘制在编辑器底部(BorderLayout.bo

我试图在GEF编辑器中绘制一棵树。问题是我需要从下往上画。我有一个用于节点图形的主层和一个用于连接的连接层。 主层是一个
FreeformLayer
,根编辑部分是一个
ScalableFreeformLayeredPane
。主层有一个
XYLayout

现在我需要找到编辑器的底边(=视口???),以便能够在该位置绘制图形的底层(“标记”)(主层的底部y-标记的高度=标记的y)。我怎么能得到这个

我曾尝试使用
BorderLayout
进行此操作,因此标记会被绘制在编辑器底部(
BorderLayout.bottom
),并在
BorderLayout.CENTER
中绘制其上的节点,但我在选择方面遇到了问题,并且布局与我想要实现的目标相差甚远

所以基本上我希望所有的节点都在一个层中。我可以设置令牌的位置,但它们上面的节点必须动态计算。如何在
XYLayout
中执行此操作

非常感谢


(或者,如果更容易实现的话,将代币定位在y中心是可以接受的)

您可以看看Zest布局算法,从中获得一些灵感:

谢谢,我会这样做的,不过我认为Zest的工作方式完全不同。Zest是一个基于gef的可视化框架,有一些清晰的布局算法。也许你可以根据以下其中一个来解决:)谢谢。问题是我需要GEF(插件,而不是框架)提供的所有编辑功能。是否可以使用Zest在GEF编辑器中布局图形?尝试以下方法: