定制自动编辑策略(Auto Edit Strategy)
JFace Text Framework框架的一个重要的功能特征就是自动编辑策略,它允许用户对输入的内容(准 确的说应该是即将来临的Document修改^_^)做即时编辑,然后又会透明的将用户的修改付诸于实现(即 应用到当前文档)。在本节,我们将在前两节有关TLD Content Model的基础上开发一个自动编辑策略。
【JFace Text Framework 自动编辑策略原理介绍】
【JDT Java源码编辑器自动编辑策略演示】
我们每个使用Eclipse JDT进行Java编程的开发者都会对JDT中Java源码编辑器的自动编辑策略印象深 刻,它给编码人员带来了很大的方便。举例如下:
如上图所示,我们在编写一个新的函数,图中黑色竖线“|”就是光标所在处,当我们按下回车键的时 候,效果变为如下:
如上图所示,当我们输入回车键之后,JDT Java源码编辑器自动帮我们矫正了内容(text)和位置 (offset):原来的输入内容应该是“\r\n”,JDT Java源码编辑器自动帮我们矫正为 “\r\n\t\t\r\n\t}”;根据“\r\n”内容推算,输入后光标位置应该位于28行的起始处,JDT Java源码 编辑器自动帮我们矫正为离28行其实处两个“\t”的距离。
【自动编辑流程和主要角色】
上图就演示了自动编辑过程:
1、用户编辑,键盘事件
2、根据键盘事件,对事件信息进行分析,拼装到名为DocumentCommand的数据结构中,该数据结构中 包含了用户的输入内容(text)、光标位置(offset)等信息,例如,上面JDT的例子中用户的输入内容 为“\r\n”。这一步JFace Text Framework帮用户解决了。
3、调用自动编辑策略,对应DocumentCommand中数据进行自定义矫正,例如,JDT Java源码编辑器的 自动编辑策略将输入内容矫正为“\r\n\t\t\r\n\t}”。用户自己负责,JDT Java源码编辑器在这边干活 了,提供了自己的IAutoEditStrategy^_^