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:
style: puede ser text
, bullet
e image
(el valor por omisión es bullet
)
value: no se utiliza para
bullet
; si el estilo es
text
, se presentará value en su lugar sustituyendo a una
viñeta; si el estilo es image
, value representa una clave de la
tabla de imagen de una imagen que se presentará en lugar de una viñeta
vspace: igual que para el código 'p
'.
indent: número de píxeles que se sangrará el texto
bindent: número de píxeles para sangrar la viñeta (este número es independiente de 'indent'; tenga cuidado de que no se solapen)
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.