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

【角色之间的关系】

1、org.eclipse.ui.editors扩展和IEditorPart之间的关系

一个org.eclipse.ui.editors扩展会指定一个对应的IEditorPart实现,一个IEditorPart实现可以被用在多个org.eclipse.ui.editors扩展中,也就是说IEditorPart相对于org.eclipse.ui.editors扩展是1:N的关系。

例如WTP提供的StructuredTextEditor是一个文本类型editor part实现,其在org.eclipse.jst.jsp.ui、org.eclipse.wst.html.ui等多个插件中被注册,它被WTP用来编辑jsp、html等多种资源。例如:

2、IEditorPart和IEditorActionBarContributor之间的关系

上面已经说过,多个IEditorPart实例共享同一个IEditorActionBarContributor实例。结合具体场景讲,例如用同一种类型的JSP编辑器打开了10个JSP文件,每次都会产生一个新的该类型IEditorPart实例,但是对应的是同一个IEditorActionBarContributor实例。

一个IEditorPart实现可以被注册多次(上面第一个点说过),每次可以配置不同类型的IEditorActionBarContributor实现。

上面可以看出来,当StructuredTextEditor被配置用来绑定jsp文件类型的时候,给它配置的是ActionContributorJSP,当StructuredTextEditor被配置用来绑定html文件类型的时候,给它配置的是ActionContributorHTML。那就是说,当我们用StructuredTextEditor分别开发jsp和html的时候,工作台工具栏和菜单栏可能会有所不同^_^              3、SourceViewer和SourceViewerConfiguration 之间的关系                    SourceViewer的很多行为是由SourceViewerConfiguration制定的,前者承担的可以认为是source viewer的核心行为,例如绑定document、annotation model等等,后者可以认为是前者对应的服务接口,提供额外服务。对于同一个SourceViewer实例,可以用不同类型SourceViewerConfiguration进行配置,以达到定制的效果,外在行为则看起来就会有所不同。

上面说过,WTP在编辑jsp、html等页面资源类型的时候其实对应都是StructuredTextEditor,但是使用过的就会知道,自动提示等等行为还是有所不同的。StructuredTextEditor持有的是同种类型的SourceViewer实现:org.eclipse.wst.sse.ui.internal.StructuredTextViewer,但是,如果给StructuredTextViewer配置不同的SourceViewerConfiguration,则就可以定制其行为了^_^。    当用StructuredTextEditor打开jsp文件时,在StructuredTextEditor.createPartControl过程中给其配置StructuredTextViewerConfigurationJSP,当用StructuredTextEditor打开html文件时,在StructuredTextEditor.createPartControl过程中给其配置StructuredTextViewerConfigurationHTML...

【WTP StructuredTextEditor分析】      其实上面已经分析了建立一个编辑器扩展所依赖的关键角色,那么我们看一下WTP提供的用来编辑jsp、html等多种页面资源的StructuredTextEditor是如何配置起来的。       IEditorPart:StructuredTextEditor

IEditorActionBarContributor:提供了ActionContributorJSP等多种实现,通过org.eclipse.ui.editors扩展来和StructuredTextEditor集成

IDocumentProvider:提供了StructuredModelDocumentProvider和StorageModelModelProvider两种实现,通过StructuredTextEditor.setDocumentProvider(IEditorInput)完成

ISourceViewer:StructuredTextViewer

SourceViewerConfiguration:提供StructuredTextViewerConfigurationJSP、StructuredTextViewerConfigurationHTML等多种实现,在StructuredTextEditor.createPartControl过程中对StructuredTextViewer进行配置。

【基于WTP创建自定义的JSP编辑器扩展】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值