我已经在部分堆栈中创建了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/