Novedades de la versión 3.2

A continuación se proporcionan las descripciones de algunos de los cambios de interés para los desarrolladores de plug-ins realizados en la Plataforma y el SWT de Eclipse para el release 3.2 de Eclipse.

También hay muchas características nuevas orientadas a los usuarios finales de la plataforma que pueden visualizarse en la sección Novedades de la guía del usuario del entorno de trabajo.

Cambios en la plataforma

Refactorización del entorno de ejecución

A fin de hacer más flexible el entorno de ejecución de Eclipse y permitir el uso independiente de los componentes del entorno de ejecución, el plug-in org.eclipse.core.runtime se ha dividido en varios plug-ins:

  • org.eclipse.equinox.common - código común utilizado por más de un componente del plug-in de entorno de ejecución original (es decir, IPath, IStatus, IProgressMonitor).
  • org.eclipse.equinox.registry - registro de extensiones
  • org.eclipse.equinox.preferences - mecanismo de preferencias
  • org.eclipse.core.jobs - mecanismo de trabajos
  • org.eclipse.core.contenttype - mecanismo de contenido
  • org.eclipse.equinox.supplement - plug-in suplementario utilizado para dar soporte a la ejecución sin OSGi.

Se han añadido API nuevas para facilitar el control de los componentes de entorno de ejecución divididos.

La refactorización del entorno de ejecución debe ser transparente para los demás plug-ins. Para obtener más detalles, consulte la guía de migración de Eclipse 3.2.

Navegador común

A nuevo plug-in, org.eclipse.ui.navigator, presenta una infraestructura destinada a construir visores que combinan contenido procedente de varios modelos de dominio. La infraestructura permite la contribución declarativa de contenido, etiquetas, acciones filtros y otras prestaciones. El plug-in org.eclipse.ui.navigator.resources ofrece un uso concreto de esta infraestructura en forma de una vista Explorador de proyectos y extensiones de visor declarativo para el modelo IResource.

Imagen que muestra la vista Explorador de proyectos

Infraestructura de propiedades con pestañas

Se ha añadido una infraestructura de propiedades con pestañas. La infraestructura de propiedades con pestañas proporciona una página de hojas de propiedades de sustitución, que permite visualizar las propiedades en la vista Propiedades mediante controles arbitrarios, organizados por pestañas y secciones que se añaden por medio del registro de extensiones.

Imagen que muestra una infraestructura de propiedades con pestañas

Consulte el artículo La vista de propiedades con pestañas de Eclipse para obtener detalles.

API de sistema de archivos

Un nuevo plug-in, org.eclipse.core.filesystem, presenta una nueva API genérica para interactuar con sistemas de archivos. La plataforma se ha migrado para poder utilizar esta API de sistema de archivos en lugar de las API java.io. Esto significa que pueden crearse recursos en sistemas de archivos arbitrarios y que los plug-ins pueden suministrar soporte para nuevos tipos de sistemas de archivos.

Se ha añadido soporte a los asistentes de proyecto y de recursos enlazados a fin de crear recursos que están enlazados a otros sistemas de archivos. Los plug-ins que definen sistemas de archivos alternativos pueden anclarse a este soporte de asistente mediante el punto de extensión org.eclipse.ui.ide.filesystemSupport.

Imagen que muestra un sistema de archivos no local

Categorización añadida a importación y exportación

Ahora, los puntos de extensión org.eclipse.ui.importWizards y org.eclipse.ui.exportWizards dan soporte a la categorización.

Imagen que muestra los puntos de extensión

Ayudas flotantes para anotaciones en editores de texto

La ayuda flotante de anotaciones se ha desplazado del Texto de JDT al Texto de plataforma. El soporte flotante de regla de texto, vertical y de visión general se instala por medio de TextSourceViewerConfiguration, que los editores de texto utilizan:

Imagen de ayuda flotante de anotaciones

Navegación por anotaciones en editores de texto

La navegación por anotaciones se ha desplazado del Texto de JDT al Texto de plataforma, y ahora está disponible en todos los editores de texto:

Imagen de iconos de navegación

Ayuda para campos JFace

JFace presenta soporte nuevo para ayudar al usuario a rellenar los campos de los diálogos y formularios. El paquete org.eclipse.jface.fieldassist suministra clases que permiten decorar controles arbitrarios con imágenes y el texto flotante correspondiente. Pueden utilizarse para finalidades tales como marcar los campos obligatorios de un diálogo, mostrar condiciones de error basadas en campos o mostrar solicitudes de asistencia de contenido. El paquete también permite instalar propuestas de contenido en un control, incluido un diálogo emergente con propuestas de contenido, ventanas emergentes secundarias para información más detallada y opciones para invocar propuestas explícitamente o de forma automática (tecleo anticipado).

