簡體   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