O uso mais eficiente do controle FormText
é quando as tags de formatação são incluídas no texto. A tag raiz esperada é form
.
Ela pode ter um ou mais filhos que podem ser <p>
ou <li>
.
Qualquer uma delas pode ter texto normal, texto entre tags <b>
ou
<span>
, imagens, links e controle SWT
. Imagens são declaradas utilizando
<img href="image key"/>
(sem conteúdo), enquanto link são expressos utilizando <a href="href">text</a>
.
Algumas das tags mencionadas acima têm atributos adicionais. A tag
<a>
pode aceitar nowrap="true"
para evitar que o link seja agrupado na nova linha.
A tag <p>
pode ter atributo
vspace="false"
(true
por padrão) que inclui espaço adicional entre parágrafos.
A tag <li>
tem mais atributos:
style - pode ser text
, bullet
e image
(o padrão é bullet
)
value - não utilizado para bullet
; se o estilo for
text
, o valor será renderizado em lugar de um marcador;
se o estilo for image
, o valor representará uma chave na tabela de imagens de uma imagem a ser renderizada em lugar de um marcador
vspace - o mesmo que para a tag 'p
'.
indent - o número de pixels para recuar o texto
bindent - o número de pixels para recuar o marcador (esse número é independente do 'indent' - tenha cuidado para não sobrepô-los)
As tags que afetam a aparência do texto normal são <b>
(funciona como o esperado) e <span>
. A última permite alterar a fonte e/ou a cor do texto dentro da tag.
Finalmente, quebras de linha temporárias podem ser incluídas utilizando a tag
<br/>
(observe que isso é XML, portanto você não pode utilizar <br>
aberto como no HTML).
Desde o release 3.1, FormText
pode ser utilizado para misturar widgets do SWT dentro de texto, hyperlinks e imagens.
Os controles de SWT são criados como filhos de FormText
, o que torna o FormText
um gerenciador de layout inferior, com instrução sobre onde colocar o controle relativo ao texto incorporado diretamente no XML.
Um tema comum que pode ser observado é que FormText
não é responsável por carregar imagens, fontes, links resolvidos ou cores.
Isso não é um navegador e é muito melhor separar problemas e simplesmente designar imagens e cores gerenciadas em outro lugar. Os links e imagens simplesmente têm o atributo 'href
' para fazer referência a eles.
Para links, o valor desse atributo será fornecido no evento do hyperlink quando os listeners forem notificados.
As imagens precisam ser registradas com o controle de texto utilizando a chave 'href' correspondente.
Dessa forma, o controle não precisa se preocupar sobre o carregamento das imagens, ele as tem na tabela hash e pode renderizá-las imediatamente.
Uma abordagem semelhante foi utilizada para cores e fontes. As cores já são manipuladas pelo toolkit, portanto você pode alocar quantas desejar utilizando uma chave exclusiva e valores de RGB, chamando o toolkit.getColors().createColor()
.
O que sobra é configurar todas as cores referidas na tag 'span
' para que o controle possa utilizá-las durante a renderização.