2012-09-27 42 views
10

Estoy tratando de agregar una entrada de submenú a un elemento del menú contextual de Eclipse Package Explorer.Cómo agregar una entrada de submenú a la opción del menú contextual de Eclipse Package Explorer utilizando org.eclipse.ui.menus?

La entrada del menú ya está definida a través de org.eclipse.ui.popupMenus en otro complemento, no en el que estoy trabajando. (Ese complemento se agrega a la lista de dependencias de mi complemento). También hay elementos agregados en su submenú, pero también usa org.eclipse.ui.popupMenus, y estoy tratando de hacer esto a través de org.eclipse.ui.menus.

Para empezar, hice lo siguiente:

  • que añade org.eclipse.ui.commands y org.eclipse.ui.menus extensiones.
  • que define un comando, respectivamente, una menuContribution así:

enter image description here

Esto agrega el artículo en cualquier menú de contexto ... Así que habría que reemplazar "org.eclipse.ui.popup .any? after = additions "de la URL de ubicación con el id del submenú en el que quiero que aparezca mi artículo.

Mi problema es: cómo determinar una ubicación correctaURI? que utiliza el espía menú (ALT + SHIFT + F2) e inspeccionó el submenú Quiero contribuir a, y he recibido el URI siguiente:

menú:? YYY después = ZZZ, donde:

YYY es la identificación del menú que ya está definido y al que quiero agregar el elemento del submenú ZZZ es la identificación de la acción del submenú, que hice clic (usando el espía)

intenté lo siguiente, pero el elemento del submenú no aparece:

  • menú: YYY
  • emergente [= después de adiciones?]: [?] Después de adiciones = YYY

favor ayude :)

+0

has intentado popup: YYYY? After = ZZZ? – mhussein

+0

Sí, lo he intentado también, y no ayudó. Pero me las he arreglado para hacer que funcione. Tuve que definir una nueva contribución de menú y un menú con la misma identificación y etiqueta que el menú ya definido - Etiqueta YYY & YYY, como esta: con esto, y la sustitución de la locationURI con: "? emergente:? YYY después = adiciones" ahora funciona. No sé si esta es la manera correcta de hacerlo, pero funciona. – catalina

+0

... y muchas gracias por su interés y por tratar de ayudarme :) – catalina

Respuesta

10

logré hacer que funcione mediante la definición de un nuevo menú y la contribución un menú con la misma identificación y etiqueta que el menú ya definido. La solución final se ve así:

<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

Esta es la única solución. Las contribuciones de 'org.eclipse.ui.menus' se aplican antes que cualquiera de las extensiones de acción heredadas, como' org.eclipse.ui.actionSets' o 'org.eclipse.ui.popupMenus'. –

+0

el URI para el menú contextual del ** Paquete ** Explorer es 'popup: org.eclipse.jdt.ui.PackageExplorer? After = additions' –

Cuestiones relacionadas