Eclipse插件基础篇一
名词翻译
有一些名词在翻译的过程中可能会出现歧义,在这里统一一下。
アーキテクチャ=architecture=架构
プラットフォーム=platform=平台
コンポーネント=component=组件
其余的随时补充。
1.Eclipse的架构
Eclipse被作为java的IDE(集成开发环境)被广泛的应用,但是从本质上看Eclipse是一个整合了各种开发工具的平台。因此,它采用了可以自由的增加各种功能的插件架构技术。Eclipse平台的基本架构如图1-1所示。
图1-1 Eclipse的架构
在这里,在最底层位置的是作为Eclipse插件架构基干的OSGi运行时。虽然在早期的Eclipse版本中已经开始使用插件架构了,但是在Eclipse3.0的时候才首次引入了OSGi。OSGi是open services gateway initiative的简称、原本是一种为嵌入式硬件开发的,使网络上的服务提供者和使用者交互(結びつける)的注册服务。Eclipse使用OSGi来进行插件的管理。
OSGi运行时之上所有被配置的组件群都是以插件的方式提供的。SWT和JFace提供了用户接口(User Interface)的API。由于SWT和JFace并不依赖于Eclipse,也有可能被作为类库单独使用。Eclipse不仅把基本的用户接口作为工作台API(WorkBench API)提供出来,在后面要讲到的工作区(Workspace)内的资源通过资源API(Resource API)的形式也被作为基本API提供出来了。在这之上构建起了帮助系统以及基于更新管理器的自动更新等功能。
从Eclipse平台的角度看,SWT、JFace、工作台的部分就是EclipseRCP(Rich Client Platform)。EclipseRCP是基于Eclipse的富客户端技术,Eclipse不仅是一个开发工具,也可以作为一个通用的应用程序平台。EclipseRCP是Eclipse平台的子集,同时,Eclipse自身也是一个EclipseRCP的运用实例。
2.扩展点
插件为了自身能够对其他插件进行扩展而提出了扩展点的概念。当要为插件增加功能的时候就可以利用这个扩展点。在扩展点的基础上,插件之间可以互相连接。
图1-2 使用扩展点进行扩展
扩展和扩展点的连接在程序执行时被建立,提供扩展点的插件事先并不知道该扩展点实际被扩展了什么样的行为。使用扩展点的插件需要在清单文件(plugin.xml)中像代码1-1那样,使用extension元素声明扩展。
extension元素中的schema由提供扩展点的插件决定,元素中的内容必须按照schema进行书写。
代码1-1 plugin.xml中声明扩展
像上面这样的扩展点和扩展不断的积累重叠,使得Eclipse平台能够实现各种各样的功能。Eclipse平台提供的扩展点有
增加菜单项
增加视图
增加编辑器
等等,数量非常的多。本文将以使用频率相对较高的扩展点为中心进行介绍,在Eclipse的帮助中有Eclipse提供的所有扩展点的说明,大家在使用时可以参考。
当然,定义一个新的自制插件是绝对可能的。扩展点的定义方法会在[扩展点定义]章节中为大家详细介绍。
3.工作台(Workbench)
在这里认为看到本文的同学们都曾经用Eclipse做过java的开发。Eclipse的各个部分的名称大家也许都已经知道了。为了在以后的文章中统一意识,在这里我们再复习一下。
工作台是Eclipse的整个用户接口的统称。工作台内的结构见图1-3
图1-3 工作台
工作台窗口
Eclipse的窗口。通常一个工作台会打开一个窗口,但是也可能一个工作台对应多个窗口。
工作台页面
在工作台上打开的每个透视图(用于特定用途的视图、编辑器的布局)和一个页面对应。可以包含多个视图和编辑器。
菜单栏
和一般的GUI应用一样的菜单栏区域。
工具栏
和一般的GUI应用一样的工具栏区域。默认情况下工具栏的右边区域用来显示透视图的列表
状态栏
通常在画面的最下面显示的区域。编辑器的光标位置、生成进度状况等根据工作台上的操作内容显示各种信息。
视图
作用是提供开发者想要的信息。可以收到状态栏内,必要时再打开(高速视图)。基本上一个视图在一个工作台内只能打开一个。
编辑器
主要用于文件的编辑。和视图不同编辑器可以同时打开多个。对于同一个文件也可以打开多个编辑器。
从插件的代码中访问工作台使用org.eclipse.ui.PlatformUI类。代码1-2说明了从PlatformUI中取得工作台和工作台窗口的代码示例。
代码1-2 使用PlatformUI访问工作台
//取得工作台
IWorkbench workbench = PlatformUI.getWorkbench();
//取得工作台窗口
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
//取得工作台页面
IWorkbenchPage page = window.getActivePage();
//取得当前处于活动状态的编辑器窗口
IEditorPart part = page.getActiveEditor();
4.工作区和资源API
在Eclipse中使用工作区作为开发人员的作业区域。工作区是在Eclipse启动时指定的一个物理文件夹。开发人员在Eclipse上生成工程、创建文件等操作都会在工作区指定的文件夹内生成实际的文件。
工作区内的资源在Eclipse内部使用org.eclipse.core.resources包中定义的虚拟对象进行操作,例如工程是IProject、文件夹是IFolder、文件时IFile。
图1-4 工作区内的资源
在插件开发的时候很多情况都会使用到工作区内的文件或者文件夹。这时就可以使用这些对象。
对工作区的访问需要使用org.eclipse.core.resources.ResourcesPlugin。代码1-3是利用IWorkspaceRoot,去的工作区内的工程的代码示例
代码1-3 使用ResourcesPlugin访问工作区
//取得工作区的root
IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
//取得项目
IProject[] projects = wsroot.getProjects();
工作台和资源访问的API是Eclipse提供的API中最基本的,在插件开发时使用频率较高的API。在这里不做详细的说明,在以后得例子中会出现一些这样的API。使用PlatformUI作为工作台访问的入口点和使用ResourcesPlugin作为工作区访问的入口点,是无论如何也要记住的。
-Eclipse 插件开发 彻底攻略 基础篇(1) 插件开发的基础知识 完-
转载请注明出处,http://www.cnblogs.com/liuzhuo.
Eclipse插件基础篇一的更多相关文章
- [转]Eclipse插件开发之基础篇(1) 插件开发的基础知识
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/13/eclipse_plugin_1_0_2.html 名词翻译 有一些名词在翻译的过程中可能 ...
- Eclipse插件开发之基础篇(4) OSGi框架
转载出处:http://www.cnblogs.com/liuzhuo. 1. 什么是OSGi框架 OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环 ...
- [转]Eclipse插件开发之基础篇(5) 制作OSGi Bundle
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_2.html 1. 生成OSGi工程 首先打开新工程 ...
- [转]Eclipse插件开发之基础篇(4) OSGi框架
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_1.html 1. 什么是OSGi框架 OSGi(O ...
- Hadoop2 自己动手编译Hadoop的eclipse插件
前言: 毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了.对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环 ...
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- Eclipse插件Target Management (RSE)
陶醉篇--Eclipse插件Target Management (RSE),RSE即Remote System Explorer 2008年11月29日 星期六 下午 10:27 Target Man ...
- Jenkins: 基础篇(环境配置)
自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...
- g4e基础篇#3 Git安装与配置
g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...
随机推荐
- Android 带你从源码的角度解析Scroller的滚动实现原理
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢! 今天给大 ...
- SVM(三)—Kernels(核函数)
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 内容整理中...
- Hbase初体验
搭建local模式搭建, 官网:http://hbase.apache.org API:http://hbase.apache.org/apidocs/index.html download:http ...
- js监听滚动条 回到顶端
效果:当出现滚动条,且滚动条出现移动时,把回到顶端按钮 显示出来:当滚动条回到顶部时,将回到顶端按钮隐藏. <script type="text/javascript"> ...
- hdu3986Harry Potter and the Final Battle
给你一个无向图,然后找出当中的最短路, 除去最短路中的随意一条边,看最糟糕的情况下, 新的图中,第一个点到末点的最短路长度是多少. 我的做法是: 首先找出最短路,然后记录路径, 再一条一条边的删, 删 ...
- 2014Esri全球用户大会——亮点系列之精彩应用案例
在2014 Esri UC上,Esri邀请不少用户到场分享了自己企业的案例,在这里与大家进行分享. 一.City of Mineapolis 1.案例背景 Mineapolis市使用GIS已经数十年, ...
- 通过OpenSSL解码X509证书文件
在Windows平台下.假设要解析一个X509证书文件,最直接的办法是使用微软的CryptoAPI. 可是在非Windows平台下,就仅仅能使用强大的开源跨平台库OpenSSL了.一个X509证书通过 ...
- 谁说程序员都是苦逼的——看看兄弟连上海S2班的点点滴滴
时间过的很快,上海校区第三期马上临近开班,第一期的学员也结束了自己第一个项目. 今天,2013.05.08日,我亲自参加了S01的第一个项目答辩,也为你们记录下了这样那样的一些时刻.其 ...
- JQuery 事件与动画
第一大部分 提纲 事件与动画 一.事件 1.在JavaScript语法中的事件,把onxxxxx中的on去掉,就是JQuery中的事件. onclick - click ondblclick - db ...
- JAVA的extends使用方法
理解继承是理解面向对象程序设计的关键.在Java中,通过keywordextends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类).在Java中不同意多继承. (1)继承 ...