定制Eclipse IDE之功能篇(一)

转载 2016年05月30日 09:58:04
 
这一篇文章将记录一些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

定制Eclipse IDE之插件篇(一)

上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来。 一、汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉...
  • MitKey
  • MitKey
  • 2016年05月30日 10:00
  • 1412

定制Eclipse IDE之功能篇(二)

上文回顾:定制Eclipse IDE之功能篇(一)   这一篇文章将记录一些Eclipse插件小功能,Smart but Useful。   一、设置工作空间 文本文件的编码 ...
  • MitKey
  • MitKey
  • 2016年05月30日 09:58
  • 615

Eclipse - 定制Eclipse IDE之界面篇

为什么要定制IDE? 在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候, 我们可以做成一个产品,而这个产品将包括框架本身、文档、工具、教程等等。工具之中最重要的莫过于开发工具...
  • Anstoner
  • Anstoner
  • 2017年04月24日 06:42
  • 276

定制Eclipse IDE之插件篇(二)

上文回顾:定制Eclipse IDE之插件篇(一) 延续上一篇的插件篇,这一篇将会讲到一个最关键的插件aptana。 一、aptana插件 官方的解释我就不说了,从下面图可以看到插件...
  • MitKey
  • MitKey
  • 2016年05月30日 10:01
  • 1413

定制Eclipse IDE之界面篇

为什么要定制IDE?      在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身、文档、工具、教程等等。工具之中最重要的莫过...
  • MitKey
  • MitKey
  • 2016年05月30日 09:56
  • 1154

定制Eclipse IDE之杂症篇

上文回顾:定制Eclipse IDE之插件篇(二) 该篇将讲述在开发Eclipse 插件过程发生的疑难杂症。不谈功能,只说病症。 前言、拿哪个Eclipse作为定制的基础? 我建议是你用...
  • MitKey
  • MitKey
  • 2016年05月30日 10:02
  • 235

Java 之JNI基础篇(一)

JNI,即Java Native Interface。它其实就是一套java与本地代码交互的接口或者说是一个协议。通俗的比喻,就是中国人讲中国话,日本人讲日本话,于是中国人碰到日本人,各说各话,无法交...
  • yingshukun
  • yingshukun
  • 2018年01月13日 18:51
  • 10029

一步一步学ROP之linux_x86篇

0x00    本文仅解释说明蒸米大神一步一步学ROP之linux_x86篇,读者应先阅读这篇文章,遇到问题再来看我这篇文章。    阅读完这两篇文章后,我们会理解ROP(返回导向编程),DEP(堆栈...
  • jltxgcy
  • jltxgcy
  • 2016年02月19日 11:16
  • 2447

Android硬件操作之低功耗蓝牙(二) 扫描篇

一、综述  关于低功耗蓝牙的扫描,我总结为三步一坑,接下来我会具体讲解哪三个步骤和哪一个坑。我们这个类的目的就是获取到设备名称和 看下图片先 二、第一步:权限配置...
  • qq_27865227
  • qq_27865227
  • 2018年01月20日 00:12
  • 74

(转):内存器件介绍之RAM篇(一)

        提到内存,相信大家都不陌生,几乎所有的计算机系统中都有它的身影,按照内存的工作原理划分,可将内存分为RAM和ROM两大类。    RAM(Random Access Memory)存储...
  • yangcuncunzhang
  • yangcuncunzhang
  • 2011年01月10日 20:44
  • 960
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:定制Eclipse IDE之功能篇(一)
举报原因:
原因补充:

(最多只允许输入30个字)