2010-11-24 54 views

回答

4

这里是我发现,在一个开源项目,它的工作对我来说:

<extension 
     point="org.eclipse.ui.menus"> 
    <menuContribution 
     locationURI="menu:org.eclipse.ui.main.menu?after=additions"> 
     <menu 
      id="menu1" 
      label="Menu 1"> 
     <visibleWhen checkEnabled="false"> 
      <with variable="activeWorkbenchWindow.activePerspective"> 
       <equals value="myperspective"/> 
      </with> 
     </visibleWhen> 
     <dynamic class="MenuPopulationClass" 
       id="MenuPopulation"/> 
     </menu> 
    </menuContribution> 
</extension> 
+0

如果我想在特定视图或页面处于活动状态时显示菜单,是否可以使用此方法?例如,只有当“大纲”视图处于活动状态时才显示。 – Icarin 2014-10-13 22:21:18

0

这是你需要做的事情的简要概述。

要限制顶层菜单的可见性,请通过“扩展点选择”对话框创建一个空的ActionSet

接下来,将visibleWhen表达式添加到plugin.xml中定义的顶层菜单项。右键单击菜单项并选择New - > visibleWhen。右键单击visibleWhen元素并选择New - >与

设置变量 - “activeContexts”

上右键单击与元素,并选择新建 - >迭代。选择新的iterate元素并修改其属性,以便任何匹配的元素都将导致表达式评估true

右键单击iterate元素并选择New - > equals,然后修改value属性。

值=新ActionSet

最后,顶级菜单项添加到您的ActionSet。

+0

我不使用“菜单”扩展点使用actionSet但菜单的贡献。我找到了一个方法,比较我的答案。不管怎样,谢谢你。 – 2010-11-26 15:46:01

1

我建议使用命令框架。

this tutorial可以帮助你

要限制你的命令的知名度,你应该检查相提并论。 5