org.eclipse.ui.editorActions

Acabamos de ver cómo los editores pueden suministrar acciones propias a los menús y barras de herramientas del entorno de trabajo cuando se vuelven activos.  El punto de extensión org.eclipse.ui.editorActions permite a los conectores añadir acciones a los menús y barras de herramientas del entorno de trabajo cuando se activa el editor de otro conector.

En el ejemplo del readme, el conector utiliza el punto de extensión editorActions para contribuir suministrando acciones adicionales al menú con el que ha contribuido el editor del readme. Ahora ya debe estar bastante familiarizado con la definición que hay en nuestro archivo plugin.xml.

   <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>

De manera parecida a lo que ocurre en una acción de vista, la extensión debe especificar el atributo targetID del editor al que está suministrando acciones.  La acción en sí misma se parece mucho a una acción de vista (atributos id, label, icon, toolbarPath, ...), salvo que la clase especificada debe implementar la interfaz IEditorActionDelegate.  

Observe que en estos códigos XML no se especifica una vía de acceso de barra de menús.  Por lo tanto, cuando el editor esté activo, la acción figurará en la barra de herramientas del entorno de trabajo, pero no en la barra de menús.  (En el tema Vías de acceso de los menús y barras de herramientas hallará una descripción de estas vías).

Efectivamente, cuando el editor está activo, vemos que la acción del editor está situada en la barra de herramientas junto a las acciones con las que contribuyó el propio editor.

La acción del editor aparece junto a las contribuciones originales del editor en la barra de herramientas del entorno de trabajo

La herramienta readme suministra la clase EditorActionDelegate para implementar la acción.  Esta clase se parece mucho a la del delegado de acción de vista que vimos en un tema anterior.

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

Copyright IBM Corporation y otros 2000, 2003.