Imagen que muestra la ayuda para campos

Mejoras en el Visor de árbol (TreeViewer) de JFace

AbstractTreeViewer da ahora soporte a varios elementos iguales en el árbol, cada uno con una cadena padre diferente. Este soporte requiere que los clientes habiliten la correlación de elementos llamando a setUseHashLookup(true).

TreeViewer da soporta ahora a árboles SWT.VIRTUAL. Existe un proveedor de contenidos diferido correspondiente ILazyTreeContentProvider, que sólo devuelve contenido cuando es necesario.

Soporte para contenido de ayuda dinámico

El sistema de ayuda da ahora soporte a la composición dinámica de contenido de ayuda. Los temas de autor de XHMTL pueden contener código adicional específico de Eclipse para el filtrado dinámico de contenido en función de valores os/ws/arch, la presencia de plug-ins, las prestaciones habilitadas, etc. Puede incluirse contenido compartido en varios documentos. Finalmente, los plug-ins pueden añadir fragmentos de XHTML que se conecten a anclas de otros documentos. Todo esto permite que los desarrolladores de información suministren documentos dinámicos que se adaptan automáticamente al contexto en el momento de visualizarlos.

Mejoras de la búsqueda de ayuda

La indexación y búsqueda de la ayuda al usuario ha experimentado varias mejoras. Por medio de un punto de extensión, pueden registrarse participantes de búsqueda adicionales que pueden añadir contenido al índice Lucene. La ayuda añade ahora un participante de búsqueda XHTML que puede indexar documentos de ayuda dinámicos escritos en XHMTL (consulte la documentación anterior). Además, ahora aparecerán documentos que anteriormente no estaban el el índice (por ejemplo, hojas de apuntes y páginas de bienvenida). Las coincidencias de búsqueda pueden tener ahora iconos diferentes y la acción abrir ('open') puede delegarse en el motor de búsqueda.

Imagen que muestra las mejoras de la búsqueda

Los problemas pueden agruparse

Los problemas de la vista Problemas pueden ahora agruparse. Existen agrupaciones predeterminadas por gravedad y tipo de problema, y pueden definirse grupos adicionales por medio del punto de extensión org.eclipse.ui.ide.markerSupport.

Mejoras en la ayuda de los diálogos

La mayoría de los diálogos de Eclipse contienen ahora un botón de ayuda estándar en la esquina inferior izquierda. Este botón ofrece la misma ayuda contextual que si se pulsara F1 (en Windows). Además, el contenido de la ayuda aparecerá ahora en la bandeja del diálogo lugar de hacerlo en una ventana independiente. Los diálogos personalizados pueden heredar esta función creando una subclase de la nueva clase TrayDialog en lugar de hacerlo de Dialog. Las hojas de apuntes también pueden abrirse en diálogos (en la bandeja) en aquellos pasos que implican la apertura de diálogos.

Enlaces de mandatos incorporados al contenido de ayuda al usuario

Los enlaces de la ayuda, hojas de apuntes y contenido de introducción pueden ahora ejecutar mandatos cuando el usuario los activa. Los enlaces de mandatos pueden utilizarse para abrir páginas de preferencias, lanzar asistentes, mostrar vistas, abrir perspectivas y muchas otras finalidades. La infraestructura de mandatos es ampliable, por lo que es posible utilizar muchas más veces los enlaces de mandatos. La guía del usuario del entorno de trabajo se ha mejorado con enlaces de mandatos en muchas ubicaciones. La imagen que figura a continuación muestra dos enlaces de mandatos de un tema de la ayuda:

Enlaces de mandatos en un tema de la ayuda

Soporte para lanzar mandatos desde hojas de apuntes

Ahora pueden lanzarse mandatos desde hojas de apuntes. El archivo de contenido que figura a continuación contiene mandatos para abrir la vista Búsqueda y el Explorador de paquetes.
<?xml version="1.0" encoding="UTF-8" ?>
<cheatsheet title="Ejemplo de mandatos en una hoja de apuntes">
  <intro>

    <description>Una hoja de apuntes muestra el
			explorador de paquetes</description>
  </intro>
  <item title="Mostrar vista Búsqueda">
     <description>Este es un paso con un mandato
		que muestra la vista de búsqueda.</description>

     <command serialization=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Paso 2">
    <description>Este es un paso con un mandato y
		parámetros, que muestra el explorador de paquetes.</description>

     <command serialization="org.eclipse.ui.views.showView(
		org.eclipse.ui.views.showView.viewId=
		org.eclipse.jdt.ui.PackageExplorer)"/> 
     <onCompletion>
         Ejemplo de mandato finalizado.
     </onCompletion>
  </item>
