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

2012-03-18
浏览
导读:定制StructuredTextEditor自动提示 前面介绍的内容集中在两点:StructuredTextEditor框架和WTP数据模型,在本节中就可以定制一个我 们最常用的WTP StructuredTe

定制StructuredTextEditor自动提示

前面介绍的内容集中在两点:StructuredTextEditor框架和WTP数据模型,在本节中就可以定制一个我 们最常用的WTP StructuredTextEditor的功能,那就是自动提示。

【WTP StructuredTextEditor提示功能实现分析】

有关Eclipse文本编辑器框架、JFace Text Framework和WTP StructuredTextEditor的简要知识,参见:

【Eclipse插件开发】基于WTP开发自定义 的JSP编辑器(二):基于WTP StructuredTextEditor创建自己的JSPEditor

【SourceViewer提示策略 配置】

在章节二中,我们说过如果要对一个ISourceViewer进行自动提示策略的定制,在 ISourceViewer对应的SourceViewerConfiguration中配置就可以了。对于WTP JSP StructuredTextEditor 而言,这里的ISourceViewer就是StructuredTextViewer,这里的SourceViewerConfiguration就是 StructuredTextViewerConfigurationJSP。那我们来看一下WTP StructuredTextViewerConfigurationJSP 中对自动提示策略的配置:

(以下代码摘取子StructuredTextViewerConfigurationJSP类中):

 

protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
IContentAssistProcessor[] processors = null;
//其他代码省略......
else if ((partitionType == IXMLPartitions.XML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_COMMENT) || (partitionType == IJSPPartitions.JSP_DEFAULT) || (partitionType == IJSPPartitions.JSP_DIRECTIVE) || (partitionType == IJSPPartitions.JSP_CONTENT_DELIMITER) || (partitionType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT) || (partitionType == IJSPPartitions.JSP_COMMENT)) {
// jsp
processors = new IContentAssistProcessor[]{new JSPContentAssistProcessor()};
}
else if ((partitionType == IXMLPartitions.XML_CDATA) || (partitionType == IJSPPartitions.JSP_CONTENT_JAVA)) {
// jsp java
processors = new IContentAssistProcessor[]{new JSPJavaContentAssistProcessor()};
}
//其他代码省略......
return processors;
}

以上代码,我们可以看的出来,IContentAssistProcessor是和具体分区类型(partition type)相关 联的。想搞懂这个问题,就需要看一下这个具体分区类型(partition type)是怎么计算出来的。

PS:分区类型是JFace Text Framework中的概念,相关的知识大家有兴趣可以进一步去了解一下JFace Text Framework。

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

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

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

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

使用JSP实现简易的SQL报表