以前主要在JAVAWEB方向下功夫,很少去关注JAVA的桌面应用程序的知识,对桌面应用程序的认识仅仅停留在当初接触.NET的时候使用其并做了几个工具和MIS。一直感觉桌面应用程序会慢慢的消失被WEB取代,随着最近接触BIRT源代码发现,java的桌面应用程序也有很多值得吸收的知识,而且基于Eclipse RCP技术也相当具有吸引力和感染力。
这篇博客说一说Eclipse RCP,在说这个技术之前,需要相对Eclipse重新认识一下。
开始知道Eclipse的时候,是在学习java刚开始,那时候理解Eclipse是一个开发平台,是一个优秀的JAVA的IDE,如果有相应的插件,就能让Eclipse变成任何语言的IDE。随着我的眼界的开阔、接触的知识越来越多,才发现真的的Eclipse是一个提供完善插件机制RCP平台,它用SWT/JFace作为界面元素组件,提供给用户一个Workbench的UI平台,在加上Eclipse实现的OSGI规范,我们能够通过它来构造出扩展能力强、给用户提供良好UI体验的RCP平台。
在理解Eclipse之后在开来Eclipse RCP,它是Eclipse平台核心功能,这个核心包括对可移动的、可叠加的窗口组件、菜单、工具栏、按钮、表格等等结构的支持,而且有了Eclipse RCP,在加上OSGI规范,就能很轻松的从插件开发转向桌面应用程序开发,构建最小化的Eclipse平台来运行桌面应用。
大致了解Eclipse RCP之后,来看一下它的体系结构:
1. Wrokbench工作台
为Eclipse提供用户界面。它是使用SWT(Standard Widget Toolkit)和一个更高级的API(JFace)来构建的;SWT是Java的Swing/AWT GUI API的非标准替代者,JFace则建立在SWT基础上,提供用户界面组件。
2. Workspace工作区
工作区是负责管理用户资源的插件。它包括用户创建的项目、项目中的文件,以及文件变更和其它资源。工作区还负责通知其它插件关于资源变更的信息,比如文件创建、删除或者变更。
3. Help帮助系统
帮助组建具有与Eclipse平台本身相当的可扩展能力。与插件向Eclipse添加功能相同,帮助提供一个附加的导航结构,允许工具以HTML文件的形式添加文档。
4. Team团队支持系统
团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与所有使用的任何版本控制系统交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。
5. Platform Runtime运行平台
平台运行库是整个Eclipse的内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要某个插件的时候才加载该插件。除了内核外,其它每样东西都是作为插件来实现的。
Eclipse RCP优点:通过增加插件来动态扩展系统功能;通过删除插件来动态移除系统功能;通过增加或更新插件来动态改变系统行为。总结Eclipse RCP的优点就是即插即用、即删即无。在这个实现方式上是完全按照OSGI规范来进行的。有了这样一种非常厉害的优点之后,那程序上的耦合度也就自然会降低,随之带来的好处像扩展性、维护量、易开发性等都显而易见。
通过这篇博客大家对Eclipse RCP的理论知识有了比较深入的认识,等下面的博客给大家来几个实用易用易学的小DEMO,期待~~~