Quando um plug-in contribui com uma ação para a UI do workbench utilizando um dos pontos de extensão do menu, ele pode especificar as condições sob as quais o item de menu fica ativado (ou visível) no menu. Além de fornecer condições simples de ativação, como contagens de seleção e classes de seleção, os plug-ins podem utilizar expressões boolean para ativar uma ação.
As expressões boolean podem conter operadores boolean (NOT, AND, OR) simples e expressões predefinidas que podem avaliar as seguintes condições:
objectClass - true se cada objeto na seleção subdividir em classes ou implementar a classe.
objectState - true se o atributo nomeado for igual ao valor especificado. IActionFilter auxilia na avaliação da expressão. Um filtro de ação calcula dinamicamente os critérios de ativação de uma ação com base na seleção de destino e no valor dos atributos nomeados.
systemProperty - true se a propriedade de sistema nomeado for igual ao valor especificado.
pluginState - especifica se o plug-in especificado (pelo id) deve ser instalado ou ativado
Por exemplo, os seguintes trechos representam expressões de ativação que poderiam ser utilizadas em uma ação hipotética em um conjunto de ações:
<action id="org.eclipse.examples.actionEnablement.class" label="Elemento Vermelho" menubarPath="additions" class="org.eclipse.examples.actionEnablement.ObjectTestAction"> <enablement> <and> <objectClass name="org.eclipse.examples.actionEnablement.TestElement"/> <objectState name="name" value="red"/> </and> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.property" label="Property" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PropertyTestAction"> <enablement> <systemProperty name="MyTestProperty" value="puppy"/> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.pluginState" label="Installed" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PluginTestAction"> <enablement> <pluginState id="x.y.z.anotherPlugin" value="installed"/> </enablement> </action>
Consulte expressões de ação para obter exemplos mais elaborados dessas expressões e uma descrição completa do XML.
A tabela a seguir lista os pontos de extensão que contribuem com ações e resume como os atributos e expressões boolean da marcação XML podem ser utilizados para afetar a ativação.
Nome do ponto de extensão |
Atributos que afetam a ativação |
Expressões boolean |
---|---|---|
viewActions |
enablesFor - especifica a contagem de seleção que deve ser atendida para que a ação seja ativada selection class - a classe que os objetos selecionados devem subdividir em classes ou implementar para ativar a ação selection name - um filtro de caractere curinga que pode ser aplicado aos objetos na seleção. |
enablement - uma expressão boolean. selection class, name e enablesFor devem ser atendidos antes que a expressão enablement seja aplicada. |
editorActions |
enablesFor - especifica a contagem de seleção que deve ser atendida para que a ação seja ativada selection class - a classe que os objetos selecionados devem subdividir em classes ou implementar para ativar a ação selection name - um filtro de caractere curinga que pode ser aplicado aos objetos na seleção.
|
enablement - uma expressão boolean. selection class, name e enablesFor devem ser atendidos antes que a expressão enablement seja aplicada. |
popupMenus |
(Apenas para contribuições de objetos.) objectClass - especifica a classe que os objetos na seleção devem subdividir em classes ou implementar (Apenas para contribuições de objetos e visualizadores) enablesFor - especifica a contagem de seleção que deve ser atendida para que a ação seja ativada selection class - a classe que os objetos selecionados devem subdividir em classes ou implementar para ativar a ação selection name - um filtro de caractere curinga que pode ser aplicado aos objetos na seleção.
|
visibility - uma expressão boolean. selection class, name e enablesFor devem ser atendidos antes que a expressão enablement seja aplicada.
|
actionSets |
enablesFor - especifica a contagem de seleção que deve ser atendida para que a ação seja ativada selection class - a classe que os objetos selecionados devem subdividir em classes ou implementar para ativar a ação selection name - um filtro de caractere curinga que pode ser aplicado aos objetos na seleção.
|
enablement - uma expressão boolean. selection class, name e enablesFor devem ser atendidos antes que a expressão enablement seja aplicada.
|