org.eclipse.ui.viewActions

É comum os plug-ins contribuírem com comportamento para exibições já existentes no workbench.Isso é feito através do ponto de extensão org.eclipse.ui.viewActions. Esse ponto de extensão permite aos plug-ins contribuir com itens de menu, submenus e entradas da barra de ferramentas para um menu de opção local e uma barra de ferramentas local de uma exibição existente.

Talvez você tenha notado um item na barra de ferramentas local da exibição do navegador que é ativado toda vez que o arquivo Leia me é selecionado. Esse item aparece também no menu de opções local da exibição. Essas ações aparecem porque o plug-in da ferramenta Leia me contribui com elas, utilizando a extensão viewActions.

A contribuição plugin.xml relevante está abaixo.

<extension
    point = "org.eclipse.ui.viewActions">
        <viewContribution 
            id="org.eclipse.ui.examples.readmetool.vc1" 
            targetID="org.eclipse.ui.views.ResourceNavigator">
                <action id="org.eclipse.ui.examples.readmetool.va1"
                    label="&amp;Readme View Extension"
                    menubarPath="additions"
                    toolbarPath="additions" 
                    icon="icons/basic/obj16/editor.gif" 
                    tooltip="Run Readme View Extension" 
                    helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
                    class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
                    enablesFor="1">
                    <selection class="org.eclipse.core.resources.IFile" name="*.readme"/>
                </action>
        </viewContribution>
</extension>

Uma contribuição de exibição com um ID exclusivo é especificada. A exibição na qual estamos incluindo a ação é especificada em targetID. Estamos contribuindo com o menu da exibição do navegador.  Especificamos a etiqueta juntamente com as localizações da barra de ferramentas e da barra de menus para a nova ação  (Para obter uma discussão completa sobre as localizações do menu e da barra de ferramentas, consulte Caminhos do menu e da barra de ferramentas).

Especificamos também as condições nas quais a ação deve ser ativada. Você pode ver que essa ação é ativada quando há um seleção do tipo IFile, cujo nome tem ".readme" na extensão do arquivo. Com certeza, é exatamente o que acontece quando você clica ao redor do navegador de recurso.  

As informações no plugin.xml é tudo o que se precisa para preencher os menus e as barras de ferramentas apropriados. Nenhum código do plug-in será executado enquanto a ação não tiver sido realmente selecionada no menu ou na barra de ferramentas. A classe de implementação especificada no plugin.xml deve implementar a interface IViewActionDelegate.

Neste exemplo, o plug-in Leia me fornece ViewActionDelegate para implementar a ação. Se você navegar por essa classe, verá que ela inclui métodos para manipular as alterações de seção, chamar a ação e lembrar para qual exibição foi criada.

A própria ação simplesmente lança um diálogo que anuncia que a ação de exibição foi executada.

public void run(org.eclipse.jface.action.IAction action) {
    MessageDialog.openInformation(view.getSite().getShell(),
        "Readme Editor", 
        "View Action executed");
}

Embora esta ação seja simples, podemos imaginar como a utilização de seleções e de diálogos mais funcionais poderia fazê-la executar algo mais interessante.