Plugins 弹出菜单中的可见性

Plugins 弹出菜单中的可见性,plugins,eclipse-plugin,eclipse-rcp,popupmenu,eclipse-sirius,Plugins,Eclipse Plugin,Eclipse Rcp,Popupmenu,Eclipse Sirius,我已经创建了一个eclipse插件项目。我希望这个插件可以作为一个弹出窗口。因此,我用“org.eclipse.ui.popupmones”创建了一个扩展点(我知道它现在已经被弃用了,我们的是一个旧项目) 我希望这个弹出选项只出现在具有特定扩展名(比如xml)的文件级别。目前,它出现在右键单击的任何位置 我环顾了一下互联网,知道我可以添加一个“可见性”标签,它可以设置弹出窗口应该在哪里可见的规则。然而,我不知道这句话的语法 有人能帮我吗?如何设置弹出菜单的可见性,使其仅在右键单击扩展名为xml的

我已经创建了一个eclipse插件项目。我希望这个插件可以作为一个弹出窗口。因此,我用“org.eclipse.ui.popupmones”创建了一个扩展点(我知道它现在已经被弃用了,我们的是一个旧项目)

我希望这个弹出选项只出现在具有特定扩展名(比如xml)的文件级别。目前,它出现在右键单击的任何位置

我环顾了一下互联网,知道我可以添加一个“可见性”标签,它可以设置弹出窗口应该在哪里可见的规则。然而,我不知道这句话的语法

有人能帮我吗?如何设置弹出菜单的可见性,使其仅在右键单击扩展名为xml的文件名时可见

    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.2"?>
    <plugin>
       <extension point="org.eclipse.ui.popupMenus">
          <objectContribution
                adaptable="true"
                objectClass="org.eclipse.core.resources.IFile"
                nameFilter="*.*"
                id="org.eclipse.lyo.tools.codegenerator.ui.popupMenus.contribution.IFile">
             <menu id="org.eclipse.acceleo.module.menu" label="Acceleo Model Code Generator" path="additionsAcceleo">
                   <groupMarker name="acceleo"/> 
             </menu>
             <action
                   class="org.eclipse.lyo.tools.codegenerator.ui.popupMenus.AcceleoGenerateCodegeneratorAction"
                   enablesFor="+"
                   id="org.eclipse.lyo.tools.codegenerator.ui.popupMenus.AcceleoGenerateCodegeneratorAction"
                   icon="icons/default.gif"
                   label="Generate Java Code from Model"
                   menubarPath="org.eclipse.acceleo.module.menu/acceleo"/>
                   <visibility>
                              //what should come here?

                   </visibility>
          </objectContribution>
       </extension>
    </plugin>

)

问候,,
Yash

可见性
只能是
对象贡献
的子对象,而不能是
操作

在任何情况下,都可以使用
namefilter
属性来限制文件名匹配。您将只使用
可见性
执行更复杂的检查

例如,这是JDT项目之一:


在这个

adaptive=“true”
objectClass=“org.eclipse.core.resources.IFile”
将操作限制到工作区文件

nameFilter=“*.xml”
将操作限制为以.xml结尾的文件


进一步将操作限制为“内容类型”为“Ant build file”的文件

要匹配多个名称模式,请删除
名称过滤器
,并使用
可见性
,如:



谢谢你的回答,格雷格。补充问题。如果要为nameFilter设置多个值。怎么做?nameFilter=“*.xml,*.java”不起作用。添加两个nameFilter也不起作用。nameFilter只接受一个模式。这是XML,不能指定两次nameFilter属性。取而代之的是删除
nameFilter
,并使用可见性-请参阅更新的答案。