2012-09-27 11 views
10

Sto tentando di aggiungere una voce di sottomenu a un elemento dal menu di scelta rapida di Eclipse Package Explorer.Come aggiungere una voce di sottomenu alla voce di menu di contesto di Eclipse Package Explorer utilizzando org.eclipse.ui.menus?

La voce di menu è già definita tramite org.eclipse.ui.popupMenus in un altro plug-in, non in quello in cui lavoro. (Questo plugin è aggiunto all'elenco delle dipendenze del mio plugin). Ci sono anche elementi aggiunti nel suo sottomenu, ma anche usando org.eclipse.ui.popupMenus, e sto cercando di farlo tramite org.eclipse.ui.menus.

per cominciare, ho fatto la seguente:

  • ho aggiunto org.eclipse.ui.commands e org.eclipse.ui.menus estensioni.
  • ho definito un comando, rispettivamente, un menuContribution come questo:

enter image description here

Questo aggiunge la voce in qualsiasi menu contestuale ... Quindi avrei dovuto sostituire "org.eclipse.ui.popup .any? after = additions "dal locationURI con l'id del sottomenu Voglio che il mio articolo compaia.

Il mio problema è: come determinare un locationURI corretto? Ho usato la spia menu (ALT + SHIFT + F2) e ispezionato il sottomenu voglio contribuire a, e ho ricevuto il seguente URI:

menù:? YYY dopo = ZZZ, dove:

YYY è l'id del menu che è già definito e al quale voglio aggiungere la voce di sottomenu ZZZ è l'id dell'azione dal sottomenu, che ho cliccato su (usando la spia)

Ho provato il seguente, ma l'elemento del sottomenu non appare:

  • menù: YYY
  • comparsa [dopo = aggiunte?]: [?] Dopo = aggiunte YYY

Please help :)

+0

hai provato popup: YYYY? After = ZZZ? – mhussein

+0

Sì, ho provato anche quello, e non è stato d'aiuto. Ma sono appena riuscito a farlo funzionare. Ho dovuto definire un nuovo contributo del menu e un menu con lo stesso ID e l'etichetta del menu già definito - etichetta YYY e YYY, come questa: con questo, e la sostituzione del locationURI con: "a finestra:? YYY dopo = integrazioni" ora funziona. Non so se questo è il modo giusto per farlo, ma funziona. – catalina

+0

... e grazie mille per il vostro interesse e per aver provato ad aiutarmi :) – catalina

risposta

10

sono riuscito a farlo funzionare attraverso la definizione di un nuovo contributo menu e un menu con lo stesso ID e l'etichetta del menu già definito. La soluzione finale è la seguente:

<extension point="org.eclipse.ui.menus"> 
    <menuContribution 
     locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions"> 
    <menu 
      id="YYY" 
      label="%YYYs_label"> 
    </menu> 
    </menuContribution> 
    <menuContribution 
     locationURI="popup:YYY?after=additions"> 
    <command 
      commandId="example.MyCommandHandlerID" 
      icon="icons/somePhoto.gif" 
      label="MyLabel" 
      style="push"> 
    </command> 
    </menuContribution> 
</extension> 
+2

Questa è l'unica soluzione. I contributi di "org.eclipse.ui.menus' sono applicati prima di qualsiasi estensione di azione legacy, come" org.eclipse.ui.actionSets "o" org.eclipse.ui.popupMenus ". –

+0

l'URI per il ** pacchetto ** Il menu di scelta rapida di Explorer è 'popup: org.eclipse.jdt.ui.PackageExplorer? After = additions' –

Problemi correlati