plug.xml文件初步分析

最近重新看了一下插件开发的相关知识,补充一下以备以后需要。主要研究的是《Eclipse插件开发》那本书的第6章和第7章,自己也模仿了写了一个例子,但是不知道那里出了错,Eclipse Application就是打不开,也不报出错信息,很郁闷。趁着自己还有一点激情把一些成果先发出来,免得以后全忘了。

 

第7章例子的plug.xml文件如下:

 

这个插件目的是创建一个收藏夹,可以把感兴趣的文件加进去,显示并修改。也是一个例子而已,实用价值并不是很高。

 

这个插件主要有以下几个扩展点:

org.eclipse.ui.view(line5)

org.eclipse.ui.commands(line20)

org.eclipse.ui.menus(line63)

org.eclipse.ui.handlers(line233)

org.eclipse.actionSets(line334)

org.eclipse.core.expressions.propertyTesters(line342)

org.eclipse.ui.bindings(line352)

 

org.eclipse.ui.view主要定义了一个视图,这个视图就是收藏夹的主要部分,其他的所有标签都是围绕它所展开的。这里有两个子标签,categroy和view。category实际上就是我们打开Open Views后看到的一个个小文件夹,所有的视图都属于一个这种category。category有两个属性:一个是name,就是显示的名称;另外一个是ID,在后面定义的view属性中可以用到。view标签则是描述了一个完整的视图组件,这里有几个重要的属性:name就是实际上显示出来的名称,category就是上述定义的类别;calss这个属性实际上就是构建视图的代码所在位置,我见到的都是从ViewPart派生出来的子类,一般该类含有一个TableViewer类型或TreeViewer类型的成员变量;id属性唯一标明该视图。

 

org.eclipse.ui.commands定义了对这个视图的一系列的操作。可以看出这里面有一个category和六个command。category不在累述,和上面的作用其实是一样的,不过只是换了一个地方而已。六个command可以按照字面的意思来理解,分别是:打开Favorites视图、将选中的条目加入到收藏夹中、复制选中的收藏夹条目、剪切选中的收藏夹条目、粘贴收藏夹条目、重命名选中的条目。这六个command与界面无关,例如打开收藏夹这个command我们既可以在Windows->Open Views中打开收藏夹,也可以自定义一个toolbar按钮,或者自定义一个菜单项,但是它们都可以链接到这个command上。
每个command有如下的几个重要属性:description表示command的描述,具体在界面上怎么体现出来不是很清楚、categoryId就不说了,和上面的一样、id也是、name就是显示出来的样子。

 

org.eclipse.ui.menus这个扩展点主要是描述插件的可视界面。这里总共有9个类型为menuContribution子标签。下面以第一个标签为例,menuContribution中的属性locationURI标明了该项菜单的位置,这里的值为menu:org.eclipse.ui.main.menu?after=addition,这个值可以分为三个部分,第一部分指明了这个菜单的类型,可以是“menu”、“popup”和“toolbar”,其中的含义也可以从字面上理解出来。第二部分是菜单放在哪个插件中,可以是自定义的插件ID,也可以eclipse自带的插件ID,这里是eclipse的主菜单中(可以参见《Eclipse插件开发》6.4.8节,这节中给出了大多数eclipse自带的上下文菜单的ID)。第三部分是菜单的位置,格式为<placement>=<id>,<placement>可以是“after”或者“before”,<id>则是已经定义好的id,这里是after=addition,可以试试把它改成after=window和before=window看看有什么不同;Label标签表示显示出来的内;mnemonic表示快捷键字母。menu子标签则真实的代表了一个菜单了,commandId链接到已经定义好的command中。Menu的子标签是一个表达式,表示满足条件后就显示出来,具体怎么表示还是不太清楚。

 

org.eclipse.ui.handlers作用是链接command和class文件,上面command标签并没有指定动作的具体代码,这里的handlers就是command与代码之间的中间层,所以这里的commandId属性和class属性也就不难理解了。

 

org.eclipse.ui.bindings在这里是绑定加速键的。这里只有一个加速键在key子标签中被绑定了。commandId表示了绑定的command;contextId表示了这个加速键在什么范围内是有效的;schemeId表示了加速键的类型;一般都是org.eclipse.ui.defaultAcceleratorConfiguration;sequence表示了加速键的具体按键。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值