在第19章对plugin.xml作了少量介绍,plugin.xml是插件和Eclipse内核的接口,Eclipse就像一所大宅子,它的外墙(plugin.xml)有很多的门(扩展点),要熟练进出这座大宅子,先得搞清楚它有哪些门(扩展点)。插件扩展点非常之多,但大部分扩展点很少使用。本章主要介绍一些常用扩展点,并以步步深入的方式来丰富第19章的myplugin插件。
20.1 加入透视图(perspectives)
开发一个插件,最常用的方式就是先创建一个属于本插件专有的透视图,然后在此透视图基础上来展开其他功能。本书也采用这种方式。
20.1.1 修改plugin.xml文件,设置透视图的扩展点
先将第2篇myswt项用到的图标复制到myplugin项目的icons目录中。再打开plugin.xml文件的编辑框,将如下代码块插入到最后一行的</plugin>项之前:
<extension point="org.eclipse.ui.perspectives">
<perspective
name="myplugin透视图"
icon="icons/selectall.gif"
class="cn.com.chengang.myplugin.SamplePerspective"
id="cn.com.chengang.myplugin.SamplePerspective">
</perspective>
</extension>
代码说明:
● org.eclipse.ui.perspectives:透视图的扩展点。
● name:透视图的名称。
● icon:透视图的图标。
● class:透视图所对应的类(还没编写,下一步将完成此类)。
● id:透视图的唯一标识符,取和class相同的名称,免得以后扩展点太多记不住。
也可以用GUI界面来创建扩展点,如图20.1所示。

图20.1 “扩展”选项卡
20.1.2 建立透视图类
在20.1.1小节的plugin.xml中提前设置了透视图对应的SamplePerspective类,这里就在包cn.com.chengang.myplugin下创建此类。透视图类必须实现IPerspectiveFactory接口,此接口只有一个需要实现的方法createInitialLayout,先让它空实现,如下所示:
public class SamplePerspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {}
}
20.1.3 运行插件
运行插件,然后在新Eclipse环境中选择主菜单“窗口→打开透视图→其他”命令。在弹出窗口列表中,可以看到一个名为“myplugin透视图”的项,双击打开它,显示出一个空白的透视图。20.2节就会给这个光秃秃的透视图加上两个视图。
20.1.4 总结
由本节可以看到,在Eclipse插件环境中,创建一个菜单、工具栏按钮、透视图非常简单,都不用编写什么实际界面的创建代码,只要设置一些扩展点即可。这就是基于平台开发的优点。






