【问题标题】:How to enable command in the menu ? (Eclipse Plugin)如何在菜单中启用命令? (Eclipse 插件)
【发布时间】:2015-12-24 09:36:53
【问题描述】:

我在弹出菜单中创建了一个新命令,但它被禁用(不可点击)。 我应该在我的代码中添加哪些标签才能在特定文件(例如 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

>

附: 我收到此警告:“无法找到属性 'commandId' 中的引用标识符 'test.popup.actions.NewAction'”

【问题讨论】:

    标签: plugins eclipse-plugin


    【解决方案1】:

    您必须使用org.eclipse.ui.commands 扩展点定义命令ID。比如:

    <extension
       point="org.eclipse.ui.commands">
      <command
            id="test.popup.actions.NewAction"
            description="Command description"
            name="Command name">
      </command>
    

    然后您必须使用org.eclipse.ui.handlers 扩展点为命令定义至少一个处理程序:

    <extension
       point="org.eclipse.ui.handlers">
      <handler
         class="my.package.NewActionHandler"
         commandId="test.popup.actions.NewAction">
      </handler>
    

    使菜单项仅在使用菜单贡献命令的&lt;visibleWhen&gt; 元素选择 XML 时可见。比如:

    <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>
    

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

    【讨论】:

    • 我应该在哪里写“右键单击xml文件时启用”代码?
    • 添加了 visibleWhen 元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多