我需要完全控制透视菜单。
我已经入侵平台以禁用CONTEXT菜单:
private void disablePerspectiveToolbarMenu() {
PerspectiveBarManager perspectiveBarManager =
((WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow()).getPerspectiveBar();
if (perspectiveBarManager!=null){
ToolBar toolBar = perspectiveBarManager.getControl();
Listener[] listeners = toolBar.getListeners(SWT.MenuDetect);
if (listeners != null){
for (Listener listener : listeners){
toolBar.removeListener(SWT.MenuDetect, listener);
}
}
}
}
但我还需要控制PERSPECTIVE MENU的默认内容。总有一个选项可以访问Perspective List Shell。我需要从菜单中删除该选项。
令人遗憾的是,透视菜单完全不受用户控制。我只需要将视角添加到菜单中,仅此而已!
感谢。
答案 0 :(得分:2)
有三种可能的选择可以摆脱其他:
设置
org.eclipse.ui.IWorkbenchPreferenceConstants.SHOW_OTHER_IN_PERSPECTIVE_MENU
您的RCP应用中的false
偏好设置。这可以通过在产品定义中加入plugin_customization.ini
文件来完成。
在RCP应用中修补工作台。
看一下
org.eclipse.ui.internal.PerspectiveBarNewContributionItem
和
org.eclipse.ui.actions.ContributionItemFactory.PERSPECTIVES_SHORTLIST
答案 1 :(得分:1)
我做了一些研究,解决方案没有按照我的预期运作。最后我发现了我的错误。
要在plugin_customization.ini中设置属性,我尝试了:
org.eclipse.ui.IWorkbenchPreferenceConstants.SHOW_OTHER_IN_PERSPECTIVE_MENU=false
但这不是正确的表示法!请参阅我最后添加到plugin_customization.xml
的正确解决方案 org.eclipse.ui/SHOW_OTHER_IN_PERSPECTIVE_MENU=false
所以接口的名称或指定属性的类不是表示法的一部分!