Códigos de formateo de análisis

El uso con más posibilidades del control FormText control se aplica cuando se añaden códigos de formato al texto. El código raíz esperado es form. Puede tener uno o más hijos que pueden ser <p> o <li>. Cualquiera de ellos puede tener texto normal, texto entre códigos <b> o <span>, imágenes, enlaces y controles SWT. Las imágenes se declaran mediante <img href="clave de imagen"/> (sin contenido), mientras que los enlaces se expresan utilizando <a href="href">texto</a>.

Algunos códigos mencionados antes tienen atributos adicionales. El código <a> puede aceptar nowrap="true" para bloquear que se acomode el enlace en la nueva línea. El código <p> puede tener el atributo vspace="false" (true por omisión) que añade espacio adicional entre párrafos. El código <li> tiene más atributos:

Códigos que afectan el aspecto del texto normal son <b> (funciona como se esperaba) y <span>. Este último permite cambiar el font y/o el color del texto en el código. Finalmente, pueden añadirse rupturas de línea no forzadas utilizando el código <br/> (observe que es XML, para que no pueda utilizar <br> abierto como en HTML).

A partir del release 3.1, puede utilizar FormText para mezclar widgets SWT en el texto, hiperenlaces e imágenes. Los controles SWT se crean como hijos de FormText, que convierte a FormText en una especie de gestor de diseño, con instrucciones sobre dónde se coloca el control en relación con texto incorporado directamente en el XML.

Un tema común que puede observarse es que FormText no es responsable de cargar imágenes, fonts o resolver enlaces o colores. No es un navegador y es mucho mejor para separar problemas y simplemente asignar imágenes y colores gestionados en otro lugar. Tanto los enlaces como las imágenes sólo tienen el atributo 'href' para referenciarlos. Para los enlaces, se proporcionará el valor de este atributo en el evento de hiperenlace cuando se notifiquen los escuchadores. Es preciso registrar los imágenes con el control de texto que utiliza la clave 'href' coincidente. De esta manera, no es necesario que el control se preocupe por cargar las imágenes, ya que las tiene en la tabla hash y puede representarlas inmediatamente.

Se ha utilizado un enfoque similar para los colores y fonts. El kit de utilidades ya maneja los colores, de modo que puede asignar tantos como quiera utilizando una clave exclusiva y valores RGB llamando a toolkit.getColors().createColor(). Lo que queda es establecer todos los colores referenciados en el código 'span' para que el control pueda utilizarlos durante la representación.