</cheatsheet>

Mensaje de finalización

Puede añadirse un mensaje de finalización a un paso de una hoja de apuntes, que se visualizará cuando finalice dicho paso.

Imagen que muestra un mensaje de finalización de hoja de apuntes

Hojas de apuntes compuestas

Las hojas de apuntes compuestas son nuevas en Eclipse 3.2. Una hoja de apuntes compuesta proporciona una guía para un problema de grandes dimensiones dividiéndolo en tareas más pequeñas, cada una de las cuales tiene su propia hoja de apuntes. Las tareas pueden organizarse en grupos. Las hojas de apuntes compuestas se abren en la vista de hojas de apuntes y se lanzan mediante el diálogo de selección de hojas de apuntes. Cada tarea tiene una descripción e hiperenlaces que dirigen al usuario a través de una secuencia de tareas.

Imagen que muestra una hoja de apuntes compuesta

Las hojas de apuntes compuestas contienen un árbol que muestra las tareas y su estado. El panel derecho/inferior contiene las tareas individuales.

Imagen que muestra una hoja de apuntes compuesta

El contenido de una hoja de apuntes compuesta se define en un archivo XML. El archivo de contenido puede especificar las dependencias existentes entre las tareas, a fin de que una tarea sólo pueda iniciarse una vez completadas las tareas prerrequisito.

Índice de palabras clave de ayuda

La ayuda contiene ahora un índice de palabras clave, en el que puede registrar palabras clave de la documentación y suministrar un enlace a un documento de ayuda adecuado. El índice está disponible tanto en la vista Ayuda como en la ventana de ayuda (la vista se muestra más abajo).

Nota: el contenido del índice aún no está disponible para el SDK (sólo aparecerá si hay contenido disponible).

Imagen que muestra la vista Ayuda

Herramienta de conversión de documentos de ayuda XHTML

El PDE tiene un nuevo programa de utilidad destinado a convertir rápidamente a XHTML los documentos de ayuda HTML de un plug-in. Además de convertir el HTML a XHTML válido, la herramienta actualizará la extensión del nombre de archivo, la tabla de contenido y añadirá los enlaces necesarios para habilitar el contenido dinámico y la búsqueda de contenido XHTML. Después de esta conversión, los usuarios podrán aprovechar las nuevas características de la ayuda de la versión 3.2, como por ejemplo el filtrado de contenido dinámico, la reutilización de contenido y la adición de contenido dinámico, funciones que requieren XHTML como formato de contenido.

Esta función puede invocarse seleccionando Herramientas del PDE > Convertir archivos de ayuda a XHTML en el menú de contexto de los proyectos de plug-in.

Imagen que muestra la herramienta de conversión a XHTML

Bienvenida universal

Basándonos en nuestra experiencia de implementaciones concretas de la bienvenida, ahora ofrecemos una Bienvenida universal configurable que puede utilizarse con cualquier producto. Los productos pueden elegir entre 7 secciones principales predefinidas: Visión general, Primeros pasos, Guías de aprendizaje, Ejemplos, Novedades, Recursos Web y Migración (El SDK de Eclipse utiliza 4 de ellas). La Bienvenida universal tiene diseños de página y niveles de importancia configurables para cada contribución, con plena capacidad para temas. También ofrece presentaciones HTML y SWT para el 100% de las plataformas.

Una página de preferencias de bienvenida suministrada por la Bienvenida universal abre la personalización de la bienvenida por parte de los usuarios finales, y puede incluirse en cualquier producto que desee ofrecerla. Puede obtener más información acerca de ella en la Especificación de la Bienvenida universal.

Imagen que muestra la Bienvenida universal

Soporte para configuración y temas en la Bienvenida

La infraestructura de introducción tiene un mayor soporte de configurabilidad. Puede añadirse un configurador de introducción que ofrece cálculo único de los grupos hijos, soporte de sustitución de variables y resolución diferida de vías de acceso de ancla. La Bienvenida universal utiliza exhaustivamente este soporte, pero también pueden utilizarlo otras implementaciones de la bienvenida.

Los temas representan colecciones con nombre de archivos CSS, propiedades e imágenes que definen colectivamente el aspecto del contenido de la bienvenida. La Bienvenida universal utiliza este soporte suministrando una prestación de selección de temas y dos temas concretos en la versión 3.2: 'Circles' y 'Purple Mesh'.

