2

ロジックの例を参考にして、四角形の Figure/EditPart/Model に子としてポートを追加することを実装しました。ポート Figure は期待どおりに表示され、デバッグは、EditParts とモデルが作成されて親に追加されていることを示していますが、子は選択できません。

子の EditPart では、isSelectable() をオーバーライドして true を返します。

親で、 createChildEditPolicy() をオーバーライドして NonResizableEditPolicy を返すようにしましたが、ここで子を選択不可にするという推奨事項を逆にしましたが、何もしないようです。NonResizableEditPolicy を子の EditPart に SELECTION_FEEDBACK_ROLE としてインストールすると、最初は作成時に選択されますが、後で選択することはできません。

また、子の Figure をクリックすると、親も選択されず、クリックしても選択が変わらないデッド スポットです。

選択可能にするために何かが欠けているのでしょうか、それとも他の何かが干渉している可能性がありますか?

4

2 に答える 2

2

デバッガーを使用して、ビューアー getEditPartAt(Point) にブレークポイントを設定し、そこからステップ実行することができます。これは、子をクリックしたときにトリガーされる必要があります。

選択フィードバックが作成されていない可能性があるため、viewer.getSelectedEditParts() を出力して、実際に選択されているがフィードバックがないことを確認することもできます。

于 2011-01-16T11:52:29.150 に答える
0

私は同じ問題に遭遇し、次のように修正します: editpart に適切なポリシーをインストールしてみてください。

   @Override
   protected void createEditPolicies() {
       installEditPolicy(EditPolicy.LAYOUT_ROLE, yourEditPolicy());
   }
于 2014-08-26T06:04:27.530 に答える