A utilização mais potente do controlo FormText
ocorre quando se adicionam tags de formatação ao texto. O tag raiz esperado é form
.
Pode ter um ou mais descendentes que sejam <p>
ou <li>
.
Qualquer um deles pode ter texto normal, texto entre tags <b>
ou
<span>
, imagens, ligações e controlos SWT
. As imagens são declaradas com <img href="chave da imagem"/>
(sem conteúdo), ao passo que as ligações são expressas com <a href="href">texto</a>
.
Alguns dos tags mencionados supra têm atributos adicionais. O tag
<a>
pode aceitar nowrap="true"
para impedir a ligação de ser translineada na nova linha. O tag <p>
pode ter o atributo
vspace="false"
(true
por predefinição) que adiciona mais espaço entre parágrafos. O tag <li>
dispõe de mais atributos:
style (estilo) - pode ser text
(texto), bullet
(ponto de destaque)
e image
(imagem) (a predefinição é bullet
)
value (valor) - não utilizado para bullet
; se o estilo for text
, o valor será apresentado em vez de um ponto de destaque; se o estilo for image
, o valor representa uma chave na tabela de imagens de uma imagem a apresentar em vez de um ponto de destaque
vspace - o mesmo que para o tag 'p
'.
indent (indentação) - o número de pixéis para indentar texto
bindent - O número de pixéis para indentar o ponto de destaque (este número não depende de 'indent' - tenha atenção em não os sobrepor)
Os tags que afectam a aparência do texto normal são <b>
(funciona como esperado) e <span>
. O último permite alterar tipo de letra e/ou cor do texto dentro do tag. Por fim, podem ser adicionadas quebras de linha suaves com o tag <br/>
(repare que isto é XML, por isso não se pode utilizar <br>
aberto como em HTML).
Desde a edição 3.1, FormText
pode ser utilizado para misturar widgets de SWT dentro de texto, hiperligações e imagens.
Os controlos de SWT são criados como descendentes de FormText
, o
que torna FormText
numa espécie de gestor de esquemas, com
instruções sobre onde colocar o controlo relativamente ao texto incorporado
directamente no código XML.
Um tema recorrente é que o FormText
não é responsável por carregar imagens, tipos de letra, nem por resolver ligações ou cores. Não se trata de um
browser, por isso é muito melhor separar preocupações e atribuir simplesmente imagens e cores geridas noutro local. Tanto as ligações como as imagens têm somente o atributo 'href
' para as referenciar. No caso das ligações, o valor deste atributo será fornecido no evento de hiperligação quando forem notificados ouvintes. As imagens devem ser registadas junto do controlo de texto que utiliza a chave 'href' correspondente. Desta forma, o controlo não tem de tratar do carregamento de imagens - tem-nas na tabela de indexações e pode apresentá-las imediatamente.
Foi utilizada uma abordagem semelhante para cores e tipos de letra. As cores já são tratadas pelo kit de ferramentas, de modo que pode atribuir tantas quantas quiser com uma chave única e valores RGB chamando toolkit.getColors().createColor()
.
Só falta definir todas as cores referenciadas no tag 'span
' para que o controlo as possa utilizar na apresentação.