我想从我的 RCP 应用程序中删除文件、编辑、源代码、重构等菜单 我可以使用hideActionSet()
吗?或者我该怎么办?
问问题
3021 次
2 回答
4
这是正确的; 在您的ApplicationWorkbenchWindowAdvisor中,覆盖postWindowOpen()。
棘手的一点通常是找出要删除的操作集的名称,但您可以使用旧的备用 ALT-SHIFT-F2(“插件菜单间谍”的默认键绑定)并单击其中一个菜单要删除的项目。
请注意,如果菜单项被禁用,间谍不会给你任何关于它的信息。
public void postWindowOpen() {
runApplicationWorkbenchDelegate();
// remove unwanted UI contributions that eclipse makes by default
IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
for (int i = 0; i < windows.length; ++i) {
IWorkbenchPage page = windows[i].getActivePage();
if (page != null) {
// hide generic 'File' commands
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
// hide 'Convert Line Delimiters To...'
page.hideActionSet("org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo");
// hide 'Search' commands
page.hideActionSet("org.eclipse.search.searchActionSet");
// hide 'Annotation' commands
page.hideActionSet("org.eclipse.ui.edit.text.actionSet.annotationNavigation");
// hide 'Forward/Back' type navigation commands
page.hideActionSet("org.eclipse.ui.edit.text.actionSet.navigation");
}
}
}
于 2012-08-02T15:30:06.333 回答
0
虽然问题很老:
Lars Vogel 关于 Eclipse 活动的教程展示了如何在 RCP 应用程序中隐藏整个菜单,而不是删除单个菜单条目。
编辑:或者,您可以使用附加到工作台窗口的 MenuManager 来显示或隐藏菜单/贡献。尝试以下代码隐藏所有菜单:
WorkbenchWindow workbenchWin = (WorkbenchWindow)PlatformUI.getWorkbench().getActiveWorkbenchWindow();
MenuManager menuManager = workbenchWin.getMenuManager();
IContributionItem[] items = menuManager.getItems();
for(IContributionItem item : items) {
item.setVisible(false);
}
于 2014-04-09T15:20:34.060 回答