Acciones redirigibles

Es habitual que las vistas y los editores de un conector implementen acciones similares desde el punto de vista semántico a las acciones existentes en el entorno de trabajo, acciones como las de cortar/copiar/pegar del portapapeles, renovar las vistas, o las relacionadas con propiedades. El menú emergente de las vistas y editores puede llenarse desordenadamente si cada vista o editor tiene que definir acciones exclusivas para estas operaciones e incluirlas en sus menús. 

Para solucionar este problema, el entorno de trabajo define acciones redirigibles (llamadas también globales) que cualquier vista o editor puede manejar. Si una vista o un editor está activo, el correspondiente manejador se ejecutará cuando el usuario elija la acción en el menú o en la barra de herramientas del entorno de trabajo. Así, las vistas y los editores pueden compartir el espacio de los menús del entorno de trabajo para las acciones similares desde el punto de vista semántico.

En la interfaz IWorkbenchActionConstants se documentan todas las acciones del entorno de trabajo y se indican las acciones redirigibles como globales. Por ejemplo, a continuación figura la definición de la acción Propiedades (properties).

public static final String PROPERTIES = "properties"; // Acción global. 

La siguiente tabla ofrece un resumen de algunas de las acciones redirigibles más comunes implementadas por las vistas y los editores:

  Menú Archivo Menú Editar Menú Navegar
vistas mover
redenominar
renovar
propiedades
  ir adentro
retroceder
avanzar
subir
siguiente
anterior
editores revertir
imprimir
buscar  
vistas y editores   cortar
copiar
pegar
suprimir
seleccionar todo
deshacer
rehacer
 

Las acciones redirigibles se crean con el objeto RetargetAction. El fragmento de código que figura a continuación procede de WorkbenchActionBuilder.

 propertiesAction = createGlobalAction(IWorkbenchActionConstants.PROPERTIES, "file", false); 

El método createGlobalAction nos muestra exactamente cómo crear un objeto RetargetAction.

private RetargetAction createGlobalAction(String id, String actionDefPrefix, boolean labelRetarget) {
	RetargetAction action;
	if (labelRetarget) {
		action = new LabelRetargetAction(id, WorkbenchMessages.getString("Workbench." + id)); 
	}
	else {
		action = new RetargetAction(id, WorkbenchMessages.getString("Workbench." + id)); 
	}
	...
	return action;
}

Al crear una acción redirigible, el entorno de trabajo asigna el ID de la acción y la etiqueta por omisión. Tenga en cuenta que hay dos estilos de acciones de redestinar.  La acción RetargetAction tan solo permite que una vista o un editor reimplemente una acción. La acción LabelRetargetAction permite además que las vistas y los editores restablezcan la etiqueta de la acción. Esto es de utilidad para hacer que la etiqueta del menú sea más específica; por ejemplo, cambiar la etiqueta de la acción Deshacer por Deshacer escritura

Ahora ya sabemos cómo define el entorno de trabajo las acciones de redestinar. Veamos a continuación qué hace nuestra vista o nuestro editor para proporcionar una implementación de una acción redirigible. Para ello se establece un manejador de acción global.

Copyright IBM Corp. y otros 2000, 2002.