对eclipse功能的一些扩展方式

来源:互联网 发布:淘宝店铺logo在线生成 编辑:程序博客网 时间:2024/06/05 19:08

今天看了一点有关于java插件开发方面的东西,写一点点感想吧。

 

 

eclipse体系本身就是一个以一内核为基础,然后再由很多插件组成的一个体系。所以有了eclipse的原有内容,我们就能够在其基础上进行仅我们需要的开发了。比如说一个大纲视图就是一个插件,一个搜索功能也就是一个插件,但是这些功能仅仅是eclipse上的,并不同于我们所需要的应用程序。而eclipse的架构非常好,每一个插件都是一个扩展点,而同时往往也是对其他插件的一个扩展,所以使得无数程序员可以在其上面进行扩展,而扩展成的成品也就是插件。对eclipse体系进行功能扩展的过程其实也就是插件开发。

 

现在讲讲我今天学到的一点点东西。其实也很简单。既然eclipse的每一个功能是一个插件,就意味着每一个功能都可以扩展。比如你要添加一个视图(eclipse现存的视图有控制台视图、大纲视图、错误日志视图等等),那么你就可以扩展org.eclipse.ui.views插件;如果你要在菜单栏上添加一个动作集,那么就可以扩展org.eclipes.ui.actionSets插件;如果要在某个对象或者某个视图右击的菜单上添加某功能,那么就可以扩展org.eclipse.popupMenus插件。后面还有键绑定的操作,我先把这里的扩展讲完。

 

在eclipse中如果要对某一项右键之后的菜单进行添加,那么就需要对org.eclipse.popupMenus进行扩展,这只要在extension里面添加一个这样的插件就可以。然后再对这个插件扩展一个objectContribution.接下去就是一系列设置了。设置完车之后再写一个类来执行所要做得操作就可以。具体的plugin.xml的写法如下:

<extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="false"
            id="com.plugindev.addressbook.example.objectActionTest"
            nameFilter="Three"
            objectClass="java.lang.String">
         <menu
               id="exampleMenu"
               label="示例菜单"
               path="additions">
            <separator
                  name="example">
            </separator>
         </menu>
         <action
               class="com.plugindev.addressbook.example.ObjExampleAction"
               enablesFor="1"
               id="com.plugindev.addressbook.objExampleAction"
               label="对象示例操作"
               menubarPath="exampleMenu/additions"
               tooltip="举例说明如何添加对象操作">
         </action>
      </objectContribution>
    
     
      <viewerContribution
            id="com.plugindev.addressbook.example.viewerActionTest"
            targetID="#TextEditorContext">
         <menu
               id="ViewToolbarMenu"
               label="示例工具栏菜单"
               path="additions">
            <separator
                  name="example">
            </separator>
         </menu>
         <action
               class="com.plugindev.addressbook.example.ViewerExampleAction"
               enablesFor="+"
               id="com.plugindev.addressbook.viewerExampleAction"
               label="查看器示例操作"
               menubarPath="ViewToolbarMenu/addition"
               style="push"
               tooltip="举例说明如何添加查看器操作">
         </action>
        
      </viewerContribution>
   </extension>

上面还有一个viewerContribution,这个也就是对右键某一个视图弹出的菜单的扩展,可以看到,这个也是扩展了org.eclipse.ui.popupMenus这一插件的。

 

之后的根据所需对象的不同可以对xml文件的属性进行配置,结果便可以让eclipse根据xml文件进行对图形界面的生成。