org.eclipse.ui.editorActions

Acabamos de ver cómo contribuyen los editores suministrando 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 el editor de otro conector se vuelve activo.

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 se están suministrando acciones como contribución. 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 explicació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 un delegado de acción de editor (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 Corp. y otros 2000, 2002.