我已经在部分堆栈中创建了2个部分。所有部分使用相同的贡献uri。我需要第3个部分,在单击时说“添加新部分”(或选项卡),它必须动态创建一个新部分并在前2个部分之后进行排列,然后再次必须在“添加新部分”部分结束。因此,每当单击“添加新零件”时,都必须创建新零件。
将以下代码添加到“添加新零件”部分。

MPart part = partService.createPart("com.abc.xyz.project.partDescriptor.DynamicPart");
MPartStack stack = (MPartStack)modelService.find("com.abc.xyz.project.partstack.2", application);
     stack.getChildren().add(part);
            part.setLabel("New Dynamic Part");
    part.setVisible(true);
    part.setCloseable(true);
    partService.showPart(part, PartState.ACTIVATE);


有人可以建议我一些想法吗?

提前致谢

最佳答案

动态创建“添加新零件”,如示例中所示(示例用于输入零件):

MPartStack stack = (MPartStack) modelService.find("your.part.stack.id", application);
inputPart = MBasicFactory.INSTANCE.createInputPart();
inputPart.setContributionURI("bundleclass://your.plugin/your.class");
inputPart.setCloseable(isCloseable);
stack.getChildren().add(inputPart);
inputPart.setLabel("Add new part");


“ bundleclass://your.plugin/your.class”是对您的班级内容的引用。就像片段编辑器中的“ Class URI”字段。上面的代码向零件堆栈添加了一个新选项卡,但未激活零件,因此不会调用content类中的@Postconstruct方法。用户单击选项卡时,将调用@Postconstruct方法。您可以在那里再次创建新零件。

关于java - 在eclipse e4中单击最后一个零件(Tab)时动态创建零件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22661035/

10-13 00:53