解析格式化标记

在文本中添加了格式化标记后,FormText 控件的功能将最为强大。预期的根标记是 form。它可以有一个或多个子标记,子标记可以是 <p><li>。这些子标记可以包含正常文本、<b><span> 标记之间的文本、图像、链接和 SWT 控件。图像是使用 <img href="image key"/>(无内容)声明的,而链接是使用 <a href="href">text</a> 表达的。

上面提到的某些标记可以有其它属性。标记 <a> 可以接受 nowrap="true" 以便不允许链接换行。标记 <p> 可以带有属性 vspace="false"(缺省值为 true),该属性在段落之间添加附加的空格。标记 <li> 有更多的属性:

影响正常文本外观的标记是 <b>(能够发挥预期作用)和 <span>。后者允许您更改标记中的文本的字体和/或颜色。最后,可以使用 <br/> 标记来添加软换行符(注意,这是 XML,所以不能象在 HTML 中那样使用起始 <br>)。

从 R3.1 开始,可以使用 FormText 来在文本、超链接和图像中混合使用 SWT 窗口小部件。SWT 控件是作为 FormText 的子代创建的,这使 FormText 成为一种布局管理器,并提供了指示信息来说明相对于 XML 中直接嵌入的文本在什么位置放置控件。

可常看到的一种情况是,FormText 不负责装入图像和字体以及解析链接或颜色。这不是浏览器,因此将问题分隔开并仅仅指定在别处管理的图像和颜色会好得多。链接和图像都简单地使用“href”属性来引用它们。对于链接来说,此属性的值将在侦听器接到通知时在超链接事件中提供。需要使用匹配的“href”键对文本控件注册图像。这样,该控件就不必考虑装入图像 - 它可以通过散列表找到它们并立即显示它们。

类似的方法已用于颜色和字体。工具箱已经处理了颜色,所以可以通过调用 toolkit.getColors().createColor(),使用唯一的键和 RGB 值来分配任意多的颜色。需要做的只是设置“span”标记中引用的所有颜色以使控件能够在显示期间使用它们。