【发布时间】:2014-07-21 14:01:40
【问题描述】:
编辑重述问题以及我要去哪里:
我现在已将问题简化为一个非常小的示例:我有一个带有菜单的 Eclipse 插件。它看起来像这样:
我希望该菜单仅在查看具有特定文件扩展名的文件时出现(例如,本示例中的 .txt)。
使用下面 Greg 的回答,我有以下 plugin.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu
id="ARTful.menus.sampleMenu"
label="Hide Me"
mnemonic="M">
<command
commandId="ArtEditor.command.format"
id="ARTful.menus.sampleCommand"
mnemonic="S"
tooltip="Hello!">
</command>
<visibleWhen
checkEnabled="false">
<with variable="selection">
<iterate
ifEmpty="false">
<adapt type="org.eclipse.core.resources.IResource">
<test property="org.eclipse.core.resources.extension" value="txt" />
</adapt>
</iterate>
</with>
</visibleWhen>
</menu>
</menuContribution>
</extension>
</plugin>
使用此设置:
但不幸的是,这隐藏了所有文件扩展名的菜单。我究竟做错了什么?
原始问题如下
我已经尝试了visibleWhen for command to appear in context menu 和其他几个地方的解决方案。
我有一个带有菜单的 Eclipse 插件。它看起来像这样:
我希望该菜单仅在查看特定文件扩展名的文件时出现(它称为“源”,因此如果查看带有插件安装的说 java 文件,突然出现两个“源”菜单,那就是只是没有帮助)。
我正在使用“visibleWhen”构造。
我已经尝试测试扩展属性:
(产生这个 plugin.xml 片段)
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu
id="ARTful.menus.sampleMenu"
label="Source"
mnemonic="M">
<command
commandId="ArtEditor.command.format"
id="ARTful.menus.sampleCommand"
mnemonic="S"
tooltip="Format">
</command>
<command
commandId="ArtEditor.command.latex"
style="push"
tooltip="LaTex Output">
</command>
<command
commandId="ArtEditor.command.format.alpha"
style="push">
</command>
<visibleWhen
checkEnabled="false">
<test
property="org.eclipse.core.resources.extension"
value="art">
</test>
</visibleWhen>
</menu>
</menuContribution>
但菜单完全隐藏,即使我想显示。我也试过测试 name 属性...
这给出了:
<visibleWhen
checkEnabled="false">
<test
property="org.eclipse.core.resources.name"
value="*.art">
</test>
</visibleWhen>
但仍然隐藏。我错过了什么?
【问题讨论】:
标签: xml eclipse eclipse-plugin