弹出菜单中的可见性
Visibility in popup menus
我已经创建了一个eclipse 插件项目。我希望这个插件可以作为弹出窗口使用。因此,我用 "org.eclipse.ui.popupMenus" 创建了一个扩展点(我知道它现在已被弃用,我们的是一个旧项目。)
我希望此弹出选项仅出现在具有特定扩展名的文件级别(比如 xml)。目前,它出现在右键单击的任何位置。
我浏览了 Internet 并了解到我可以添加一个 "visibility" 标签来设置此弹出窗口应该可见的规则。但是,我不知道它的语法。
有人可以帮帮我吗?如何设置弹出菜单的可见性,使其仅在我右键单击扩展名为 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>
此致,
亚什
visibility
只能是 objectContribution
not 操作的子项。
在任何情况下您都可以使用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>
进一步将操作限制为 'content type' 为 'Ant build file'
的文件
要匹配多个名称模式,请删除 nameFilter
并使用 visibility
,例如:
<visibility>
<or>
<objectState name="name" value="*.xml"/>
<objectState name="name" value="*.java"/>
</or>
</visibility>
我已经创建了一个eclipse 插件项目。我希望这个插件可以作为弹出窗口使用。因此,我用 "org.eclipse.ui.popupMenus" 创建了一个扩展点(我知道它现在已被弃用,我们的是一个旧项目。)
我希望此弹出选项仅出现在具有特定扩展名的文件级别(比如 xml)。目前,它出现在右键单击的任何位置。
我浏览了 Internet 并了解到我可以添加一个 "visibility" 标签来设置此弹出窗口应该可见的规则。但是,我不知道它的语法。
有人可以帮帮我吗?如何设置弹出菜单的可见性,使其仅在我右键单击扩展名为 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>
此致, 亚什
visibility
只能是 objectContribution
not 操作的子项。
在任何情况下您都可以使用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>
进一步将操作限制为 'content type' 为 'Ant build file'
的文件要匹配多个名称模式,请删除 nameFilter
并使用 visibility
,例如:
<visibility>
<or>
<objectState name="name" value="*.xml"/>
<objectState name="name" value="*.java"/>
</or>
</visibility>