使用Eclipse模板生成此示例,当我在项目资源管理器中选择文件时,该示例工作正常。但是,当我右键单击文本编辑器或甚至选择了一些文本时,我也希望它可用。
objectcontribution 中使用的 objectClass 是什么?
<extension point="org.eclipse.ui.popupMenus">
<objectContribution
id="com.example.popup-cli.contribution1"
objectClass="org.eclipse.core.resources.IFile">
<menu
id="com.example.popup.menu1"
label="New Submenu"
path="additions">
<separator
name="group1">
</separator>
</menu>
<action
class="com.example.popup.actions.NewAction"
enablesFor="1"
id="com.example.popup.newAction"
label="New Action"
menubarPath="com.example.popup.menu1/group1">
</action>
</objectContribution>
</extension>
答案 0 :(得分:0)
使用org.eclipse.ui.menus
扩展点,您可以使用activeEditorInput
变量来测试当前编辑器输入(正在编辑的文件)。
例如:
<extension point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:#AbstractTextEditorRulerContext?after=QuickDiff.Toggle">
<command
commandId="org.eclipse.team.cvs.ui.showAnnotation"
label="%ShowAnnotationAction.label"
style="push">
<visibleWhen
checkEnabled="false">
<with variable="activeEditorInput">
<test
property="org.eclipse.team.internal.ccvs.ui.isManaged"
value="true">
</test>
</with>
</visibleWhen>
</command>
</menuContribution>
</extension>
以上内容来自CVS插件
答案 1 :(得分:0)
我不确定这是否是理想的解决方案,但它确实有效,当我按下项目浏览器中的资源并在<中>时,它会使弹出菜单可见strong>编辑器,如果它与Project Explorer中的资源相关联。
这不完美,因为它仍然在非文本编辑器编辑器/视图中显示,但我可以忽略对这些情况的操作。如果有人提出改进建议,请发表评论。
<extension point="org.eclipse.core.expressions.definitions">
<definition id="com.example.definitions.resourceDefinition">
<adapt type="org.eclipse.core.resources.IResource"/>
</definition>
</extension>
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="popup:org.eclipse.ui.popup.any?after=additions">
<command commandId="com.example.commands.myCommand">
<visibleWhen checkEnabled="false">
<or>
<with variable="activeEditorInput">
<reference definitionId="com.example.definitions.resourceDefinition"/>
</with>
<iterate>
<reference definitionId="com.example.definitions.resourceDefinition"/>
</iterate>
</or>
</visibleWhen>
</command>
<menuContribution>
</extension>
&#13;