Imagen que muestra los temas en la bienvenida

Soporte de espacio de nombres para los puntos de extensión Ant

Los puntos de extensión org.eclipse.ant.core antTasks y antTypes permiten ahora la designación de un URI en el que debe residir la definición. Consulte el error 133190 para obtener todos los detalles relativos a todos los cambios.

Soporte de equipo para integración de modelos lógicos

Se ha añadido una API que permite a los modelos lógicos participar en las operaciones de equipo. Con esta API, los proveedores de equipo pueden:
  • Consultar modelos para asegurarse de que todos los recursos necesarios se incluyen en una operación de equipo.
  • Utilizar semántica de modelo para facilitar la resolución de conflictos de fusión.
  • Permitir a los modelos participar en la visualización de recursos durante las operaciones de equipo.

Sincronización con modelos Java y de Recursos

Cambios de SWT

Indicador de clasificación en tablas y árboles

Las tablas y árboles dan ahora soporte a un indicador de dirección de clasificación en la cabecera de la columna.

Imagen que muestra un indicador de dirección de clasificación

Fragmentos de código SWT que muestran clasificación por columna (simple) y clasificación por columna (tabla virtual).

Columnas reordenables en árboles

En Eclipse 3.1, se añadió la posibilidad de reordenar columnas en una tabla. Ahora, ese soporte se ha añadido a los árboles.

El orden de visualización de las columnas en un árbol puede cambiarse arrastrando la cabecera de la columna o puede establecerse por programa.

Imagen que muestra columnas reordenables

Ejemplo de fragmento de código.

Soporte de temas XP mejorado

En Windows XP, SWT muestra ahora el fondo texturado en carpetas de pestaña. Los grupos, etiquetas, recuadros de selección, etc. son todos transparentes a este fondo. Además, los widgets personalizados, como por ejemplo StyledText, muestran ahora el borde correcto para el tema Windows XP predominante.

Imagen que muestra el soporte de temas XP

Consulte las preguntas más frecuentes (FAQ) sobre SWT para obtener instrucciones acerca de la ejecución con una textura Windows XP.

GIF animados

Las imágenes GIF animadas pueden guardarse en archivo.

Imagen que muestra el soporte para GIF animados

Para obtener un ejemplo, consulte el fragmento de código SWT.

Notificación del aspecto del escritorio

Cuando se cambian valores de aspecto del escritorio, como por ejemplo el tema, font o colores predeterminados, se emite un evento SWT.Settings para la Pantalla.

Imagen que muestra una notificación de aspecto de escritorio

Notificación de cierre

Anteriormente, cuando se recibía un evento SWT.Dispose para un compuesto padre, todos los hijos se cerraban y, por tanto, no podían referenciarse. En la versión 3.2, el evento Dispose se recibe antes de que los hijos se liberen en el SO.

Ayudas flotantes para columnas

Puede establecerse texto de ayuda flotante en una cabecera columna de tabla o de árbol mediante TableColumn/TreeColumn.setTooltipText(String).

Barra de elementos de interés vertical

Puede crease una barra de elementos de interés mediante el estilo SWT.VERTICAL.

Imagen que muestra una barra de elementos de interés vertical

Soporte OpenGL

Ahora puede utilizarse OpenGL en aplicaciones SWT. La interfaz OpenGL funciona con bibliotecas OpenGL de terceros, como por ejemplo LWJGL.

Imagen que muestra un ejemplo de OpenGL

Para obtener ejemplos, consulte los fragmentos de código SWT

Árbol virtual

Ahora, los árboles dan soporte al estilo SWT.VIRTUAL. Esto permite crear rápidamente árboles con grandes cantidades de datos. Cuando son necesarios TreeItems, se crean bajo demanda.

Para obtener un ejemplo, consulte el fragmento de código SWT.

Botones con imagen y texto

Los botones pueden mostrar ahora una imagen y texto. Esta característica está soportada en Windows XP, Mac OS X y GTK.

Imagen que muestra un botón con una imagen

HIView en Mac OS X

SWT utiliza ahora HIView en Mac OS X. Esto resuelve muchos de los problemas de sujeción y tamaño.

Intercalar objetos en el texto

Mediante TextLayout, ahora es posible intercalar objetos tales como imágenes o widgets en el texto. Puede especificarse métrica de tipo glifo, como por ejemplo ascent, descent y width. Los objetos se acomodan en el texto.

Imagen que muestra una imagen intercalada en el texto

Para obtener un ejemplo, consulte el fragmento de código SWT.

Sangrar, alinear y justificar texto

