1. 扩展操作集
Eclipse插件开发操作集有2中方法,一是扩展的方式,二是编程的方式
扩展的方式:
操作集只有menu和action两种类型
每一个menu是一个菜单,菜单项是Action,必须为没一个menu建至少一个action,否则menu不能在应用程序中显示出来.path=”fileMenu”,表示菜单在fileMenu菜单之后,如果没有设,或者设了错的值,则用默认值为aditions,则显示在最左方.
注意:用扩展添加菜单一定要注意各个菜单在菜单栏中的前后顺序,一定要按顺序从前到后,否则程序不能启动.
应该为扩展的action创建Java类
Action实现接口
通过代码创建操作对象
写一个继承Action的类即可,然后覆盖run()方法.
在ApplicationActionBarAdvisor类中实现各个方法,当然,NewAction可以在其他地方创建.
通过编写代码创建Action的步骤:
继承Action类
实现IworkbenchAction接口,实际上该接口也继承自IAction,实现这2个接口中任何一个都可以.
注册操作对象
调用父类的register();方法即可
创建菜单
覆盖父类的fillMenubar()来实现.如上图
如何通过编码方式指定菜单的创建位置
2. 扩展视图
2.1 可以创建视图的分类和视图,还要另外一种视图(category,view,stickyView)
2.1.1 错误信息
如果没有在子类中提供覆盖父类的方法,那就最好不要让这些方法出现,更不要又空实现,如return null这种情况.如果要实现,请调用父类的方法.如上图.
2.1.2
2.2
2.3
3. 扩展编辑器
为编辑器添加Input类
相对View来说,Editor有点麻烦。因为要打开Editor的话必须给Editor内容,因为Editor是个编辑器,你得让它知道要编辑什么东西它才能打开。这里的内容就是Eclipse里面的EditorInput。没有现成合适的EditorInput用(一般情况下可以用FileEditorInput,把某个文件作为Input让Editor打开,在Eclipse里面双击打开某个文件就是这个过程),我这里创建一个HelloEditorInput继承IEditorInput接口
初始化editor类
一定要实现下面的init方法:
否则会有这个错误:
在Action中打开editor
4. 向导页面
为向导页面添加控件时,最好在每个页面上添加一个composite,然后再把其他的控件加到这个composite上,如:
Composite composite = new Composite(parent,SWT.NONE);
setControl(composite);
以上是public void createControl(Composite parent)方法中的第一句和最后一句话