我创建了一个eclipse插件项目。我希望这个插件可以作为弹出窗口使用。因此,我用" org.eclipse.ui.popupMenus"创建了一个扩展点。 (我知道它现在已被弃用,我们的这是一个旧项目。)
我希望此弹出选项仅出现在具有特定扩展名的文件级别(例如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>
此致 佳日
答案 0 :(得分:1)
visibility
只能是objectContribution
不行动的孩子。
在任何情况下,您都可以使用namefilter
属性来限制文件名匹配。您只能使用visiblity
进行更复杂的检查。
例如,这是JDT项目之一:
<objectContribution
adaptable="true"
objectClass="org.eclipse.core.resources.IFile"
nameFilter="*.xml"
id="org.eclipse.jdt.internal.ui.javadocexport.JavadocWizard">
<visibility>
<objectState name="contentTypeId" value="org.eclipse.ant.core.antBuildFile"/>
</visibility>
在此
adaptable="true"
objectClass="org.eclipse.core.resources.IFile"
将操作限制为工作区文件
nameFilter="*.xml"
将操作限制为以.xml
结尾的文件 <visibility>
<objectState name="contentTypeId" value="org.eclipse.ant.core.antBuildFile"/>
</visibility>
进一步将操作限制为“内容类型”为“Ant构建文件”
的文件要匹配多个名称模式,请移除nameFilter
并使用visibility
之类的内容:
<visibility>
<or>
<objectState name="name" value="*.xml"/>
<objectState name="name" value="*.java"/>
</or>
</visibility>