JFace: infraestructura de la UI para conectores

El entorno de trabajo define puntos de extensión para que los conectores contribuyan con la función de la UI a la plataforma. La mayoría de estos puntos de extensión, sobre todo las extensiones de asistentes,  se implementan utilizando clases en los paquetes org.eclipse.jface.*. ¿Cuál es la diferencia?

JFace es un juego de kerramientas de la UI que proporciona clases de ayuda para desarrollar características de UI cuya implementación puede resultar tediosa. JFace opera a nivel de un sistema de widget puro. Proporciona clases para manejar tareas de programación de UI comunes:

JFace le permite centrarse en la implementación de la función específica del conector, en lugar de en el sistema de widgets subyacente o en la resolución de problemas comunes a casi todas las aplicaciones de UI.

JFace y el entorno de trabajo

¿Dónde termina JFace y empieza el entorno de trabajo? A veces la línea que separa uno de otro no es tan obvia. Generalmente, las API de JFace (de los paquetes org.eclipse.jface.*) son independientes de los puntos de extensión del entorno de trabajo y de las API. Probablemente, un programa JFace se podría escribir sin utilizar ningún código de entorno de trabajo.

El entorno de trabajo utiliza JFace pero intenta reducir dependencias siempre que sea posible. Por ejemplo, el modelo de la parte de entorno de trabajo (IWorkbenchPart) está diseñado para ser independiente de JFace. Anteriormente se ha mostrado que las vistas y los editores pueden implementarse utilizando widgets de SWT directamente sin utilizar ninguna clase de JFace. El entorno de trabajo intenta que "JFace permanezca neutral" siempre que sea posible, permitiendo a los programadores utilizar las partes de JFace que les son de utilidad. En la práctica, el entorno de trabajo utiliza JFace para la mayor parte de su implementación y existen referencias a tipos de JFace en definiciones de las API. (Por ejemplo, las interfaces de JFace para IMenuManager, IToolBarManager y IStatusLineManager se muestran como tipo en los métodos IActionBar del entorno de trabajo.)

JFace y SWT

La línea que separa SWT y JFace es mucho más nítida. SWT no depende de ningún código de JFace o de plataforma. La mayoría de los ejemplos de SWT muestran cómo puede construir una aplicación autónoma.

JFace está diseñado para proporcionar la función de UI en aplicaciones comunes en la parte superior de la biblioteca de SWT. JFace no intenta "ocultar" SWT o sustituir su función. Proporciona clases e interfaces que manejan la mayoría de las tareas comunes asociadas con la programación de una UI dinámica utilizando SWT.

Entenderá mejor la relación entre JFace y SWT mirando los visores y su relación con los widgets de SWT.