定制EclipseIDE之功能篇一

上文回顾:定制Eclipse IDE之界面篇
这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细。
我的主要插件的拓展如下:
定制EclipseIDE之功能篇一
一、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
这个是向导拓展。就类似新建项目,然后下一步下一步的操作。
在这里我用来做新建应用模板的工程,在向导拓展里面实现应用模板生成。
定制EclipseIDE之功能篇一
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
单独在菜单栏添加项。
例如:我添加一个同步菜单
定制EclipseIDE之功能篇一
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
定义透视图
定制EclipseIDE之功能篇一
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
定义操作动作,可以放置到菜单栏或工具栏上。
定制EclipseIDE之功能篇一

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
更多相关文章
  • 定制EclipseIDE之功能篇二
    上文回顾:定制Eclipse IDE之功能篇(一) 这一篇文章将记录一些Eclipse插件小功能,Smart but Useful. 一.设置工作空间 文本文件的编码 解决办法: 在org.eclipse.ui.startup拓展里执行这一句(只需执行一次): ResourcesPlugin.get ...
  • 定制EclipseIDE之插件篇一
    上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来. 一.汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉化.  1. 选择对应的Eclipse版本. 下载地址:http://www.eclipse.org/babel/do ...
  • 定制EclipseIDE之杂症篇
    上文回顾:定制Eclipse IDE之插件篇(二) 该篇将讲述在开发Eclipse 插件过程发生的疑难杂症.不谈功能,只说病症. 前言.拿哪个Eclipse作为定制的基础? 我建议是你用哪个Eclipse做开发,就使用那个Eclipse作为定制的基础,因为你的插件是在这上面开发的,决对不会出现缺少必 ...
  • 定制EclipseIDE之界面篇
    为什么要定制IDE?      在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发工具(IDE).调试工具.      我在公司里面做的是一个hybrid框架,而一个配套的IDE是比 ...
  • 目录: PowerDNS简单教程(1):安装篇 http://www.cnblogs.com/anpengapple/p/5205130.html PowerDNS简单教程(2):功能篇(本篇) PowerDNS简单教程(3):管理篇 http://www.cnblogs.com/anpengapp ...
  • 论坛管理之功能篇
    (一)功能篇论坛已经发布了很多操作手册和技巧,希望大家都已经阅读并且理解.出于温故而知新的目的,将这些内容再次重复,并着重指出.希望大家按照这些管理方式来处理日常问题,使用好论坛的各类功能.本文也是<技术成就梦想,新版主请进> 这篇文章的延续.非常欢迎各位能够及时与我沟通,将遇到的问题反 ...
  • Nginx实战系列之功能篇----后端节点健康检查
           公司前一段对业务线上的nginx做了整理,重点就是对nginx上负载均衡器的后端节点做健康检查.目前,nginx对后端节点健康检查的方式主要有3种,这里列出:1.ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带)     官网 ...
  • Chrome开发者工具不完全指南一、基础功能篇
    就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生.根据最新的一份(2015/06)的浏览器市场占有率报告,Chrome近乎占有浏览器天下的半壁江山.简单.快捷使它成为了新时代人们的新宠.如果你是一名web开发人员,我推荐你使用Chrome.作为前端开发的"IDE&qu ...
一周排行
  •      项目成本管理主要与完成活动所需资源成本有关,是在整个项目的实施过程中,为确保项目在以批准的成本预算内尽可能好的完成而对所需的各个过程进行的管理.项目成本管理是信息系统项目管理师考试的考点,下面希赛软考学院小 ...
  • 在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况.一.安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具) 1.下 ...
  • //判断附件     var  value=document.all.picfile2.value;     if (value!=”"){   if(!CheckExt(value.substr(valu ...
  • su 切换用户 不加参数切换到root用户who 确定系统中当前用户信息ps 列出当前用户有关的进程ps -aux列出所有用户的进程whoami 显示当前用户帐号ls 获得目录中文件列表pwd 查看当前目录cat 显 ...
  • ==系统架构==OS:Linux2.6.94.el5PAEi386GNU/LinuxDisk:20GBMemory:4GSwap:5G==用户/组规划==mkdir/appgroupaddappuseradd ...
  • 今天上江苏建设人才网查些信息,网址:http://www.jschr.gov.cn/jschr/Default.aspx?不经意间在其首页底部"相关链接"栏目有个名为"dnf外挂&quo ...
  • Android应用开发系列课程------获取中国传统节日
    今天咱们一起来学习一下如何获取中国传统节日,还是直接上干货吧,如果有对此有兴趣,不明白的地 ...
  • 备注:如果截图不清晰,请查看另一个网页链接http://www.178linux.com/archives/7049一.前言    虽然现在QQ.微信等即时聊天工具原来越盛行,但是在企业与企业之间大部分还是会使用邮件 ...
  • 枚举左端点$i$,那么可行的右端点$j$的最小值单调不下降,可以通过双指针求出,检验可以通过在后缀数组里检查相邻height值做到$O(1)$. 那么左端点为$i$,右端点在$[j,n]$,它对前面一段的贡献为定值, ...
  • 前言:今天接集团办公室报告,某台客户端IE首页被篡改为123wa.com流氓网站.按照通常解决思路:先使用"黄山IE修复"在安全模式下修复,无效:使用Ewido在安全模式下查杀,无效:使用Mcaf ...