插件开发概述

eclipse启动时,会扫描plugins目录,检查所有插件,读取所有插件的清单文件,并用插件注册表管理着所有插件,维护着所有插件的所用,在插件第一次被使用时,插件才被加载,因而实现lazzy加载。插件加载首先会调用Activator.start()方法,插件生命期结束时会调用Activator.stop()方法。

 

插件可以扩展其它插件,称为Extension,插件也可以被其它插件扩展,必须提供扩展点(Extension Point)。每个扩展点需要提供指定的Schema,在其中指定XML元素及属性。

 

IAction与IActionDelegate:eclipse根据清单文件的描述信息自动创建了一个Action对象(继承了PluginAction),该对象具备操作的所有信息,唯一不能做的是执行实际操作,交给IActionDelegate来做。子类有IEditorActionDelegate,IworkbenchWindowDelegate,IViewActionDelegate,IObjectActionDelegate.

 

操作集:ActionSet,工具栏上的可以拖动的一组工具组成一个操作集。

1定制工作台菜单和工具:扩展actionSet,其中menu用于描述操作插入的位置,action为操作,插入到指定的menu对应的位置。action对应的class要实现IworkbenchWindowDelegate。

 

2view添加工具栏和下拉菜单栏:扩展viewActions的viewContribution元素,设置targetID为视图id,实现IViewActionDelegate

 

3编辑器添加工作台菜单和工具:编辑器的工作台菜单、工具只有在编辑器被打开时才会出现。扩展editorActions的editorContribution,设置targetID为editor的id,实现IEditorActionDelegate。

 

4 添加上下文菜单,扩展popuupMenus的viewerContribution,设置其targetid为需要绑定到的view或editor的id。视图则实现IViewActionDelegate,editor则实现IEditorActionDelegate。

viewerContribution规定是针对视图或editor中的通用操作,若要根据选择内容决定弹出菜单,则扩展objectContribution,其Action需要实现IObjectActionDelegate,且不需要设置targetID。

 

5键的绑定

扩展commands,创建一个command;扩展binding的key元素,在其中指定组合键,设置其commandID,schemaID可以使用默认的defaultAcceleratorConfigure,contextID默认为context.windows;将action与command绑定,只需要指定Action的definitionID为command的id。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值