我有一个具有以下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是Rectangle,其中1-4表示与5-7不同的模型元素。目前,所有的图形都是用脚(new Rectangle(x, y, w, h) + parent.setConstraint(this, figure, rectangle))布局的。基于图形5-7上的位置,使用简单的算法计算图形1-4的位置。
为了实用,我希望能够简单地将1-4添加到RootFigure的BorderLayout.BOTTOM的FlowLayouted Figure中,并将其余的图形添加到RootFigure的BorderLayout.CENTER中。
然而,我对环境基金还是个新手,不知道该怎么做。我找不到正确的方法将数字1-4添加到它们各自的EditPart's createFigure()中。
例如,我尝试过像parent.getFigure().getChildren().get(0).add(Figure_1)这样的东西,使用RootEditPart的createFigure()方法将两个新图形分别添加到BorderLayout.BOTTOM和CENTER中。
我将感谢任何起点:)。
发布于 2012-09-03 18:23:09
您需要一个将模型元素“分派”到不同EditParts的EditPartFactory。然后,顶层的editpart (7)应该实现getModelChildren来返回5和6,而它们的editpart又应该返回1、2和3、4这两个孩子。
花点时间看看GEF形状示例和/或http://www.redbooks.ibm.com/abstracts/sg246302.html如何?
https://stackoverflow.com/questions/10888700
复制相似问题