【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(五)

2012-03-18
浏览
导读:WTP Structured Model 有关另外一个WTP重要的数据模型IStructuredDocument已经在前面介绍过了,今天我们看一下另外一 个核心的数据模型IStructuredModel。在继

WTP Structured Model

有关另外一个WTP重要的数据模型IStructuredDocument已经在前面介绍过了,今天我们看一下另外一 个核心的数据模型IStructuredModel。在继续下面的内容之前,请确保当前工作区中已经导入(无论是 源码方式导入还是二进制方式导入)了如下工程:

org.eclipse.jst.jsp.core

org.eclipse.jst.jsp.ui

org.eclipse.wst.css.core

org.eclipse.wst.css.ui

org.eclipse.wst.html.core

org.eclipse.wst.html.ui

org.eclipse.wst.javascript.core

org.eclipse.wst.javascript.ui

org.eclipse.wst.sse.core

org.eclipse.wst.sse.ui

org.eclipse.wst.xml.core

org.eclipse.wst.xml.ui

在前面介绍IStructuredDocument的时候,我们知道IStructuredDocument的具体实现其实就是JFace Text Framework中IDocument接口的具体实现,其核心作用也集中在将特定文本按照特定的语法规则进行 区域划分,提供相应的位置信息,这为WTP页面资源编辑器建立了核心数据模型。但是,单纯拥有偏重于 语法的IStrucuturedDocument是不够的,我们同时还需要另外一套偏重于语义的数据模型,这就是 IStructuredModel和其背后的WTP xmlDOM实现(说明:对于CSS模型,是完全由WTP自己实现的,和本系 列文章关系不大,本篇中不做详细介绍)。

注意:IStructuredModel以IStrucuturedDocument为基础构建,IStructuredDocument并不知道 IStructuredModel,但是IStructuredModel知道该模型对应的IStrucuturedDocument!!! 现在先大致 猜测一下原因,如果是直接将特定页面资源的内容直接转换为IStructuredModel肯定不容易,因为我们 页面资源中的内容往往不是那么规则,那转化的过程中肯定避免不了自己去做大量的解析,导致构建 IStructuredModel构建过程异常复杂;如果利用已有的IStrucuturedDocument构建机制,先将特定的内 容解析为IStrucuturedDocument完成语法划分,再基于高度结构化的IStrucuturedDocument去构建 IStrucuturedModel,那肯定会大大简化构建过程,某种程度上就可以将构建过程理解为把 IStrucuturedDocument中节点列表转换为IStrucuturedModel持有的Document对应的节点列表了。 IStructuredModel构建过程大致示意如下:

【IStructuredModel:句柄】

用MyEclipse开发的Hibernate + JSP分页代码

【Eclipse插件开发】基于WTP开发自定义的JS

【Eclipse插件开发】基于WTP开发自定义的JS

【Eclipse插件开发】基于WTP开发自定义的JS

使用JSP实现简易的SQL报表