日蚀RCP。如何为不同的视角制作不同的 ToolBarItems

Eclipse RCP. How to make different ToolBarItems for different Perspectives

我对 Eclipse RCP 开发还很陌生。 在我的 Eclipse RCP 应用程序中有不同的视角。我希望他们有不同的 ToolBarItems。根据官方文档,此工具栏的内容会根据活动视角进行更改。但经过大量谷歌搜索后,我仍然不知道如何。

我最好的想法如下:

首先我创建项目并将它们添加到工具栏和酷栏

protected void fillCoolBar(ICoolBarManager coolBar) {
    IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);

    ActionContributionItem saveItem = new ActionContributionItem(saveAction);
    saveItem.setId(ApplicationActionBarAdvisor.SAVE);
    toolbar.add(saveItem);

    ActionContributionItem saveAllItem = new ActionContributionItem(saveAllAction);
    saveAllItem.setId("saveAllItem");
    toolbar.add(saveAllItem);

    coolBar.add(new ToolBarContributionItem(toolbar, "main"));
}

然后,在 Perspective class 中,我覆盖了 createInitialLayout() 方法,我只是隐藏了不需要的项目。

@Override
public void createInitialLayout(IPageLayout layout) {
    String editorArea = layout.getEditorArea();
    PageLayout pl = (PageLayout) layout;
    pl.addHiddenToolBarItemId(ApplicationActionBarAdvisor.SAVE);
    pl.setEditorAreaVisible(false); 
    pl.addStandaloneView(View.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
    pl.getViewLayout(View.ID).setCloseable(false);
}

它不起作用,但我不知道我错过了什么。非常感谢任何帮助。

使用 org.eclipse.ui.perspectiveExtensions 扩展点并为透视图贡献一个 actionSet

例如,这是 JDT 插件的一部分:

 <extension
     point="org.eclipse.ui.perspectiveExtensions">

  <perspectiveExtension targetID="org.eclipse.debug.ui.DebugPerspective">
     <perspectiveShortcut id="org.eclipse.jdt.ui.JavaPerspective"/>
     <perspectiveShortcut id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
     <actionSet id="org.eclipse.jdt.ui.JavaActionSet"/>
     <showInPart id="org.eclipse.jdt.ui.PackageExplorer"/>
  </perspectiveExtension>

注意:不要使用内部classes,例如PageLayout,它们可能会随时更改,事实上这个class在 Eclipse 3 中,但在 Eclipse 4 中已被删除。