(转)Eclipse插件开发之基础篇(2)中

2. 插件的动作

  接下来我们看一下插件的动作。manifest编辑器的[概要]页面右侧[启动Eclipse应用(Luanch an Eclipse application)](图2-7)。点击后,会启用一个新的Eclipse实例。这个新的实例被称为[运行时工作台]。运行工作台可以以嵌入当前正在开发的插件的状态启动,以使开发者可以对插件的动作进行确认。

图2-7 启动运行时工作台

  

 

  启动的运行时工作台,会在菜单栏上增加一个新的菜单项。这个菜单项就是插件的代码追加上去的。在工具栏上也增加了一个相应的按钮。

  工具栏上的按钮和菜单项目效果相同,都会出现一个[Hello,Eclipse World]的对话框。

  Eclipse版的Hello World就完成了。确认完这些动作后,就可以关闭当前的运行时工作台了,咱们在下个小节的讲解中还要去参考插件工程的代码呢~

图2-8 示例中新增的菜单项和工具栏按钮以及相应的动作

  

 

  MANIFEST.MF和plugin.xml

  一个插件包含MANIFEST.MF和plugin.xml两个配置文件。MANIFEST.MF是OSGi的handler配置文件,记录了插件ID、名称、作者、和其他插件的依赖关系等。plugin.xml记录了插件的扩展和扩展点的定义等信息。

  Eclipse3.1以前由于还没有采用OSGi技术,插件的所有信息都记录在plugin.xml里。所以应用在Eclipse3.1以前版本的插件如果要应用于Eclipse3.1和以后版本时要注意遵守OSGi的配置文件定义规范。

 

  3. PDE的功能

   PDE(插件开发环境·Plugin Development Enviromment)提供了插件开发的各种功能。因为插件的开发使用java语言,所以也会使用到java编码工具JDT。

 Manifest编辑器

  PDE提供的功能中最重要的就是Manifest编辑器。编辑器可以为插件的两个配置文件提供图形化的编辑功能。(图2-9)

  编辑器的配置项目非常多,可以通过编辑器下面的tab页切换设定画面。

图2-9 Manifest编辑器

  

  表1 Manifest编辑器各tab页  

页面 说明
Overview 可以设定插件的概要信息。生成用于发布的文档以及启动运行时工作台。
Dependencies 设定插件间的依赖关系。
Runtime 可以设置导出包和ClassPath。
Extensions 管理当前插件对扩展点的扩展。
Extension Points 管理当前插件的扩展点。
Build 生成工程时的各种设定。
MANIFEST.MF 显示MANIFEST.MF的源代码
plugin.xml 显示plugin.xml的源代码
build.properties 显示build.properties的源代码

 

 

 

 

 

 

 

 

 

 

 

在Overview以外的tab页上部会显示一些快捷键按钮,使用这些按钮也可以进行启动运行时工作台,导出等操作。

图2-10 编辑器上部

  

 

  下面介绍一下PDE题供的几种视图。在[Window]->[Show View]中可以找到没有被显示的视图。

 

  [插件(Plug-ins)]视图

  所有的插件列表,包含当前工作区内正在开发的插件。打开插件节点可以显示插件下包含的资源,但是以jar包提供出来的插件就显示不出来了。

  在插件节点上点击右键选择[打开依赖关系(Open Dependencies)]可以打开后面要介绍的[依赖关系]视图,表现插件间的依赖关系。右键菜单中也可以把选中的插件作为一个工程引入到当前工作区内。

 

  [依赖关系(Plug-in Dependencies)]视图

   表现了插件间的依赖关系。可以分别表示当前插件依赖的插件和依赖当前插件的插件。

 

  [插件注册(Plug-in Registry)]视图

  当前工作台加载的所有插件列表。打开插件节点,显示插件提供的扩展和扩展点、依赖关系等。

 

  [错误Log(Error Log)]视图

  错误Log视图虽然不是PDE提供的功能,但是在插件开发的时候非常有用。它可以表现当前工作台内发生的错误,并且在错误上双击既可以导向到错误发生的地方。

 

  Plugin-in Selection Spy

  同时按下alt+shift+F1

  Plugin-in Selection Spy是从Eclipse3.4开始加入的新功能,能够显示当前焦点所在的编辑器、视图、向导、对话框等的内部信息。把已有的插件作为参考,进行插件开发,使用这个功能是再合适不过了。