Eclipse RCP - 改变部分的首选方法是什么?

时间:2014-10-27 09:55:41

标签: eclipse eclipse-rcp e4

每个插件都可以定义自己的内容(通过PartDescriptor),这些内容应该添加到我的应用程序中的特定位置(到PartStashContainer)。 在Part中可以看到插件中只有一个PartStashContainer

我找不到如何实现这一目标的首选方法。我应该以某种方式用插件中的新Part替换当前可见的Part吗?或者只是以某种方式设置已经可见Part的内容(可能是通过setContributionUri?)。

我看了EPartService。它看起来可以根据Part实例化PartDescriptor,但它只有一些方法可以使新的Part可见。我需要将新的Part添加到现有的PartStashContainer中,并可能删除旧的Part

1 个答案:

答案 0 :(得分:2)

您可以使用EPartServiceEModelService

如果您只有一个具有特定ID的零件实例,您可以将应用程序模型中的“零件”用作“PartStack”的子项,并将其标记为“未呈现”。如果要创建具有相同ID的多个部件,可以使用“PartDescriptor”。

如果您的应用程序模型中的“部件”标记为“未呈现”,则可以这样显示:

partService.showPart("part id", PartState.ACTIVATE);

如果您想从'PartDescriptor'创建零件并将其放置在零件堆栈中,请使用:

@Inject
MApplication app;


MPart part = partService.createPart("part descriptor id");

MPartStack stack = modelService.find("part stack id", app);

stack.getChildren().add(part);

partService.showPart(part, PartState.ACTIVATE);

隐藏零件使用:

MPart part = partService.findPart("part id");

partService.hidePart(part);