0

複数の要素を内部に保持する単一のエンティティを含む図を描画しようとしています。

私のMVC構造は次のようになります。
モデル:モデルオブジェクトを表すEntityModel.javaとElementModel.javaが含まれています。
ビュー: EntityFigure.javaおよびElementFigure.java
コントローラー: EntityEditPart.javaおよびElementEditPart.java

EntityEditPart.javaのgetModelChildren()をオーバーライドして、ElementModel.javaのリストを返すので、GEFは要素がエンティティに「属している」ことを認識します。

エンティティのFigureサイズを計算し、この計算に埋め込まれた要素を含めたいので、EntityEditPart.javaのcreateFigure()中にentityFigure.getPreferredSize()を呼び出すことはできません。この時点では、要素のFigureは存在しません(createFigure())。 ElementEditPart.javaではまだ呼び出されていません)。

すべての子フィギュアが作成された後、エンティティフィギュアを設定する場所を探しています。
ElementEditPart.javaでaddNotify()をオーバーライドすることについては考えていますが、すべての要素が作成された後ではなく、特定の内部要素を作成した後に呼び出されています。

何か案は?

私が十分に明確であったことを願っています...

4

1 に答える 1

2

あなたはの拡張でそれを行うことができます

 refreshChildren()

すべての子の作成はスーパークラス(AbstractEditPart)のrefreshメソッドのrefreshChildren()で行われるため、編集パーツのメソッド:

public void refresh() {
    refreshVisuals();
    refreshChildren();
}

または、単に拡張することができます

refresh()
于 2012-09-12T07:11:14.613 に答える