org.eclipse.ui.actionSets

O plug-in pode contribuir com menus, itens de menu e itens da barra de ferramentas aos menus e à barra de ferramentas do workbench, utilizando o ponto de extensão org.eclipse.ui.actionSets. Para reduzir a confusão de ter todas as contribuições de menu do plug-in exibidas ao mesmo tempo, as contribuições são agrupadas em conjuntos de ações cuja visualização pode ser disponibilizada de acordo com a preferência do usuário.

Você pode ver quais conjuntos de ações contribuíram com o workbench, selecionando Perspectiva->Personalizar... no menu do workbench. Isso mostrará um diálogo que lista todos os conjuntos de ações disponíveis. Um visto ao lado do conjunto de ações significa que as ações do menu e da barra de ferramentas estão visíveis no workbench. Você pode selecionar o nome do conjunto de ações para ver a lista de ações disponíveis à direita. A figura abaixo mostra a lista de conjuntos de ações disponíveis no nosso workbench.  (O workbench talvez tenha uma aparência diferente, dependendo dos plug-ins instalados e da perspectiva ativa).

A ferramenta Leia me utiliza um conjunto de ações para contribuir com a ação "Abrir Navegador do Leia me" para o menu do workbench.  (Contribuímos com uma ação semelhante para o menu pop-up do navegador de recurso).  Segue-se a marcação:

<extension 
    point = "org.eclipse.ui.actionSets">
    <actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
        label="ReadMe Actions"
        visible="true">
        <menu id="org_eclipse_ui_examples_readmetool"
            label="Readme &amp;File Editor"
            path="window/additions"> 
            <separator name="slot1"/>
            <separator name="slot2"/>
            <separator name="slot3"/>
        </menu>
        <action id="org_eclipse_ui_examples_readmetool_readmeAction"
            menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
            toolbarPath="readme"
            label="&amp;Open Readme Browser@Ctrl+R"
            tooltip="Open Readme Browser"
            helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
            icon="icons/basic/ctool16/openbrwsr.gif"
            class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
            enablesFor="1">
            <selection class="org.eclipse.core.resources.IFile"
                name="*.readme">
            </selection>
        </action>
    </actionSet>
</extension>

Uau, há muita coisa acontecendo aqui!  Vamos dar um passo de cada vez.

Primeiro, o conjunto de ações é declarado e recebe uma etiqueta.  A etiqueta "Ações do Leia me" é utilizada para exibir o conjunto de ações no diálogo mostrado acima.  Como definimos visible como true, o workbench terá o conjunto de ações marcado com um visto na lista de conjuntos de ações e as ações estarão visíveis.

O restante da declaração do conjunto de ações está relacionado à definição do menu no qual a ação aparece e na própria ação.

Definimos um menu cuja etiqueta ("Leia me &Editor de Arquivo") aparece nos menus do workbench.  O caminho do menu diz ao workbench para posicionar o novo menu no slot inclusões do menu da janela.  (Para obter uma discussão sobre caminhos de menu e slots, consulte Caminhos de menu e da barra de ferramentas).  Definimos alguns slots em nosso novo menu que podem ser utilizados para inserir ações em localizações específicas do nosso menu.

Apenas isso é o suficiente para fazer com que o menu apareça no menu Janela do workbench.

A seguir, definimos a própria ação.  A definição da ação (id, label, icon, class) é semelhante àquela das outras ações que vimos em exibições, editores e pop-ups.  Focalizaremos aqui a diferença:  para onde a ação vai?  Utilizamos   menubarPath e toolbarPath para indicar a localização.  Primeiro, incluímos a ação em um slot no menu que acabamos de definir.  

Em seguida, definimos um novo ToolbarPath para inserir nossa ação na barra de ferramentas do workbench,  Como é o caminho de uma nova ferramenta, o workbench decidirá para onde ela vai com relação às outras contribuições da barra de ferramentas do plug-in.

Observe que as condições de ativação também são fornecidas para essa ação.  Nosso novo item de menu e de barra de ferramentas será ativado somente quando um único(enablesFor="1") arquivo Leia me(selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") for selecionado.

Esses itens de menu e barra de ferramentas aparecem e são ativados com base exclusivamente na marcação no arquivo plugin.xml.  Nenhum dos códigos do plug-in será executado enquanto o usuário não selecionar a ação e o ambiente e trabalho não executar a ação class.

A ação class deverá implementar IWorkbenchWindowActionDelegate ou IWorkbenchWindowPulldownDelegate, se o conjunto de ações for mostrado como um menu de opções em uma barra de ferramentas.  Como não estamos criando um menu de opções da barra de ferramentas, fornecemosWindowActionDelegate.  Essa classe é semelhante ao ObjectActionDelegate.  Ela lança o diálogo das seções do Leia me quando o usuário seleciona a ação.  Veremos o diálogo de seções em Diálogos do aplicativo.