Eclipse plugin GEF:如何将图形添加到RootEditPart/-Figure的不同BorderLayout部分

Eclipse plugin GEF:如何将图形添加到RootEditPart/-Figure的不同BorderLayout部分,eclipse-plugin,visualization,layout-manager,eclipse-gef,draw2d,Eclipse Plugin,Visualization,Layout Manager,Eclipse Gef,Draw2d,我有一个带有以下RootEditPart的GEF编辑器 public class MyProjectEditPart extends AbstractGraphicalEditPart { @Override protected IFigure createFigure() { ScalableFreeformLayeredPane layer = new ScalableFreeformLayeredPane(); layer.setLayoutManager(new Fre

我有一个带有以下
RootEditPart
的GEF编辑器

public class MyProjectEditPart extends AbstractGraphicalEditPart {

@Override
protected IFigure createFigure() {
    ScalableFreeformLayeredPane layer = new ScalableFreeformLayeredPane();
    layer.setLayoutManager(new FreeformLayout());
    return layer;
  }
我正在使用编辑器创建一个自底向上的树:

     _7_
    /   \
   5     6
  / \   / \
 1   2 3   4 
1-7
矩形
s,其中
1-4
表示与
5-7
不同的模型元素。目前,所有图形都是按英尺布局的(
新矩形(x,y,w,h)
+
父.setConstraint(此,图形,矩形)
)。根据图
1-4
上的位置,使用简单算法计算图
5-7
的位置

为了实用起见,我希望能够简单地将
1-4
添加到根图的
BorderLayout.BOTTOM
处的
FlowLayout
ed
Figure
,并将其余的图添加到根图的
BorderLayout.CENTER

然而,我对全球环境基金(GEF)还很陌生,不知道该怎么做。我找不到正确的方法来将图形
1-4
添加到各自的
EditPart
createFigure()

例如,我尝试过类似于
parent.getFigure().getChildren().get(0).add(图1)
的东西,例如,使用RootEditPart的
createFigure()
方法将两个新图形分别添加到
BorderLayout.BOTTOM
CENTER


我非常感谢您提供的任何起点:)。

您需要一个EditPartFactory,它将模型元素“分派”到不同的EditPart。 顶级editpart(7)然后应该实现getModelChildren以返回5和6,其editpart反过来应该作为子级返回1,2和3,4

花点时间学习GEF shape示例和/或使用它如何