作为一个从学校毕业半年的小菜鸟,从接触java以来所用的开发工具就是eclipse/myEclipse,但到现在对这两个工具还是不熟悉。到公司后公司有自己的IDE,用的是和我们以前接触的完全不同的透视图,当时就在想,要是能做一个这个鬼玩意出来是不是就可以开个公司了,哈哈。最近因为要在IDE里面集成一个小工具,也是被逼无奈终于接触了插件这个离我们这群菜鸟感觉还很遥远的东西,就以这个为我第一篇博文了。因为我也是才接触这个,就以发表的形式慢慢学习了。
下面先上最后的效果图:
生成了一个菜单,两个子菜单。下面就直接讲一下做的过程吧。。。
首先是新建一个插件工程plug-in project,名字就随意了,我就取的test,eclipse的版本要注意以下,要看看最高的支持多少就行了。
之后就一直下一步到这个位置。这里因为我是要开发菜单一类,所以选择的就是popup menu这一个模板。
选择完之后就是一些配置属性了,都可以直接按它默认的来,之后再去改吧改吧就好。
新建结束后会得到这样一个工程。里面暂时要用的就是plugin.xml,还有NewAction.java这两个文件,其他的再慢慢深入研究吧。打开plugin.xml,在下面的视图里面切换到plugin.xml的文本视图。
就可以看到这样一个文件,先介绍一下里面的标签:
extension point 扩展点:org.eclipse.ui.popupMenus 这个就是在菜单上扩展了。
objectContribution:
objectClass:org.eclipse.core.resources.IFile(我们用org.eclipse.jdt.core.IJavaElement,要看这些是啥意思就进这个看看英文详解)
id:test.contribution1(这个也是随便自己取名,反正后面用的一样就行)
menu:
lable:New Submenu(显示的名字)
path:additions(在菜单栏何处放入插入点)
sparator:group1 (添加子菜单属于哪个组,就是会多加个淡淡的横线)
action:
lable:New Action(子操作的名称)
class:test.popup.actions.NewAction(子操作调用的类,我们这里也就一个叫这个名字的类,也是我们要在里面写功能的地方)
menubarPath:test.menu1/group1(这个操作属于哪个菜单,哪个组)
enablesFor:1(这里有一个配置表,可以到网上找一下,从字面上理解一下就是是不是可用的意思)
id:test.newAction(这里面的id也就是给我们取这个action的标识)
介绍完了就可以改吧改吧了,改完之后就成了这个样子:
这里面还有一个比较重要的属性在objectContribution里面,adaptable:true(是否在所有视图中可用)加了这项之后就可以在各种右键菜单中看到我们添加的插件了。
这建完了之后就可以先看看效果了。。。右键Run as Eclipse Application。然后就可以看到最开始看到的画面了。只是里面的功能还没有。
把显示的搞完了就该添加功能了,这就是NewAction.java的事了,实现了IObjectActionDelegate接口
里面有几个方法一个是run(),一个是selectionChanged().
run()很简单,也是我们现在直接用的,就直接把事件加入这个方法就好。
添加了根据所调用action不同来调用不同的方法事件。到这里就差不多结束了,是不是很好玩。。。