Ya hemos visto algunas de las maneras en que el entorno de trabajo permite al usuario controlar el aspecto de las funciones de los conectores. Las vistas se pueden ocultar o mostrar mediante el menú Ventana->Mostrar vista. Los conjuntos de acciones se pueden ocultar o mostrar mediante el menú Ventana->Personalizar perspectiva... Estas características ayudan al usuario a organizar el entorno de trabajo.
Las perspectivas proporcionan una capa de organización adicional dentro de una ventana del entorno de trabajo. Los usuarios pueden conmutar entre perspectivas a medida que realizan las tareas. Una perspectiva define un conjunto de vistas, el diseño de las vistas y los conjuntos de acciones visibles que hay que utilizar la primera vez que el usuario abre la perspectiva.
La propia plataforma define una perspectiva, la de recursos. Los otros conectores de la plataforma, como el sistema de ayuda y las herramientas Java, definen perspectivas adicionales. Su conector puede definir una perspectiva propia contribuyendo en el punto de extensión org.eclipse.ui.perspectives.
La especificación de la perspectiva en el archivo plugin.xml es muy sencilla. El entorno de trabajo utiliza los siguientes códigos XML para definir su propia perspectiva de recursos.
<extension point="org.eclipse.ui.perspectives"> <perspective name="%Perspective.resourcePerspective" icon="icons/full/cview16/resource_persp.gif" class="org.eclipse.ui.internal.ResourcePerspective" id="org.eclipse.ui.resourcePerspective"> </perspective> </extension>
Un conector debe suministrar los atributos id y name de la perspectiva, junto con el nombre de la clase (parámetro class) que la implementa. También se puede especificar un atributo icon. La clase de la perspectiva debe implementar la interfaz IPerspectiveFactory.
Si nos fijamos en los códigos XML, podemos ver que el trabajo real tiene lugar en el código. La interfaz de la fábrica de perspectivas es muy fácil de interpretar. Los implementadores de IPerspectiveFactory deben configurar una interfaz (IPageLayout) con información que describa la perspectiva y su diseño de página.
Una de las finalidades principales de una interfaz IPageLayout es indicar dónde hay que colocar el editor y las vistas en la ventana del entorno de trabajo. Observe que estos diseños son diferentes de los de la clase Layout de SWT. Aunque IPageLayout y Layout resuelven un problema similar (dimensionamiento y colocación de los widgets dentro de un área de mayor tamaño), no hace falta que entienda los diseños de SWT para suministrar el diseño de página de una perspectiva.
El diseño de página de una perspectiva se inicializa con un área para visualizar un editor. La fábrica de perspectivas se encarga de añadir vistas adicionales relativas al editor. Las vistas se añaden al diseño en una posición relativa (atributos top, bottom, left, right) a otro componente. También se pueden añadir espacios reservados (vacíos) para los elementos que no se muestran inicialmente.
Para organizar las vistas relacionadas y reducir la aglomeración, puede utilizar un diseño de carpeta (IFolderLayout) para agrupar las vistas en carpetas con pestañas. Por ejemplo, la perspectiva Recursos coloca el navegador de recursos dentro de una carpeta situada en la esquina superior izquierda del entorno de trabajo. Los espacios reservados se suelen utilizar con diseños de carpeta. La perspectiva Recursos define un espacio reservado para la vista de favoritos en la misma carpeta en la que está el navegador de recursos. Si el usuario muestra la vista de favoritos, aparecerá en la misma carpeta junto a la vista Navegador, con una pestaña para cada vista.
La interfaz IPageLayout también le permite definir las acciones y los accesos directos disponibles que hay en una perspectiva.