如何在菜单中启用命令? (Eclipse插件)

时间:2015-12-24 09:36:53

标签: plugins eclipse-plugin

我在弹出菜单中创建了一个新命令,但它被禁用(不可点击)。 我应该在代码中添加哪些标记才能在特定文件(例如xml文件)上启用它?

这是我的代码:

<plugin>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
        <command
            commandId= "test.popup.actions.NewAction"
            label="Run mycommand"
            mnemonic="newAction1"
            tooltip="Do something with this project">
        </command>
      </menuContribution>
   </extension

&GT;

P.S, 我收到此警告:&#34;引用标识符&#39; test.popup.actions.NewAction&#39;在属性&#39; commandId&#39;无法找到&#34;

1 个答案:

答案 0 :(得分:1)

您必须使用<extension point="org.eclipse.ui.commands"> <command id="test.popup.actions.NewAction" description="Command description" name="Command name"> </command> 扩展点定义命令ID。类似的东西:

org.eclipse.ui.handlers

然后,您必须使用<extension point="org.eclipse.ui.handlers"> <handler class="my.package.NewActionHandler" commandId="test.popup.actions.NewAction"> </handler> 扩展点为该命令定义至少一个处理程序:

<visibleWhen>

仅在使用菜单贡献命令的<extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions"> <command commandId= "test.popup.actions.NewAction" label="Run mycommand" mnemonic="newAction1" tooltip="Do something with this project"> <visibleWhen checkEnabled="false"> <iterate ifEmpty="false" operator="or"> <test property="org.eclipse.core.resources.name" value="*.xml"> </test> </iterate> </visibleWhen> </command> 元素选择XML时才使菜单项可见。类似的东西:

def user():
    return dict(form=auth())

Eclipse帮助(以及许多其他地方)提供了更多信息。