插件的体系结构:
Eclipse平台是IBM向开发源码社区捐赠的开发框架,是一个成熟的、精心设计的以及可扩展的体系结构。其主要价值是它为创建可扩展的集成开发环境提供了一个开放源码平台。这个平台允许任何人构建与环境和其它工具无缝集成的工具。工具与 Eclipse 无缝集成的关键是插件。除了小型的运行时内核之外,Eclipse 中的所有东西都是插件。从这个角度来讲,所有功能部件都是以同等的方式创建的。从这个角度来讲,所有功能部件都是以同等的方式创建的。其中最主要的插件是Workbench和Workspace,二者的作用如下图所示:
文章图片
Workbench 组件包含了一些扩展点,例如,允许您的插件扩展 Eclipse 用户界面,使这些用户界面带有菜单选择和工具栏按钮;请求不同类型事件的通知;以及创建新视图。Workspace 组件包含了可以让您与资源(包括项目和文件)交互的扩展点。
除了Workbench和Workspace外可扩展的组件还有Debug ,该组件可以让您的插件启动程序、与正在运行的程序交互,以及处理错误 ― 这是构建调试器所必需的。虽然 Debug 组件对于某些类型的应用程序是必需的,但大多数应用程序并不需要它。
还有一个 Team 组件允许 Eclipse 资源与版本控制系统(VCS)交互,但除非您正在构建 VCS 的 Eclipse 客户机,否则 Team 组件,就象 Debug 组件一样,不会扩展或增强它的功能。
【Eclipse插件开发——工程创建】最后,还有一个 Help 组件可以让您提供应用程序的联机文档和与上下文敏感的帮助。没有人会否认帮助文档是专业应用程序必备的部分,但它并不是插件功能的必要部分。
上述每个组件提供的扩展点都记录在 Eclipse Platform Help 中,该帮助在 Platform Plug-in Developer 指南的参考部分中。乍一看,尤其是 API 参考大全的 Workbench 部分,一开始会令人望而却步。我们不会深入了解众多可用扩展点的详细信息,而只是粗略地看一个简单插件及其组件。
创建插件开发工程
1、在Eclipse 菜单,选择 File=>New=>Other(或按 Ctrl-N),然后选择 Select 对话框左边的 Plug-in Development 向导。在 Select 对话框的右边,选择 Plug-in Project。
文章图片
2、点击Plug-in Project后就跳转到插件命名对话框,输入插件名称,其余项不改变,点击next
文章图片
3、进入插件的具体详情设计界面,点击next
文章图片
4、使用模板,创建插件工具,采用Hello World代码向导
文章图片
5、按钮信息设置,最后点击finish完成创建
文章图片
向导完成,工作区中出现com.test.helloworld新项目。
项目文件分析
1、生成的文件框架
文章图片
2、打开plugin.xml,编辑区出现overview页面信息
文章图片
MANIFEST.MF 插件的捆绑信息
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name(之前设置的插件名): Helloworld
Bundle-SymbolicName(插件包名): com.test.helloworld;
singleton:=true
Bundle-Version(插件版本): 1.0.0.qualifier
Bundle-Activator(插件激活类): com.test.helloworld.Activator
Bundle-Vendor(插件开发者信息): Yangyan
Require-Bundle(插件依赖的库): org.eclipse.ui,
org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
plugin.xml 插件清单文件
包含了 Eclipse 将插件集成到框架所使用的描述信息
是元素清单的主体,
build.properties 元素列表
包含插件源文件目录,生成文件目录,以及一些配置信息的引入
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
META-INF/,\
.,\
icons/
插件源代码
1、插件类Activator.java
继承了
AbstractUIPlugin
抽象类。负责管理插件的生命周期(start()和stop()分别用于插件开始与停止调用的函数),在更为扩展的应用程序中,它负责维护诸如对话框设置和用户首选项等内容。2、插件类
SampleAction.java
包含的类将执行在清单文件的操作集合中指定的操作。
SampleAction
实现了IWorkbenchWindowActionDelegate
接口,它允许 Eclipse 使用插件的代理,这样不是在万不得已的情况下,Eclipse 就无需装入插件(这项优化工作使在装入插件时发生内存和性能方面的问题降到最低)。IWorkbenchWindowActionDelegate
接口方法使插件可以与代理进行交互。插件的运行
1、采用Run=>Run As=>Eclipse Aplication
2、直接在overview界面点击运行按钮
文章图片
3、点击运行,会重新生成一个Eclipse,这就是我们创建的插件的新Eclipse