日蚀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 中已被删除。
我对 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 中已被删除。