定制Eclipse IDE之功能篇(一)

上文回顾:定制Eclipse IDE之界面篇

这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细。

我的主要插件的拓展如下:

一、org.eclipse.ui.startup

这一个拓展可以说很关键,他可以让我们在eclipse启动时候做一些事件(之后很多小功能东西依靠它做的)。

XML配置:

<extension
     point="org.eclipse.ui.startup">
  <startup
          class="com.bingo.start.BTStart">
  </startup>
</extension> 

对应实现类:

public class BTStart implements IStartup
{
     public BTStart()   {  }

     public void earlyStartup() {

          //无关UI的代码可写这里

          Job job = new UIJob("") {

               public IStatus runInUIThread(IProgressMonitor monitor) {
                    try {

                         //涉及到UI的代码写这里,不然将操作不了
                    } catch (ExecutionException e) {
                         e.printStackTrace();
                         return Status.CANCEL_STATUS;
                    }
                    return Status.OK_STATUS;
               }

          };
          job.schedule(300L); //300ms后执行

     }
}

二、org.eclipse.ui.newWizards

这个是向导拓展。就类似新建项目,然后下一步下一步的操作。

在这里我用来做新建应用模板的工程,在向导拓展里面实现应用模板生成。

XML配置:

<extension
     point="org.eclipse.ui.newWizards">
     <category
        id="bt_project"
        name="%category.name">
     </category>
     <wizard
          category="bt_project"
          class="com.bingo.perspective.ui.wizards.BTProjectWizard"
          finalPerspective="com.bingo.ide.perspective"
          icon="icons/eclipse16.png"
          id="com.bingo.perspective.wizards.BTProjectWizard"
          name="%projcet.name"
          project="true">
     </wizard>
</extension>

对应实现类:

public class BTProjectWizard extends Wizard implements INewWizard{
} 

具体代码就不显示,BTProjectWizard 只是一个容器,他还需要添加WizardPage进去。

另外可以将向导拓展添加到右键菜单上。

XML配置如下:

<extension
     point="org.eclipse.ui.navigator.navigatorContent">
  <commonWizard
          associatedExtensionId="org.eclipse.ui.navigator.resourceContent"
          type="new"
          wizardId="com.bingo.perspective.wizards.BTProjectWizard">
     <enablement>
     </enablement>
  </commonWizard>
</extension>

三、org.eclipse.ui.menus

单独在菜单栏添加项。

例如:我添加一个同步菜单

XML配置:

<extension
     point="org.eclipse.ui.menus">
  <menuContribution
          allPopups="false"
          locationURI="menu:help?before=org.eclipse.equinox.p2.ui.sdk.install">
       <command
             commandId="com.bingo.perspective.ui.SyncHandler"
             label="同步BingoTouch模板"
             style="push">
     </command>
  </menuContribution>
</extension>
<extension
     point="org.eclipse.ui.commands">
   <command
          defaultHandler="com.bingo.perspective.ui.handler.SyncHandler"
          id="com.bingo.perspective.ui.SyncHandler"
          name="同步BingoTouch模板">
  </command>
</extension> 

实现类:

public class SyncHandler extends AbstractHandler
{

     public SyncHandler()
     {
     }

     public Object execute(ExecutionEvent event)
          throws ExecutionException
     {
          //检查模板版本
          SyncResource.start();
          return null;
     }
}

四、org.eclipse.ui.perspectives

定义透视图

XML配置:

<extension
     point="org.eclipse.ui.perspectives">
  <perspective
          class="com.bingo.perspective.BingoTouchPerspective"
          fixed="true"
          icon="icons/eclipse16.png"
          id="com.bingo.ide.perspective"
          name="%perspective.name">
  </perspective>
</extension>

实现类:实现类内容就是对视图的布局,在第一篇文章里面有写。

五、org.eclipse.ui.actionSets

定义操作动作,可以放置到菜单栏或工具栏上。


XML配置:

<extension
     point="org.eclipse.ui.actionSets">
    <actionSet
          label="BingoTouch Action Set"
          visible="true"
          id="com.bingo.functions.actionSet">
          <menu
             label="%document.name"
             id="btDoc">
          <separator
                 name="btDocGroup">
          </separator>
          </menu>
          <action
               class="com.bingo.perspective.ui.actions.OnlineDocumentAction"
               icon="icons/icon/faq.png"
               id="btFAQ"
               label="%faqdoc.name"
               menubarPath="btDoc/btDocGroup"
               toolbarPath="btDocGroup"
               tooltip="%faqdoc.name">
          </action>
          <action
               class="com.bingo.perspective.ui.actions.OnlineDocumentAction"
               icon="icons/icon/uidoc.png"
               id="btUIDoc"
               label="%uidoc.name"
               menubarPath="btDoc/btDocGroup"
               toolbarPath="btDocGroup"
               tooltip="%uidoc.name">
          </action>
          <action
               class="com.bingo.perspective.ui.actions.OnlineDocumentAction"
               icon="icons/icon/apidoc.png"
               id="btApiDoc"
               label="%apidoc.name"
               menubarPath="btDoc/btDocGroup"
               toolbarPath="btDocGroup"
               tooltip="%apidoc.name">
          </action>
    </actionSet>
