我正在 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);
但问题是它在当前打开的视角中添加的 View ,因此如果您将视角切换到其他视角,则该 View 将不会显示在那里,这是正确的,因为我只是将其添加到第一个堆栈。
但我的要求是它应该添加到每个视角中,这样如果它切换到其他视角它应该在那里。
我得到如下所示的 MPerspective 列表:
List<MPerspective> mPerspective = modelService.findElements(application, null, MPerspective.class, null);
但不知道如何添加。
那么如何在每个视角中添加Part呢?
谢谢
最佳答案
在 Eclipse 3.x 中有 StickyViews 的概念,并且您仍然可以通过兼容层使用它。 然而,Eclipse 4 应用程序模型更加灵活,并且应该有多种方法可以添加这样的“粘性”MPart。
在下面的屏幕截图中,您可以看到在 Application.e4xmi 中您可以有多个透视堆栈,甚至同一级别上的 Mpart 或 MPartStack。在上面的示例中,您可以简单地将 MPart 添加到第二个 MPartStack,该 MPartStack 与您的透视堆栈在应用程序模型中位于同一级别:
stacks.get(1).getChildren().add(part);
关于java - 在eclipse Juno中的所有MPerspective中添加MPart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14973875/