[英]Eclipse RCP: how to create a popup menu for the selection in a text editor?
使用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>
使用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插件
我不确定这是否是理想的解决方案,但是它是否有效,当我在Project Explorer中右键单击某个资源时,如果它与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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.