</extension>

里面menubarPath、toolbarPath操作按钮放或不放,放哪。

常用的拓展就先介绍到这里,目的是希望大家知道有这东西,而不是具体怎么实现。

本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。
本文地址 :http://www.cnblogs.com/lovesong/p/4693666.html

时间: 2024-10-19 18:08:57

定制Eclipse IDE之功能篇(一)的相关文章

定制Eclipse IDE之功能篇(二)

上文回顾:定制Eclipse IDE之功能篇(一) 这一篇文章将记录一些Eclipse插件小功能,Smart but Useful. 一.设置工作空间 文本文件的编码 解决办法: 在org.eclipse.ui.startup拓展里执行这一句(只需执行一次): ResourcesPlugin.getPlugin().getPluginPreferences().setValue("encoding", "UTF-8"); 二.默认显示行号 解决办法: 在org.ec

定制Eclipse IDE之插件篇(一)

上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来. 一.汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉化. 1. 选择对应的Eclipse版本. 下载地址:http://www.eclipse.org/babel/downloads.php 2. 选择需要下载的语言 3.解压后直接拷贝到Eclipse的dropins目录即可. 二.打开文件夹位置插件 点击工程或工程文件时候,可以直接打开目录位置. 下载地址:http

定制Eclipse IDE之插件篇(二)

上文回顾:定制Eclipse IDE之插件篇(一) 延续上一篇的插件篇,这一篇将会讲到一个最关键的插件aptana. 一.aptana插件 官方的解释我就不说了,从下面图可以看到插件提供了什么功能,列举一些我觉得重要的. 1. Contnet Assist : 代码提示 2. Editors:5种文件编辑器 3. Themes : 主题 4. Validation : 代码校验 提供这几点能力直击我eclipse前端开发的要害,就决定使用,下面是我对aptana做的一些调整. 1. 下载apta

定制Eclipse IDE之杂症篇

上文回顾:定制Eclipse IDE之插件篇(二) 该篇将讲述在开发Eclipse 插件过程发生的疑难杂症.不谈功能,只说病症. 前言.拿哪个Eclipse作为定制的基础? 我建议是你用哪个Eclipse做开发,就使用那个Eclipse作为定制的基础,因为你的插件是在这上面开发的,决对不会出现缺少必要的依赖插件.如果觉得有些插件没必要的话,也自行删除. 一.插件存在缓存的现象 在开发插件的时候,有时会存在缓存了上一次运行插件结果的现象. 解决办法: 1.在run configurations的E

定制Eclipse IDE之界面篇

为什么要定制IDE? 在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发工具(IDE).调试工具. 我在公司里面做的是一个hybrid框架,而一个配套的IDE是比不可少的,主要用来开发HTML5.这个IDE可以算是框架东西的聚合,可以将在线文档.工程模板.打包调试等功能都揉合在IDE.当我们提供给开发者东西时,我们只需要提供一个IDE,里面已经包含所有框架的东西. 我花费了一个月

Eclipse - 定制Eclipse IDE之界面篇

为什么要定制IDE? 在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候, 我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发工具(IDE).调试工具. 目前apicloud或dcloud这些hybrid框架都是基于Eclipse做定制的,只不过dcloud做得比较彻底. 怎么定制IDE? 我们之所以能够定制Eclipse IDE,并不是我们写的东西有多厉害, 而是Eclipse的本身,它是一个平台,能够让我们编写插件拓展功能,达

Maven、gradle、Ant、Eclipse IDE

Maven.gradle.Ant.Eclipse IDE之间的关系 http://wenku.baidu.com/view/d33208810912a21615792910.html?from=search 觉得应该很多同学有和我一样的疑惑,所以分享下. 1.使用github上的开源项目时是不是经常发现有个叫maven的东西? 2.第一次使用Android studio时是不是要下载一个gradle的玩意? 折腾了一天,想导入下github的客户端源码.当然现在还没成功...各种看不懂的错误.郁

Ubuntu下在Eclipse IDE for C/C++ Developes中如何运行C语言的GTK程序?

<p style="color: rgb(51, 51, 51); font-family: Arial; line-height: 25.99184799194336px; margin: 0.11cm 0.13cm; border: none; padding: 0cm;"><span style="line-height: 25.99184799194336px; background-color: rgb(240, 240, 240); font-f

eclipse ide for java ee developers 开发环境搭建详解图文(j2ee)

使用eclipse真的有年头了,相信java程序员没有不知道它的,最近在给团队中新来的应届生做指导,专门讲解了一下Eclipse开发环境的搭建过程,一是帮助他们尽快的熟悉IDE的使用,二也是保证团队开发环境的一致性(顺便说一下,这点在敏捷开发团队中尤为重要,方便知识传播,提升团队快速响应能力). 培训的过程中想起了自己当年初涉java时的情景,不免感慨万千啊.正所谓"工欲善其事必先利其器",话不多说,赶紧搭吧. 一.jdk安装与配置 jdk7于3月份刚刚发布,目前eclipse的最新版