1

Eclipse 4.2 で 1 つの RCP を作成しています。私のRCPには3つの視点があります。
実行時に 1 つのパーツを作成し、次のようなパースペクティブで追加しています。

@Inject
EPartService partService;
@Inject
MApplication application;    
...

Mpart part = .... ;    
...

List<MPartStack> stacks = modelService.findElements(application, null, MPartStack.class, null);
stacks.get(0).getChildren().add(part);
partService.showPart(part, PartState.ACTIVATE);

しかし、問題は現在開いているパースペクティブに追加されたビューであるため、パースペクティブを他のビューに切り替えると、このビューはそこに表示されません。これは、最初のスタックに追加するだけなので正しいです。
しかし、私の要件は、すべてのパースペクティブに追加する必要があるため、他のパースペクティブに切り替えるとそこにあるはずです。

次のような MPerspective のリストを取得しています。

List<MPerspective> mPerspective = modelService.findElements(application, null, MPerspective.class, null);       

しかし、それを追加する方法がわかりません。

では、各パースペクティブにパーツを追加する方法。

ありがとう

4

1 に答える 1

0

Eclipse 3.x にはStickyViewsの概念があり、互換性レイヤーを介して引き続き使用できる場合があります。ただし、Eclipse 4 アプリケーション モデルははるかに柔軟であり、そのような「スティッキー」MPart を追加する方法がいくつかあるはずです。

以下のスクリーンショットでは、Application.e4xmi に複数のパースペクティブ スタックを含めることができ、同じレベルに Mparts または MPartStacks を含めることができることがわかります。上記の例では、パースペクティブ スタックと同じレベルのアプリケーション モデルにある 2 番目の MPartStack に MPart を追加するだけです。

stacks.get(1).getChildren().add(part);

アプリケーション.e4xmi

于 2013-02-24T12:14:26.983 に答える