Analysér formateringskoder

Den mest effektive brug af kontrollen FormText sker, når der tilføjes formateringskoder til teksten. Den forventede rodkode er form. Den kan have et eller flere underordnede elementer, som kan være enten <p> eller <li>. Hver af disse kan indeholde normal tekst, tekst mellem <b> eller <span> koder, billeder, link og SWT-kontroller. Billeder erklæres ved hjælp af <img href="image key"/> (intet indhold), mens link udtrykkes ved hjælp af <a href="href">text</a>.

Nogle af ovennævnte koder har yderligere attributter. Koden <a> kan acceptere, at nowrap="true" blokerer linket, så det ikke ombrydes til en ny linje. Koden <p> kan have attributten vspace="false" (standard er true), som tilføjer ekstra plads mellem afsnit. Koden <li> har flere attributter:

Koder, der påvirker udseendet af den normale tekst, er <b> (fungerer som forventet) og <span>. Sidstnævnte kode gør det muligt at ændre font og/eller tekstfarve inden for koden. Endelig kan bløde linjeskift tilføjes vha. koden <br/> (bemærk, at det er XML, så du kan ikke bruge åbne <br> som i HTML).

Fra og med release 3.1 kan FormText bruges til at blande SWT-elementer inde i tekst, hyperlink og billeder. SWT-kontroller oprettes som underordnede elementer til FormText, hvilket gør FormText til en slags layoutstyringsfunktion med instruktioner i, hvor kontrollen skal placeres i forhold til tekst, som er direkte indbygget i XML.

Et fælles træk er, at FormText ikke er ansvarlig for indlæsning af billeder, fonte, fortolkning af link eller farver. Det er ikke en browser, og den er langt bedre egnet til specielle formål og enkel tildeling af billeder og farver, som administreres et andet sted. Der refereres ganske enkelt til både link og billeder vha. attributten 'href'. For link oplyses værdien af denne attribut i hyperlinkaktiviteten, når lyttere får besked. Billeder skal registreres med tekstkontrollen vha. den tilsvarende 'href'-nøgle. På denne måde behøver kontrollen ikke bekymre sig om indlæsning af billederne - de er placeret i dets hash-tabel og kan gengives med det samme.

Samme fremgangsmåde er anvendt for farver og fonte. Farverne håndteres allerede af toolkit, så du kan allokere så mange, du vil, vha. en entydig nøgle og RGB-værdier, ved at kalde toolkit.getColors().createColor(). Der mangler kun at angive alle de farver, der refereres til i koden 'span', så kontrollen er i stand til at bruge dem under gengivelsen.