我们正在开发一个 eclipse-plugin 并对 package-explorer 中的上下文菜单做出一些贡献。使用 old org.eclipse.ui.popupMenus
,我们可以在贡献中指定一个名称过滤器,因此仅当所选文件具有特定名称时才会显示菜单条目:
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="false"
id="..."
nameFilter="file.xml"
objectClass="org.eclipse.core.resources.IFile">
...
</objectContribution>
</extension>
现在,我们想使用新的方式来创建上下文菜单,如果它没有文件,也可以禁用该条目:
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<command
commandId="..."
label="..."
style="push">
</command>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
id="..."
name="...">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="..."
commandId="...">
<activeWhen>
<with
variable="selection">
<iterate
ifEmpty="false"
operator="and">
<adapt
type="org.eclipse.core.resources.IFile">
</adapt>
</iterate>
</with>
</activeWhen>
</handler>
</extension>
(同时比较:在 Eclipse 插件中启用/禁用菜单项)
但是,我们不仅希望在没有选择文件时禁用该条目,而且在文件不是 xml 文件时禁用该条目。我们试图破解<activeWhen>
-tag 中的某些内容,但我们找不到让它也监视文件名的解决方案。
有可能这样做吗?如果:如何?