java - 在eclipse Juno中的所有MPerspective中添加MPart

标签 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);

但问题是它在当前打开的视角中添加的 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);

Application.e4xmi

关于java - 在eclipse Juno中的所有MPerspective中添加MPart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14973875/

相关文章:

java - 引用嵌套类中的方法

java - 如何模拟 Elasticsearch Java 客户端?

java - 如何在Eclipse中的Expressions View 中正确实现自定义详细信息 Pane ?

eclipse - 收集要安装的项目时出错 : osgi. bundle,org.eclipse.sdk,4.2.0.v201206081400

html - Eclipse 的 JavaDoc 编辑器,用于创建格式化文本

java - 使用 Kubuntu,无法在 eclipse 中设置 Java 8

java - 返回 Spring MVC Post 请求的 JSON 响应

java - 使用apache POI在word文件生成中保留换行符

安卓推特应用 : suspended (exception( Twitter Exception))

java - 如何订阅 MQTT 主题并在 Eclipse (Java) 上打印收到的消息