Estoy intentando configurar la visibilidad de un comando dentro del menú contextual usando la expresión 'visibleCuando' dentro de un menúContribución. Lo que estoy tratando de hacer es que el comando visible en el menú contextual sólo si:visibleCuando aparece el comando en el menú contextual
- Haga clic con ciertos tipos de archivos (recursos) en la vista de recursos (o ver el paquete)
- Haga clic en el editor apropiado que tiene el tipo de archivo abierto. Puede detectar que mi editor está abierto o que el editor tiene un cierto recurso abierto.
que he logrado la 'selección (con)' primero usando 'visibleWhen'>> 'iterate'> 'org.eclipse.core.resources.IResource (adaptación)', entonces el control de la extensión de archivo para el recurso . El código se enumera a continuación. Sin embargo, no estoy seguro de cómo hacer que el mismo comando aparezca solo cuando hace clic con el botón derecho en el editor correcto que tiene un archivo abierto con las extensiones correctas: ext1, ext2.
La comprobación de si mi editor está activo resuelve el segundo problema, pero no parece ayudar, ya que si hago clic en archivos que no son de mi tipo, se mostrará el comando en el menú contextual.
¿Alguna recomendación? El "Eclipse Plug-ins (3rd Edition)" muestra algunos ejemplos para el menú contextual del editor, pero utiliza acciones y quiero seguir con los comandos.
Gracias!
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.ui.popup.any?before=additions">
<separator
name="com.test.ide.separator1"
visible="true">
</separator>
<menu
icon="icons/sample.gif"
label="Test Menu">
<command
commandId="com.test.commands.testCommand1"
icon="icons/sample.gif"
label="testCommand1"
style="push"
tooltip="This is a test command">
<visibleWhen
checkEnabled="false">
<with
variable="selection">
<iterate
ifEmpty="false"
operator="or">
<adapt
type="org.eclipse.core.resources.IResource">
<or>
<test
property="org.eclipse.core.resources.extension"
value="ext1">
</test>
<test
property="org.eclipse.core.resources.extension"
value="ext2">
</test>
</or>
</adapt>
</iterate>
</with>
</visibleWhen>
</command>
</menu>
</menuContribution>
Correcto, pero sugeriría una ligera optimización de la reestructuración: –