Eclipse 4重用工具栏用于不同的部分

时间:2014-05-05 11:43:34

标签: java eclipse eclipse-rcp e4

我在不同的PartStacks中构建了大约10-15个部件。每个零件都应该有一些Handled Tool Item,其中4个是相同的。 因此,我想重复使用这4个工具栏项,而不是手动将它们添加到每个部分。

在Eclipse 3.x中,我们通过继承构建了这些工具栏 - 每个视图都应该有这个工具栏项扩展一个类,它会添加这些项。

是否有正确的方法来拥有"工具栏模板"?

想要任何想法;)

干杯,斯蒂芬

解决方案 :(谢谢格雷格)

谢谢Greg,处理器工作了。

以下是相应的代码:

@Inject
@Named("de.test.myperspective")
private MPerspective perspective;

@Inject
private MApplication application;

@Execute
public void execute(EModelService modelService) {
    if (perspective != null) {
        List<MPart> parts = modelService.findElements(perspective, null,
                MPart.class, null);
        for (MPart part : parts) {
            MUIElement snip = modelService.cloneSnippet(application,
                    "de.test.mytoolbarsnippet", null);
            MToolBar toolbar = (MToolBar) snip;
            part.getToolbar().getChildren()
                    .addAll(0, toolbar.getChildren());
        }
    }
}

在fragment.xmi中,我向Application-&gt; Snippets添加了一个新的ModelFragment,并添加了一个ID为&#34; de.test.mytoolbarsnippet&#34;的工具栏。那里。

1 个答案:

答案 0 :(得分:0)

您可以在应用程序模型中使用Snippet

使用EModelService cloneSnippet方法从代码段创建控件。

您可以在应用程序模型上运行的处理器中执行此操作 - 请参阅org.eclipse.e4.workbench.model扩展点processor元素。