我有一个 GEF 编辑器,其中包含以下RootEditPart.
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是Rectangles,其中1-4代表与 不同的模型元素5-7。目前,所有图形都按脚(new Rectangle(x, y, w, h)+ parent.setConstraint(this, figure, rectangle))排列。人物的位置是根据人物5-7上的位置用简单的算法计算出来的1-4。
为了实用起见,我希望能够简单地添加1-4到 RootFigure 的FlowLayoutedFigure中BorderLayout.BOTTOM,并将其余图形添加到 RootFigure 中BorderLayout.CENTER。
但是,我对 GEF 还很陌生,不知道该怎么做。我找不到正确的方法来添加1-4他们各自EditPart的数字createFigure()。
例如,我尝试过类似的东西parent.getFigure().getChildren().get(0).add(Figure_1),例如,使用 RootEditPart 的createFigure()方法分别将两个新图形添加到BorderLayout.BOTTOM和CENTER..
我会感谢任何起点:)。