Eclipse RCP:操作 "RESET_PERSPECTIVE" 显示以前隐藏的菜单项
Eclipse RCP: Action "RESET_PERSPECTIVE" shows previously hidden menu entries
由于从 Eclipse 3.0 迁移到 4.4,有必要隐藏不必要的菜单项,例如 "open file" 和 "key assist"。
我通过在我的 postWindowOpen
方法中调用 hideActionSet
来隐藏它们
public void postWindowOpen(IWorkbenchWindowConfigurer configurer)
{
IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
for(int i = 0; i < windows.length; ++i)
{
IWorkbenchPage page = windows[i].getActivePage();
if(page != null)
{
page.hideActionSet("org.eclipse.ui.actionSet.keyBindings");
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
}
}
}
目前为止一切正常。但是当重新排列我的视角,然后重置视角,然后换到另一个视角时,不必要的菜单项又出现了。
我尝试通过在我的 perspectiveActivated
和 perspectiveChanged
方法中调用相同的代码来解决这个问题。 hideActionSet
方法都达到了,但是没有效果。
以下是这两种方法:
public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective)
{
if( perspective.getId().equals(m_PerspektivenID) || m_PerspektivenID.equals(STANDARDAKTION))
{
setEnabled( true );
}
else
{
setEnabled( false );
}
if(page != null)
{
page.hideActionSet("org.eclipse.ui.actionSet.keyBindings");
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
}
}
public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId)
{
if(changeId.equals(IWorkbenchPage.CHANGE_RESET_COMPLETE))
{
if(page != null)
{
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
page.hideActionSet("org.eclipse.ui.actionSet.keyBindings");
}
}
}
谢谢,成功了。我只是习惯了错误的ID。当您使用方法 hideActionSet
时,您必须使用 ID org.eclipse.ui.actionSet.openFiles
,但是当您想要使用活动隐藏它们时,您必须使用 org.eclipse.ui.edit.text.openLocalFile.
总之:
- 用
hideActionSet
隐藏:使用The active contribution item identifier
- 隐藏活动:使用
The active action definition identifier
由于从 Eclipse 3.0 迁移到 4.4,有必要隐藏不必要的菜单项,例如 "open file" 和 "key assist"。
我通过在我的 postWindowOpen
方法中调用 hideActionSet
来隐藏它们
public void postWindowOpen(IWorkbenchWindowConfigurer configurer)
{
IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
for(int i = 0; i < windows.length; ++i)
{
IWorkbenchPage page = windows[i].getActivePage();
if(page != null)
{
page.hideActionSet("org.eclipse.ui.actionSet.keyBindings");
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
}
}
}
目前为止一切正常。但是当重新排列我的视角,然后重置视角,然后换到另一个视角时,不必要的菜单项又出现了。
我尝试通过在我的 perspectiveActivated
和 perspectiveChanged
方法中调用相同的代码来解决这个问题。 hideActionSet
方法都达到了,但是没有效果。
以下是这两种方法:
public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective)
{
if( perspective.getId().equals(m_PerspektivenID) || m_PerspektivenID.equals(STANDARDAKTION))
{
setEnabled( true );
}
else
{
setEnabled( false );
}
if(page != null)
{
page.hideActionSet("org.eclipse.ui.actionSet.keyBindings");
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
}
}
public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId)
{
if(changeId.equals(IWorkbenchPage.CHANGE_RESET_COMPLETE))
{
if(page != null)
{
page.hideActionSet("org.eclipse.ui.actionSet.openFiles");
page.hideActionSet("org.eclipse.ui.actionSet.keyBindings");
}
}
}
谢谢,成功了。我只是习惯了错误的ID。当您使用方法 hideActionSet
时,您必须使用 ID org.eclipse.ui.actionSet.openFiles
,但是当您想要使用活动隐藏它们时,您必须使用 org.eclipse.ui.edit.text.openLocalFile.
总之:
- 用
hideActionSet
隐藏:使用The active contribution item identifier
- 隐藏活动:使用
The active action definition identifier