Personalizar el entorno de trabajo

El "punto de partida" para suministrar comportamiento personalizado al entorno de trabajo es la designación de un WorkbenchAdvisor para configurar el entorno de trabajo. El conector cliente rico debe ampliar esta clase abstracta para suministrar la configuración específica de la aplicación al entorno de trabajo. El ejemplo de navegador realiza esta operación mediante la clase BrowserAdvisor.

	...
	int code = PlatformUI.createAndRunWorkbench(display,
			new BrowserAdvisor());
	...

Un asesor de entorno de trabajo es responsable de alterar temporalmente los métodos destinados a configurar el entorno de trabajo con su diseño y características deseados, como por ejemplo los elementos de la barra de acciones o la página de introducción.

El ciclo de vida del entorno de trabajo

Los métodos de ciclo de vida suministrados por el asesor del entorno de trabajo permiten a la aplicación "engancharse" a la creación del entorno de trabajo en cualquier momento e influir sobre el comportamiento. La lista siguiente de métodos de ciclo de vida del asesor que pueden alterarse temporalmente proviene del javadoc de WorkbenchAdvisor.

Como puede observar, una aplicación cliente rica ejerce un gran control sobre la configuración e implementación del entorno de trabajo. En el ejemplo de navegador, la función principal de BrowserAdvisor consiste en configurar las barras de acciones con opciones de menú adecuadas para un navegador. Esta operación se realiza en el método fillActionBars:

	public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
		...
		BrowserActionBuilder builder = new BrowserActionBuilder(window);
		getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); 
		builder.fillActionBars(configurer, flags);
	}

En este método, el entorno de trabajo se configura con un constructor de acciones especializado. Este constructor de acciones se utiliza para rellenar las barras de acciones del entorno de trabajo. Revisaremos los detalles de la especificación de acciones en la sección Definir las acciones. Por ahora, nos centraremos en la configuración del entorno de trabajo.

Observe la utilización del método getWorkbenchConfigurer() en el ejemplo anterior. IWorkbenchConfigurer e IWorkbenchWindowConfigurer se utilizan conjuntamente con WorkbenchAdvisor para personalizar la ventana. Estas clases permiten alterar temporalmente muchos aspectos de la creación del entorno de trabajo a diferentes niveles. Por ejemplo, IWorkbenchWindowConfigurer define un protocolo que presupone una configuración de controles determinada en la ventana del entorno de trabajo, como por ejemplo una barra de acciones, una línea de estado, una barra de perspectivas, una barra de elementos de interés, etc. Su protocolo le permite personalizar y llenar estos elementos. IWorkbenchConfigurer opera a un nivel superior, permitiendo almacenar datos específicos de aplicaciones en el entorno de trabajo. WorkbenchAdvisor proporciona acceso a estos configuradores en los métodos de ciclo de vida indicados anteriormente. Los métodos de nivel inferior de WorkbenchAdvisor pueden alterarse temporalmente para sustituir por completo el comportamiento por omisión. Por ejemplo, el asesor del entorno de trabajo puede alterar temporalmente el método que crea los controles SWT en la ventana a fin de suministrar una implementación completamente diferente de la ventana principal.

En otras palabras, existen muchas formas de personalizar el entorno de trabajo y varios niveles diferentes a los que pueden utilizarse estas técnicas. El javadoc de WorkbenchAdvisor, IWorkbenchConfigurer e IWorkbenchWindowConfigurer incluye una descripción completa del protocolo disponible. Consulte también la implementación completa de BrowserAdvisor para conocer implementaciones alternativas.