EclipseRCP-更改部件的首选方式是什么?
每个插件都可以定义自己的内容(通过EclipseRCP-更改部件的首选方式是什么?,eclipse,eclipse-rcp,e4,Eclipse,Eclipse Rcp,E4,每个插件都可以定义自己的内容(通过PartDescriptor),这些内容应该添加到我的应用程序中的特定位置(到PartStashContainer)。 在该PartStashContainer中可见的插件中可能总是只有一个Part 我找不到实现这一目标的首选方法。我是否应该用插件中新的部分替换当前可见的部分?或者只是以某种方式设置已经可见的部分的内容(可能通过setContributionUri?) 我查看了EPartService。看起来它可以根据PartDescriptor实例化Part,
PartDescriptor
),这些内容应该添加到我的应用程序中的特定位置(到PartStashContainer
)。
在该PartStashContainer
中可见的插件中可能总是只有一个Part
我找不到实现这一目标的首选方法。我是否应该用插件中新的部分
替换当前可见的部分
?或者只是以某种方式设置已经可见的部分的内容(可能通过setContributionUri
?)
我查看了EPartService
。看起来它可以根据PartDescriptor
实例化Part
,但它只有一些方法可以使新的Part
可见。我需要将新的零件
添加到现有的PartStashContainer
中,并可能删除旧的零件
您可以为此使用EPartService
和EModelService
如果您只打算拥有一个具有特定id的零件实例,则可以将应用程序模型中的“零件”用作“零件堆栈”的子对象,并将其标记为“未渲染”。如果要创建具有相同id的多个零件,可以使用“零件描述符”
如果应用程序模型中有一个“部件”标记为“未渲染”,则可以如下所示显示:
partService.showPart(“part id”,PartState.ACTIVATE);
如果要从“PartDescriptor”创建零件并将其放置在零件堆栈中,请使用:
@Inject
地图应用程序;
MPart part=partService.createPart(“部件描述符id”);
MPartStack stack=modelService.find(“部件堆栈id”,app);
stack.getChildren().add(部分);
partService.showPart(part,PartState.ACTIVATE);
要隐藏零件,请使用:
MPart part=partService.findPart(“part id”);
partService.hidePart(part);
但是eclipse怎么知道我想在哪里显示该部分呢?(在零件箱中)。看起来您没有将有关它的任何信息传递给showPart call。抱歉,添加了PartDescriptor示例正是我想知道的!但是上面示例中的PartService.ACTIVATE
需要更改为PartState.ACTIVATE