Eclipse 插件开发入门<o:p></o:p>
<o:p> </o:p>
第一章 Eclipse简介<o:p></o:p>
欢迎进入Eclipse世界。从现在起,你将进入一个Eclipse 插件开发的世界,在这里,Eclipse不再是一个简单的IDE工具,它是一个平台,一个有一定规律的平台,利用它你会发现你可以做很多很多的事情,很多你从来没想过自己也可以轻松做到的事情。随着学习的深入,你将发现它是如此丰富多彩。<o:p></o:p>
好了,言归正转,我们先来看一张经典图片:<o:p></o:p>
<o:p>图1 </o:p>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
这就是Eclipse,一个小的内核以及一种允许后来者添加扩展的机制,这种机制使得开发者可以轻松的为它添加新的功能,开发新的功能。<o:p></o:p>
下面我们简单说一下Eclipse的结构:<o:p></o:p>
Runtime: 这是Eclipse最低层的部分。OSGi,扩展注册,job,内容类型机制,preference等都是在这里控制的。<o:p></o:p>
Workspace:对于很多使用Eclipse最开发的人来说,workspace 常常被理解为一个文件夹,可这样的理解是不正确的。实际上,workspace是一个资源的容器。一方面在文件系统中,它是以一种文件夹的形式存在的,这是一种物理视图,另一方面,Eclipse将所有受控的项目也会组织成一个逻辑视图,以workspace root为根节点,下面是project,在下面是相应的Folder和File.<o:p></o:p>
SWT:在java的awt,swing被诸多人诟病的情况下,Eclipse开发团队自己开发一套界面组件,后来就成了SWT。<o:p></o:p>
JFace:在SWT之上,为了方便使用而开发的界面组件,它提供了更丰富的功能。除了提供一些新的组件外,对于SWT中一些现有的组件,它也重新开发了一些更好的用的组件。比如Dialog和Table。<o:p></o:p>
Workbench:Workbench是一个可视框架.它可以用view 和editor填满.简单的说,workbench就是打开eclipse 平台后所显示的哪个窗口.一个应用只能由一个workbench。下面来看看workbench的组成:
图2
l workbench window: workbench上最定层的窗口.一个workbench可以有多个workbenchWindow。
l page(IworkbenchPage): 一种组织part(viewpart,editorpart)的机制.一个workbenchwindow可以有多个page
l perspective: 在IworkbenchPage里另一个组织part的层.
l view / editor : 在dispose() 一个view/editor时,你必须自己dispose()所有的图形资源(cursor,icon,font等).所有,如果你用到了这些东西,就需要覆盖workbenchPart中定义的方法:dispose(),来销毁这些对象.
Help:在Eclipse中,帮助系统时一个独立系统。应用程序可以封装和安装它,它是一个非常小的 Eclipse 版本应用程序可从它的“帮助”菜单或用户界面对象进行 API 调用以启动帮助浏览器。帮助独立系统具有集成帮助系统的所有功能部件,但弹出信息和活动帮助除外。<o:p></o:p>
Team:Eclipse支持定义API来使plug-in可以添加到版本管理库中。提供仓库功能直接影响了用户的工作流程,因为要附加一些步骤去处理文件,与本地文件执行比较,记录版本,以及从仓库中获得更新过的文件等。Team 插件是一种被动的方式来处理的,由插件提供者来定义他们自己的工作流,以便他们可以以一种他们熟悉的方式来建造和使用Team插件。<o:p></o:p>
JDT:在Eclipse的发布版中已经包括了Java开发环境(IDE)。Java开发工具(JDT)允许用户使用Java编程语言编写,编译,测试,调试和编辑程序。JDT使用了很多的平台的扩展点,可以把JDT简单的理解为一系列的插件,这些插件对生成的平台资源添加java处理行为,同时开发了java使用的视图,编辑器和操作。<o:p></o:p>
PDE:插件开发环境提供了一系列开发插件项目的工具,如新建项目向导,文件向导,导入导出向导等等。<o:p></o:p>
<o:p> </o:p>