繁体   English   中英

Eclipse RCP:如何在文本编辑器中为选择创建弹出菜单?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM