【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(十二)2011-10-12 blogjava zhuxing定制自动编辑策略(Auto Edit Strategy)JFace Text Framework框架的一个重要的功能特征就是自动编辑策略,它允许用户对输入的内容(准 确的说应该是即将来临的Document修改^_^)做即时编辑,然后又会透明的将用户的修改付诸于实现(即 应用到当前文档)。在本节,我们将在前两节有关TLD Content Model的基础上开发一个自动编辑策略。【JFace Text Framework 自动编辑策略原理介绍】【JDT Java源码编辑器自动编辑策略演示】我们每个使用Eclipse JDT进行Java编程的开发者都会对JDT中Java源码编辑器的自动编辑策略印象深 刻,它给编码人员带来了很大的方便。举例如下:如上图所示,我们在编写一个新的函数,图中黑色竖线“|”就是光标所在处,当我们按下回车键的时 候,效果变为如下:如上图所示,当我们输入回车键之后,JDT Java源码编辑器自动帮我们矫正了内容(text)和位置 (offset):原来的输入内容应该是“
”,JDT Java源码编辑器自动帮我们矫正为 “
}”;根据“
”内容推算,输入后光标位置应该位于28行的起始处,JDT Java源码 编辑器自动帮我们矫正为离28行其实处两个“ ”的距离。【自动编辑流程和主要角色】

上图就演示了自动编辑过程:1、用户编辑,键盘事件2、根据键盘事件,对事件信息进行分析,拼装到名为DocumentCommand的数据结构中,该数据结构中 包含了用户的输入内容(text)、光标位置(offset)等信息,例如,上面JDT的例子中用户的输入内容 为“
”。这一步JFace Text Framework帮用户解决了。3、调用自动编辑策略,对应DocumentCommand中数据进行自定义矫正,例如,JDT Java源码编辑器的 自动编辑策略将输入内容矫正为“
}”。用户自己负责,JDT Java源码编辑器在这边干活 了,提供了自己的IAutoEditStrategy^_^