0

私は次の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-7Rectanglesです。ここで、はと1-4は異なるモデル要素を表します5-7。現時点では、すべての図は徒歩(new Rectangle(x, y, w, h)+ parent.setConstraint(this, figure, rectangle))でレイアウトされています。図の位置は、図の位置に5-7基づいて、簡単なアルゴリズムで計算されます1-4

実用性のために、RootFigureのedに単純に追加1-4し、残りの図をRootFigureに追加できるようにしたいと思います。FlowLayoutFigureBorderLayout.BOTTOMBorderLayout.CENTER

しかし、私はGEFにかなり慣れていないので、その方法について頭を悩ませることはできません。1-4それぞれのに数字を追加するための正しい方法を見つけることができませEditPartcreateFigure()

たとえばparent.getFigure().getChildren().get(0).add(Figure_1)、RootEditPartのcreateFigure()メソッドがそれぞれに2つの新しい図を追加するBorderLayout.BOTTOMなどのことを試しCENTERました。

出発点に感謝します:)。

4

1 に答える 1

0

モデル要素をさまざまなEditPartに「ディスパッチ」するEditPartFactoryが必要です。次に、最上位のeditpart(7)は、getModelChildrenを実装して5と6を返し、そのeditpartは子として1、2、および3,4を返す必要があります。

GEFの形状の例や、http://www.redbooks.ibm.com/abstracts/sg246302.htmlを使用して、時間をかけてみてはどうでしょうか。

于 2012-09-03T10:23:08.737 に答える