org.eclipse.ui.editorActions

Acabamos de ver como os editores podem contribuir com suas próprias ações para os menus e barra de ferramentas do workbench, quando estão ativos.  O ponto de extensão org.eclipse.ui.editorActions permite que um plug-in inclua no workbench menus e a barra de ferramentas quando o editor de outro plug-in está ativo.

No exemplo do Leia me, o plug-in utiliza o ponto de extensão editorActions para contribuir com ações adicionais para o menu de contribuição do editor do Leia me. A definição em nosso plugin.xml deve parecer bastante familiar no momento.

<extension
    point = "org.eclipse.ui.editorActions">
      <editorContribution 
         id="org.eclipse.ui.examples.readmetool.ec1" 
         targetID="org.eclipse.ui.examples.readmetool.ReadmeEditor">        
	   <action id="org.eclipse.ui.examples.readmetool.ea1" 
              label="%Editors.Action.label" 
	      toolbarPath="ReadmeEditor" 
              icon="icons/obj16/editor.gif" 
              tooltip="%Editors.Action.tooltip" 
              class="org.eclipse.ui.examples.readmetool.EditorActionDelegate" 
              /> 
      </editorContribution>
 </extension>

Semelhante a uma ação de exibição, a extensão deve especificar o targetID do editor para o qual está contribuindo com ações.  A própria ação é bastante semelhante a uma ação de exibição (id, label, icon, toolbarPath, ...), exceto que a classe especificada deve implementar IEditorActionDelegate.  

Observe que o caminho da barra de menus não é especificado nessa marcação.  Portanto, a ação aparecerá na barra de ferramentas quando o editor estiver ativo, mas não na barra de menus do workbench.  (Consulte Caminhos de menu e da barra de ferramentas para obter uma discussão sobre caminhos de menu e da barra de ferramentas).

Sem dúvida, quando o editor está ativo, vemos a ação do nosso editor na barra de ferramentas, ao lado da ações que foram contribuições do próprio editor.

A ação do editor aparece ao lado das contribuições originais do editor na barra de ferramentas do workbench

A ferramenta Leia-me fornece EditorActionDelegate para implementar a ação.  Essa classe é muito semelhante à delegação da ação de exibição que vimos anteriormente.

public void run(IAction action) {
	MessageDialog.openInformation(editor.getSite().getShell(),
		MessageUtil.getString("Readme_Editor"),  
		MessageUtil.getString("Editor_Action_executed")); 
}

Copyright IBM Corp. e outros 2000,2002.