visibleWhen para o comando aparecer no menu de contexto
Estou tentando configurar a visibilidade de um comando no menu de contexto usando a expressão 'visibleWhen' em um menuContribution. O que estou tentando fazer é tornar o comando visível no menu de contexto somente se você:
Clique com o botão direito do mouse em certos tipos de arquivo (recursos) na exibição de recurso (ou exibição de pacote) Clique com o botão direito do mouse no editor apropriado que possui o tipo de arquivo aberto. Ele pode detectar que meu editor está aberto ou que o editor tem um determinado recurso abertEu realizei o primeiro usando a seleção 'visibleWhen'> '(com)'> 'iterate'> 'org.eclipse.core.resources.IResource (adap)' e verifique a extensão do arquivo para o recurso. O código está listado abaixo. No entanto, não sei como obter o mesmo comando para aparecer apenas quando você clica com o botão direito do mouse no editor correto que possui um arquivo aberto com as extensões corretas - ext1, ext
Verificar se meu editor está ativo resolve o segundo problema, mas parece não ajudar, pois se eu clicar em arquivos que não são do meu tipo, ele ainda mostrará o comando no menu de context
Alguma recomendação? O "Eclipse Plug-ins (3rd Edition)" mostra algum exemplo para o menu de contexto do editor, mas ele usa ações e eu quero ficar com os comandos.
Obrigado!
<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>