开发自己的eclipse扩展点

eclipse作为正走向大众化,多语言化的跨平台开发工具,正被越来越多的开发者所青睐。同时通过其pde,开发者完全可以在不用担心工具性能前提下实现工具的自我衍生,使自身足够强大。而这都得益于其核心机制扩展点机制。现在我们就来简单的实践一下,自己动手开发一个扩展点。
当然,我们的eclipse工具已经足够智能,我们需要做的只是学会多个图形编辑器的使用和对插件扩展点机制的理解。
扩展点开发过程大致如下:
1.设计扩展点的功能,并设计在何时调用扩展并收集扩展的信息
2.实现功能插件,并定义扩展点用于功能扩展
3.通过平台注册表收集扩展信息,并加入功能调用点
4.编写实现扩展点扩展插件

一.软件的开发一般是按图索骥,设计必不可少,我们先简单的设计一个插件,它显示一个Tableview,里面有几个固定节点。而我们需要定义一个扩展点,这个扩展点用来定义Tableview的节点,如果有插件实现了这个扩展点,那我们的tableview就会增加一个新的节点。我们需要做的首先是创建一个view插件,它显示几个固定的节点。

二.扩展点的思路已经有了,现在开始编码,首先我们要定义一个tableview插件,并定义它的扩展点。
过程如:
     file-->new-->other-->plug-in project
    输入插件名称com.random.one点击-->next-->next-->选择一个plug-in     with a view模板,点击next-->finish。
现在我们的tableview视图插件已经生成了,我们可以通过run as -->eclipse application运行另一个eclipse工作台查看插件效果,在views里面我们将看到我们创建的Sample view视图。
    在插件编辑器的extension points标签页,添加扩展点,设置扩展点的id,name,schema等属性,注意调用的扩展点=插件名.id,schema为扩展点的xml schema描述文件。我们定义一个newNode扩展点,定义如下:
<extension-point id="newNode" name="new node" schema="schema/newNode.exsd"/>,其外部调用的扩展点id应该为com.random.one.newNode,同时我们需要在newNode.exsd文件中进行扩展点的描述,我们可以定义一个node元素,让它具有两个attibute,分别是name和class,name用来定义定点名,class也用于收集节点名,类型为java,并将它定义为一个接口类。

三.在定义完扩展点插件后,我们收集扩展信息,并把扩展信息加入到程序的功能点中。在这个例子中我们只需要收集节点名称,我们定义它在通过扩展的plugin定义获得时,将通过扩展的接口实现类获得。然后我们将收集到得扩展信息,节点信息加入到tableview的内容管理器,这样在调用内容管理器时就去收集扩展信息,并将所有的信息显示在视图上。

四.我们要实现扩展点,只需要定义一个空的插件,让其通过扩展插件清单文件增加扩展,并定义一个或多个节点元素的name,也可以通过实现扩展点的接口类的固定方法来获得节点名字。

这样一个自定义插件就实现完成了,大部分代码都由pde自动生成,小小的难点就是从注册表读取扩展信息,同时要注意扩展点的接口类要在扩展点的exsd文件中声明,不然在查找其实现类时将异常,代码附在后面。有兴趣的朋友可以试试treeview,在节点上定义扩展点,实现节点的增删改拖功能。

你可能感兴趣的:(eclipse,xml,工作,大众软件)