(转)Eclipse平台技术概述
2010-10-19 13:35:00
在OpenExpressApp make business engineers develop applications中说过先考虑使用EMF先实现一个TOGAF9的建模工具来综合的了解建模更方面的知识,然后再做评估是自己开发还是采用开源产品来做OpenExpressApp的建模支持。
MEF是Eclipse的一个开源项目,它是建立在Eclipse平台之上的,而我之前没有真正使用过Eclipse来做开发,也没有在JAVA领域中开发过,所以在学习EMF之前我首先要大概的了解一下Eclipse平台技术,以下是我参考http://www.eclipse.org/whitepapers/eclipse-overview.pdf文档内容学习到对Eclipse平台技术的一个概述了解,如果你是Eclipse新手,也想MEF等建模开源项目的使用,那么就关注我这个系列吧!可能我的理解是错误的,也可能我的学习资料是旧的,如果你已经非常了解又看到这个系列了,希望你能指出我的错误和提供你的帮助:)
Eclipse平台架构
运行时和插件(Platform Runtime and Plug-in Architecture)
- 插件是一个Eclipse平台的小功能,它可以单独开发和发布。
- 通常一个小工具可以是一个插件,但是复杂的工具可能由多个插件组成。除了小的内核Platform Runtime,Eclipse平台的所有功能都是有插件实现的。
- 插件是由Java编写的代码,一个典型的插件包含一个JAR类库代码,一些只读的文件和一些图片、Web模板、消息目录、本机代码库等资源文件,而有些插件甚至都不包含代码。
- 一个简单的插件代码库和只读内容被放在同一个目录下或者服务器的一个基准URL下,还有一种机制允许插件由多个不同分布区域(每个部分由自己的目录或者URL)组合而成,这种机制可以用来分发国际化语言包插件。
- 3.0之前每个插件有一个清单(manifest)文件,这个文件声明了它与其他插件的关系,这个关系比较简单:一个插件定义了一些提供的扩展点(extension points)和一些实现其他插件扩展点的扩展(extensions)。插件的扩展点可以有其他插件扩展功能。现在插件建立在OSGI标准之上,OSGi bundle清单文件为META-INF/MANIFEST.MF。
- 启动时,Platform Runtime发现一些可以使用的插件,读取它们的清单文件,构建一个内存表现的插件注册表。平台通过相应的扩展点声明进行匹配,任何错误都被检查出来并记录日志中。插件在启动后就不允许再动态添加了。
- Eclipse平台的更新管理器下载和安装新功能或者现有功能的更新版本(一个功能是一组一起安装和更新的相关插件)。更新管理器会生成一个可用插件的一个配置文件,以便平台启动时使用。如果更新有不满意时,用户还可以回滚近期的配置。
- 示例:Command扩展
工作区(Workspaces)
工作区用作workspac eclips 用作项目的缺省内容区,还用于保存任何必需的元数据。工作区包括一个或多个顶级项目,不同的项目可以处在不同的系统目录,但是缺省处在同一个目录下。
SWT
由于JAVA可以在不同操作系统上运行,之前的UI控件只有各种操作系统的最小集。JAVA AWT提供一些低级别的控件,例如列表、文本框、按钮,但是
没有高级别控件,例如树、rich text等。JAVA Swing提供了一些树、表等控件解决AWT的问题,但是这些控件仍旧不能满足UI需求。
SWT通过定义一套通用的API来解决这个问题,支持不同的操作系统,它是一个窗口构件集和图形库,它集成于本机操作系统提供的GUI API。
JFace
JFace是建立在SWT之上的UI部件,是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API,其底层实现为SWT。它扩展了 SWT并能与 SWT 交互操作。JFace工具箱提供了一组功能强大的用户界面组件,例如图形、对话框、向导等,开发人员可以轻松地在独立应用程序中利用这些组件,以简化常见的UI编程任务。JFace在其API和实现方面都是独立于窗口系统的,它旨在使用SWT而不隐藏它。
工作台(Workbench)
一个工作台窗口包括一些视图(Views)和编辑器(editors)。编辑器允许用户打开、编辑和保存对象,这些操作与工作台紧密结合。视图可以辅助编辑器,提供信息。
透视图(Perspectives)组合它们并布局在屏幕上,每个透视图有自己的视图和编辑器。工作台可以有多个独立的透视图,但只能有一个是激活的,可以通过切换查看不同透视图。
工作台提供了一些主要的扩展点:
- 添加新的编辑器
- 添加新的视图
- 添加新的透视图
我们还可以增强现有编辑器、视图和透视图的功能:
- 在现有的视图菜单和工具条中增加动作
- 当编辑器激活时再工作台目录和工具中增加动作
- 在现有视图和编辑器的弹出菜单增加动作
- 在现有透视图中增加视图、动作集和快捷方式
UI集成(New Tool)
使用平台API写的代码可以与平台获得高级别的集成,Eclipse支持以下几种UI集成:
- 工作台内建支持OLE文档作为编辑器(只限Window操作系统),这可以提供更紧密的UI集成
- 插件工具可以在编辑器、视图、窗口或向导中使用ActiveX控件(只限Window操作系统)
- 插件可以使用AWT或Swing
团队支持(Team)
对工作区的项目进行配置管理,可以添加从库获取文件、更新文件或者比较不同版本文件等功能。平台提供扩展点,允许使用新的团队资源库。
帮助(Help)
Eclipse帮助机制允许同居定义和发布一个或多个在线文档,是一个可扩展的文档系统。
JDT(Java Development Tooling):增加JAVA开发能力
- Workbench showing Java perspective
- JDT Implementation
转载于:https://www.cnblogs.com/panweishadow/p/3545578.html
(转)Eclipse平台技术概述相关推荐
- Eclipse平台技术概述
版权所有,2006年,国际商业机器公司. Eclipse平台技术概述 此文档在EclipsePublicLicense 1.0下提供(EPL). 摘要 Eclipse平台是为构建集成开发环境(IDE) ...
- Eclipse 平台入门
IBM的Eclipse平台入门. 使用 Eclipse 插件来编辑.编译和调试应用程序 级别: 初级 David Gallardo (mailto:david@gallardo.org?subject ...
- 基于 Eclipse 平台的代码生成技术
Eclipse 的 Java Emitter Templates(JET)一个开源的模板引擎,其功能是在 Eclipse Modeling Framework(EMF)中生成代码. JET 技术介绍 ...
- 问题合集 ------- 用 Eclipse 平台进行 C/C++ 开发
简介: 我们将概述如何在 C/C++ 开发项目中使用 Eclipse 平台.尽管 Eclipse 主要是一个 Java 开发环境,但其体系结构确保了对其它编程语言的支持.在本文中,您将学习如何使用 C ...
- 图解YARN--大数据平台技术栈17
回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的YARN! 为什么会产生YRAN?这个与MapReduce1.x的架构有关,正是因为MapReduce1.x存在许多的问题,才会产生 Y ...
- 企业级自动化运维方案设计及Saltstack、Ansible等5种工具比较分析--云平台技术栈08...
导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的服务器自动化配置! 来自:公众号talkwithtrend 1.企业运维现状与发展趋势 随着企业信息化的不断发展,运维人员需要面对 ...
- TCP/IP 协议栈及 OSI 参考模型详解--云平台技术栈04
导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的tcp/ip和网络! 来源:王东裕 http://wangdy.blog.51cto.com/3845563/1588379 OS ...
- 谈谈对 Canal( 增量数据订阅与消费 )的理解--大数据平台技术栈系列(3)
之前说了,大数据平台技术栈 (可点击查看),今天就来说说其中的Cannal 来源:朱小厮, blog.csdn.net/u013256816/article/details/52475190 概述 c ...
- Windows Server 2008技术概述(自CSDN)
简介 概述 Microsoft Windows Server 2008 用于在虚拟化工作负载.支持应用程序和保护网络方面向组织提供最高效的平台.它为开发和可靠地承载 Web 应用程序和服务提供了一个安 ...
最新文章
- 【数据结构第一周】最大子列和问题整理
- Android之GridLayoutManager.setSpanSizeLookup问题
- AHK-UMSS框架 (AHK通用修饰键解决方案,任何键都是修饰键)
- 自研云原生数据仓库AnalyticDB再破权威评测TPC-DS世界纪录
- wordpress仿uehtml设计作品分享主题模板
- 50个常用的笔试、面试sql语句
- 《精通javascript》几个简单的函数(二)
- 转载:c#的逆向工程-IL指令集
- 杰控连接mysql_杰控FameView软件首秦ERP系统L2级中的应用
- 谷歌金山词霸合作版在PDF中不能取词
- 第一天 渗透的基本概念
- maxima matlab,为什么大家不用Octave等代替Matlab,Maxima代替Maple?
- 荣耀4a鸿蒙,华为荣耀4A上手评测:599元也可以很拉轰
- VideoView播放视频的时候尺寸异常
- dedecms织梦后台模板layui框架-20171126更新
- JAVA-企业微信报警工具类
- angular仿微信图片放大功能
- 使用pcb-tools解码Gerber文件报错IndexError: list index out of range
- Oracle 中add_months和trunc的用法,数据类型
- 干货分享!杭州知名SEO公司清法网络告诉你如何玩转小红书
热门文章
- tampermonkey怎么不能用了_普洱茶发霉了怎么办?能不能用太阳晒
- C语言520心形表白,初学者福利!!
- nginx tcp转发_Nginx学习(九):负载均衡服务
- 判断unsigned long long乘法溢出_信息安全课程17:缓冲区溢出2
- 数字非压缩光端机的选购原则
- 【渝粤教育】国家开放大学2018年春季 7140-22T危急重症护理学(本) 参考试题
- 【渝粤教育】国家开放大学2018年春季 0014-22T秘书学(一) 参考试题
- 【渝粤教育】电大中专新媒体营销实务 (16)作业 题库
- java 所有子类_java 查找类的所有子类
- 全局变量求平均分最高分最低分_想去江苏读大学,2021届山东考生需要多少分?...