Eclipse RCP:如何使用Command框架正确创建具有全局操作的工具栏?

时间:2014-08-26 21:33:18

标签: eclipse-rcp

我的RCP应用程序里面有一个带有TreeViewer的视图。使用Command框架,我正在尝试使用可以对树元素执行常见操作的项来填充其工具栏,例如“delete"”,properties"等

我希望根据TreeViewer的选择状态启用/禁用图标,但它们应始终可见。

这是我到目前为止所提出的内容(我只显示删除命令,其他内容非常相似):

<extension point="org.eclipse.ui.handlers">
    <handler commandId="org.eclipse.ui.edit.delete" class="my.custom.DeleteHandler">
        <activeWhen>
            <with variable="activePartId">
                <equals value="my.custom.ViewPart" />
            </with>
        </activeWhen>
        <enabledWhen>
            <count value="(0-" />
        </enabledWhen>
    </handler>
</extension>

<extension point="org.eclipse.ui.menus">
    <menuContribution locationURI="toolbar:my.custom.ViewPart">        
        <command commandId="org.eclipse.ui.edit.delete" label="Delete" />
    </menuContribution>
</extension>

只要活动部分是我的树视图,一切正常。但是,当焦点转到编辑器时,按钮会被激活。我想这是因为我的自定义处理程序已停用,而偏向于默认的工作台处理程序。

如何保留&#34;删除&#34;,&#34;属性&#34;当活动部件不是我的视图部件时,可见但禁用的项目?

1 个答案:

答案 0 :(得分:0)

请勿使用<activeWhen>代替<enabledWhen>

中的所有条件
<enabledWhen>
  <and>
     <count value="(0-" />
     <with variable="activePartId">
        <equals value="my.custom.ViewPart" />
     </with>
   </and>
</enabledWhen>