定制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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
eclipse ide 变得如此热门,以至于出现在许多工作简历中。但是,也正因为它的功能繁多,使得难于入手了。在这文章中,sam brodkin 分享了他最常用的一些eclipse功能。他也提到了那些会让你的手指动的飞快的热键组合。在工作的时候,人们会怀疑你是在打电玩。(1,200字;2005年8月29日)      eclipse最妙的地方是它的功能是如此的丰富。如果你找不到某项功能,要么是你没有好好的去找,要么有一个插件可以实现它。eclipse最糟的地方也是它的功能如此的丰富。拥挤的工具条,臃肿的菜单,以及配置对话框都让我想起了拉比林特斯迷宫(译者注:minotau’s labyrinth,希腊神户中的人身牛头怪,住在labyrinth迷宫中,吃人们供奉的童男童女,最后被theseus杀死)(尽管配置对话框在eclipse3.1中已经好了很多)。甚至是有经验的eclipse程序员也是慢吞吞,笨手笨脚的。我观察过无数的同事,当试图在eclipse的navigation面板里找一个类的时候,不假思索的按下“ctrl + shift + t”(打开型别(open type))。其实,只要有意识的投入一点点时间,你也会不在笨手笨脚的,而成为热键高手。      精通eclipse不单提高了你的效率,(我知道,按小时赚钱的签约人更喜欢文本编辑器),对你的求职简历也有好处。既然eclipse已经越来越多的出现在java工作说明上,那么在你的求职简历上也绝对是个好词。我把它放在我的个人简历上,就在pojo(简单初始java对象)和poji(简单初始java接口)的中间。越来越多的公司转向eclipse,因为它免费,而且为大多数程序员所接受。(除了那些少有的intellij和emacs的崇拜者)      因此,你的简历上并不都是帮助你提高编程效率的大话,在本文中,我将给你几条eclipse高效的建议。注意:如果你是个在寻找初学者教程的新手,那么请参看资源部分。   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值