在Eclipse Eclipse中的所有MPerspective中添加MPart

时间:2013-02-20 06:48:58

标签: java eclipse eclipse-plugin eclipse-rcp eclipse-juno

我在Eclipse 4.2中创建了一个RCP。在我的RCP中,我有3个观点 我在运行时创建了一个部件,并在透视图中添加它,如下所示。

@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);       

但不知道如何添加它。

那么如何在每个视角中添加Part。?

由于

1 个答案:

答案 0 :(得分:0)

在Eclipse 3.x中有StickyViews的概念,您仍然可以通过兼容层使用它。 但是,Eclipse 4应用程序模型更加灵活,应该有几种方法可以添加这样一个“粘性”MPart。

在下面的屏幕截图中,您可以看到在Application.e4xmi中,您可以拥有多个Perspective Stacks,甚至是同一级别的Mparts或MPartStacks。在上面的示例中,您只需将MPart添加到与Perspective Stack在应用程序模型中处于同一级别的第二个MPartStack:

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

Application.e4xmi