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 visível e/ou ativado 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 booleanas para ativar ou tornar visível uma ação.
As expressões booleanas podem conter operadores booleanos (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 fragmentos 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 a documentação de referência dos pontos de extensão a seguir 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 booleanas 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 Booleanas |
---|---|---|
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 booleana. Controla se o item de menu está visível no menu. enablement - uma expressão booleana. Controla se o item de menu está ativado no menu. O atributo enablesFor, selection class e name, devem ser atendidos antes que a expressão enablement seja aplicada. |
|
(Apenas para contribuições de objetos.) objectClass - especifica a classe que os objetos na seleção devem subdividir em classes ou implementar (Para as contribuições de objetos e de 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.
|
(Para as contribuições de objetos e de visualizadores) visibility - uma expressão booleana. Controla se o item de menu está visível no menu. enablement - uma expressão booleana. Controla se o item de menu está ativado no menu. O atributo enablesFor, selection class e name, devem ser atendidos antes que a expressão enablement seja aplicada. |