Perspectivas

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.

Las perspectivas se implementan mediante  IPerspectiveFactoryLos implementadores de IPerspectiveFactory deben configurar una interfaz (IPageLayout) con información que describa la perspectiva y su diseño de página.

Diseño de los componentes del entorno de trabajo

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 en una perspectiva.  

Enlazar vistas y editores con "mostrar en"

Otros valioso servicio suministrado por las perspectivas y por la interfaz IPageLayout consiste en facilitar la navegación entre un editor y sus vistas relacionadas.  Generalmente, consideramos las vistas como elementos que ayudan al usuario a buscar los objetos con los que debe trabajar en los editores.  Sin embargo, también resulta de utilidad la operación inversa:  un usuario que trabaja con un objeto en un editor puede necesitar navegar hasta dicho objeto dentro de una vista.  Esto puede lograrse mediante el menú Navegar > Mostrar en del entorno de trabajo.  Este mandato permite al usuario saltar a una de las vistas relacionadas en el contexto del objeto editado (o seleccionado) actualmente.  Por ejemplo, puede que un usuario que edita un archivo desee saltar a este archivo en el navegador de recursos.

La arquitectura de conectores del entorno de trabajo permite a los desarrolladores aportar vistas y editores de diversos conectores que ni siquiera conocen su mutua existencia.  Mediante la implementación del soporte de "mostrar en", la vista o editor pueden dar soporte a la navegación adecuada hasta las vistas y editores suministrados por otros conectores y desde ellos. 

Esta navegación permite a los usuarios moverse rápidamente entre las vistas y abrir con facilidad una vista que no se muestra habitualmente en una perspectiva determinada.  Por ejemplo, un usuario que trabaja en la perspectiva Java puede utilizar Navegar > Mostrar en para ver el archivo Java editado actualmente en la vista Navegador.

Código fuente de Mostrar en

Si desea que los usuarios puedan utilizar Navegar> Mostrar en desde el editor o vista para saltar a otra vista, debe implementar IShowInSource.  El componente puede suministrar directamente su IShowInSourcemediante el protocolo getShowInSource()) o en forma de adaptador.  IShowInSourcepermite al componente suministrar un contexto (ShowInContext) utilizado por el destino para decidir cómo mostrar el código fuente.  El contexto de mostrar en para un editor es generalmente su elemento de entrada.  En el caso de una vista, el contexto es generalmente su selección.  En ShowInContexte suministran tanto una selección como un elemento de entrada para otorgar al destino flexibilidad en la determinación de cómo debe mostrarse el código fuente. 

Se suministra un contexto por omisión para los editores, de forma que el editor puede participar en "mostrar en" sin ninguna codificación especial.  Para los editores, se utilizan la selección y el elemento de entrada para crear un contexto apropiado. 

Para las vistas, éstas deben implementar IShowInSource para poder ofrecer las funciones de Navegar > Mostrar en.

Destino de Mostrar en

Debe implementar IShowInTarget si desea que la vista sea un destino válido para una operación "mostrar en".  El destino se encarga de mostrar un contexto determinado de forma adecuada a su presentación.  Por ejemplo, la vista Navegador expande su árbol a fin de seleccionar y revelar un recurso especificado en el contexto.  

En primer lugar, el destino debe comprobar la selección efectuada en ShowInContext para decir lo que debe mostrarse, ya que esta es la información más específica.  Sólo debe mostrar el elemento de entrada si no se indica ninguna selección.

Presentar los destinos adecuados

¿Cómo se determina la lista de destinos disponibles?  Puede especificar los destinos disponibles para la perspectiva en la interfaz IPageLayout correspondiente.  Recuerde que una navegación de tipo "mostrar en" puede abrir una vista que aún no esté presente en la perspectiva.  Mediante IPageLayout.addShowInPart, puede especificar un destino de "mostrar en" válido según su ID.  De este modo, pueden establecerse los destinos válidos sin crear vistas innecesariamente.