Al lanzar la bienvenida universal configurada tal como se ha mostrado anteriormente, observará que todas las páginas de segundo nivel que se ramifican a partir de la página raíz tiene un área de contenido vacía. Esto se debe a que la bienvenida compartida no tiene contenido en sí misma. Estas áreas se llenan utilizando extensiones de configuración de introducción.
El procedimiento tradicional para añadir extensiones de configuración consiste en especificar una vía de acceso completa del elemento de ancla (anchor) en la página destino. Este método sigue estando soportado, pero se ha mostrado bastante frágil. Como se ha indicado anteriormente, la especificación de un lugar exacto en el que se ubicarán finalmente las extensiones en el destino es prematuro para los autores de las extensiones. Es posible que no conozcan todos los productos en los que se colocará su extensión y, por tanto, no saben dónde debe aparecer de acuerdo con el interés de cada producto. En la bienvenida universal, esta decisión se deja a los autores de los productos. Los autores de las extensiones tienen ahora la opción de especificar una vía de acceso destino incompleta, dejando que el autor del producto rellene los huecos.
Las extensiones de configuración que deseen utilizar la resolución diferida de vía de acceso destino deben cumplir tres condiciones:
La capacidad para resolver vías de acceso destino de extensión es una nueva característica de soporte de Eclipse 3.2, añadida para suministrar potencia a la bienvenida universal. La característica en sí es genérica en el sentido de que puede utilizarse en otras implementaciones de la bienvenida, no sólo en la universal. En Eclipse 3.2, CustomizableIntroPart puede aceptar una clase de personalizador de introducción opcional que puede afectar a su comportamiento de varias formas. Uno de los roles del personalizador es realizar la resolución diferida de vías de acceso destino. Evidentemente, por lo que respecta a los autores de los productos, esto son sólo detalles de la implementación, ya que, en la implementación de la bienvenida universal, la resolución diferida de vías de acceso destino se realiza mediante el archivo de datos indicado anteriormente. Este archivo se almacena mediante la preferencia org.eclipse.ui.intro/INTRO_DATA.
El archivo 'INTRO_DATA' utiliza el formato XML y permite a los autores de los productos controlar el contenido de las páginas de bienvenida principales. Los autores de contribuciones a la bienvenida deben especificar sólo el ID de página en sus vías de acceso destino. El resto se define en este archivo. El archivo contiene una secuencia de elementos 'page', cada uno de los cuales contiene diversos elementos 'group'. Los elementos de grupo especifican una vía de acceso relativa a la página y contienen contribuciones para los hijos. Los elementos de contribución se utilizan para especificar dos aspectos:
<extensions> <page id="overview"> <group path="page-content/top-left"> <extension id="foo1" importance="high"/> <extension id="bar" importance="high"/> <extension id="foo2" importance="medium"/> </group> <group path="page-content/top-right"> <extension id="foo3" importance="low"/> <extension id="foo4" importance="low"/> <extension id="foo5" importance="callout"/> </group> <hidden> <extension id="foo6"/> <extension id="foo7"/> </hidden> </page> <page id="whatsnew"> ... </page> </extensions>
En el ejemplo anterior, las contribuciones 'foo1', 'bar' y foo2' estarán en la columna
izquierda, y 'foo3', 'foo4' y 'foo5' en la columna derecha de la página. El orden
relativo de las contribuciones también se extrae de este archivo. Además, las
contribuciones se clasifican en función del atributo importance
, que puede
tener cuatro valores: high, medium, low y
callout, siendo low el valor predeterminado. Cada valor tiene una presentación
correspondiente que lo hace destacar en la página. Los tres primeros son simplemente
niveles diferentes de importancia, de acuerdo con el autor del producto (tenga en cuenta
que la misma contribución puede recibir una clasificación de importancia diferente en dos
productos independientes). El último (callout) se utiliza para singularizar las
contribuciones que son de una naturaleza completamente diferente (por ejemplo, una
contribución que ofrece enlaces con vídeos o animaciones).
Las contribuciones que no aparecen en la lista se añaden a continuación de las contribuciones listadas y se les asigna un valor de importancia bajo (low). Esto es importante para las contribuciones añadidas después de suministrar el producto, ya que sigue siendo necesario que aparezcan.
Las contribuciones no relevantes para el proyecto pueden ocultarse listándolas explícitamente como hijas del elemento 'hidden'.
Una extensión añadida a una de las páginas raíz puede contener anclas para que otros puedan añadir contenido. Esto provoca un problema, ya que la vía de acceso resuelta final del contenido de la extensión no se conoce por adelantado. Por esa razón, deben resolverse las vías de acceso destino para el contenido de extensiones que utilizan resolución de vías de acceso diferida:
<?xml version="1.0" encoding="utf-8" ?> <introContent> <extensionContent id="extra" name="Extra" alt-style="css/swt.properties" style="css/overview.css" path="overview/@"> <group id="extra-group" style-id="content-group"> <link label="Extra Overview link" url="http://org.eclipse.ui.intro/showPage?id=extraOverview" id="extra-overview"> <text>Mostrar la página adicional de tercer nivel para la visión general</text> </link> <anchor id="additions"/> </group> </extensionContent> </introContent>
Para contribuir a las adiciones ('additions') de ancla de la extensión anterior, debe utilizarse la siguiente vía de acceso: "overview/@extra/extra-group/additions". El segmento '@extra' se sustituirá por la vía de acceso resuelta de la extensión con el id 'extra' de la página 'overview'. Por ejemplo, si la extensión se coloca en el segmento superior izquierdo de la página, la vía de acceso resuelta será: "overview/page-content/upper-left/extra-group/additions".