Ahora, TextLayout da soporte al sangrado, justificación y alineación de texto.

Imagen que muestra la alineación de texto

Para obtener un ejemplo, consulte el fragmento de código SWT.

Elevación de línea base de texto

Mediante TextLayout y TextStyle, ahora es posible especificar la elevación de la línea base para un rango de texto.

Imagen que muestra texto al que se da una elevación de línea base

Para obtener un ejemplo, consulte el fragmento de código SWT.

Soporte de colores HSB

Puede crearse un color especificando el tono, saturación y brillo. Además, pueden consultarse los valores de tono, saturación y brillo de un color determinado.

Imagen que muestra el soporte HSB

Para obtener un ejemplo, consulte el fragmento de código SWT

Alineación, sangrado y justificación de StyledText

Ahora, StyledText da soporte al sangrado, justificación y alineación de texto.

Imagen que muestra la alineación de StyledText

Para obtener un ejemplo, consulte el fragmento de código SWT

Objetos intercalados en StyledText

StyledText permite ahora intercalar objetos tales como imágenes o widgets en el texto. Los objetos se acomodan en el texto.

Imagen que muestra una imagen intercalada en el texto

Para obtener un ejemplo, consulte el fragmento de código SWT

Imagen de fondo

Puede definirse una imagen de fondo en un control. Además, los widgets hijos, como por ejemplo las etiquetas, pueden heredar el fondo.

Imagen que muestra una imagen de fondo en un control

Para obtener un ejemplo, consulte el fragmento de código SWT

Carga de imágenes nativas

El constructor Image(Device device, String filename) cargará ahora imágenes utilizando llamadas al sistema operativo nativo. Esto mejora el rendimiento de la carga de imágenes y aumenta el tamaño máximo de la imagen que puede cargarse.

Arrastrar texto

Si el evento SWT.DragDetect se engancha a Text o StyledText, la selección no se borrará cuando el usuario arrastre desde el interior de un rango de texto seleccionado. Esto hace posible dar soporte al arrastre desde los widgets Text y StyledText.

Para obtener un ejemplo, consulte este fragmento de código SWT

Nuevo widget ExpandBar

El widget ExpandBar permite al usuario mostrar y ocultar colecciones de widgets pulsando sobre una cabecera. ExpandBar contiene varios elementos, cada uno de los cuales puede tener una imagen y un título en la cabecera.

Imagen que muestra la ocultación de widgets

Para obtener un ejemplo, consulte este fragmento de código SWT.

Viñetas en StyledText

StyledText puede ahora mostrar listas formateadas en diversos estilos, incluidas viñetas, numeradas, letras mayúsculas o minúsculas y estilos definidos por usuario.

Imagen que muestra viñetas en StyledText

Para obtener un ejemplo, consulte este fragmento de código SWT.

Árbol de dibujo personalizado

El widget Tree da soporte ahora al dibujo personalizado de casillas individuales. Las aplicaciones pueden mejorar el aspecto y funcionamiento nativo del árbol mediante la visualización personalizada de los datos. La aplicación tiene control sobre la altura de las filas, por lo que pueden dibujarse varias líneas de texto. Además, puede presentar varias imágenes en la misma casilla, cambiar el font o el color varias veces y cambiar la forma en que se dibujan las selecciones.

Imagen que muestra el dibujo personalizado de casillas de árbol individuales

Para obtener ejemplos, consulte los siguientes fragmentos de código:

Tabla de dibujo personalizada

El widget Table da soporte ahora al dibujo personalizado de casillas individuales. Al tiempo que conservan el aspecto y funcionamiento nativo de la tabla, los usuarios pueden personalizar cómo se dibujan las casillas para visualizar datos en un formato que no sea texto con una imagen, para mostrar varias líneas de texto en una casilla, para cambiar el font y el color varias veces dentro de la misma casilla, para alterar temporalmente el dibujo de selecciones nativas, etc.

Imagen que muestra el dibujo personalizado para casillas de tabla individuales

Para obtener ejemplos, consulte los siguientes fragmentos de código:

Información de arrastre para Table y Tree

Los widgets Table y Tree proporcionan ahora información visual sobre lo que se está arrastrando.

Imagen que muestra la información de arrastre

Nueva clase Tooltip

La nueva clase ToolTip puede utilizarse para visualizar ayudas flotantes que no están directamente asociadas a un Control. Estas ayudas flotantes pueden colocarse en cualquier ubicación y pueden tener el aspecto predeterminado por la plataforma o el aspecto BALLOON (globo), que se muestra a continuación.

Imagen que muestra ayuda flotante con el estilo BALLOON (globo)