org.eclipse.ui.actionSets

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

Você pode ver quais conjuntos de ações contribuíram com o workbench, selecionando Janela->Personalizar Perspectiva... no menu do workbench. Esta opção mostrará um diálogo que lista os atalhos e conjuntos de ações disponíveis para a perspectiva atual.  Os conjuntos de ações estão listados em Outros.  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 a seguir mostra a lista de conjuntos de ações disponíveis em nosso workbench.  (O workbench talvez tenha uma aparência diferente, dependendo dos plug-ins instalados e da perspectiva ativa).

Diálogo Personalizar Perspectiva com lista do conjunto de ações

A ferramenta Leia-me utiliza um conjunto de ações para contribuir com várias ações diferentes de "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="%ActionSet.name"
		   visible="true">
		   <menu id="org_eclipse_ui_examples_readmetool"
			   label="%ActionSet.menu"
			   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="%ReadmeAction.label"
			   tooltip="%ReadmeAction.tooltip"
			   helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
			   icon="icons/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>

Nossa, há muita coisa acontecendo aqui!  Vamos por etapas, olhando apenas a primeira ação por enquanto.  

Primeiro, o conjunto de ações é declarado e recebe um rótulo.  O rótulo "Ações do Leia-me" (definido pela chave %ActionSet.name no arquivo de propriedades do plug-in) é utilizado para exibir o conjunto de ações no diálogo mostrado acima.  Como definimos visible como true, o workbench terá, inicialmente, o conjunto de ações marcado com um visto na lista de conjuntos de ações e as ações ficarão visíveis.

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

Definimos um menu cujo rótulo aparece nos menus do workbench.  O path do menu informa ao workbench para posicionar o novo menu no slot additions do menu window.  (Para obter uma discussão dos caminhos e slots de menu, consulte Caminhos do menu e da barra de ferramentas.)  Também definimos alguns slots em nosso novo menu para que as ações possam ser inseridas em localizações específicas do nosso menu.

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

Menu Janela do Workbench com entrada para o Editor do Arquivo Readme

Em seguida, definimos as próprias ações.  

A definição da ação (id, label, icon, class) é semelhante às 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, definimos o menubarPath para adicionar a ação em um slot no menu que acabamos de definir ( "window/org_eclipse_ui_examples_readmetool/slot1").

Menu Editor do Arquivo Readme com itens de menu

Em seguida, definimos um novo toolbarPath para inserir nossas ações na barra de ferramentas do workbench.  Como já definimos um novo caminho para as ferramentas, "readme", o workbench decidirá para onde ele vai com relação às outras contribuições da barra de ferramentas do plug-in.

Barra de ferramentas do workbench com ação do Leia-me

O que acontece quando a ação é selecionada pelo usuário?  A ação é implementada pela classe especificada no atributo class.  A classe de ação deve implementar IWorkbenchWindowActionDelegate ou IWorkbenchWindowPulldownDelegate se a ação será mostrada como um item de ferramenta de opções na barra de ferramentas.  Como não estamos criando um item de ferramenta de opções, nós fornecemos WindowActionDelegate.  Essa classe é semelhante a ObjectActionDelegate.  Ela ativa o diálogo de seções do leia-me quando o usuário escolhe a ação.  (Discutiremos o diálogo de seções em Diálogos do aplicativo.)

A ação também fornece condições de ativação para seu item de menu e item da barra de ferramentas.  Os itens de menu e da barra de ferramentas serão ativados apenas quando um único (enablesFor="1") arquivo leia-me (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") for selecionado.  Os itens de menu e da barra de ferramentas desta ação aparecem e são ativados com base na marcação no arquivo plugin.xml.  Nenhum dos códigos do plug-in será executado até que o usuário escolha a ação e o workbench execute a classe da ação.

Veremos as outras duas ações posteriormente no contexto de ações reatingíveis.

Copyright IBM Corporation e outros 2000, 2003.