Eclipse RCP:用于构建平台的平台
当前位置:以往代写 > JAVA 教程 >Eclipse RCP:用于构建平台的平台
2019-06-14

Eclipse RCP:用于构建平台的平台

Eclipse RCP:用于构建平台的平台

副标题#e#

技能存在着必然的周期性。在经验了一段由瘦客户端统治的时期后,富客户端技能开始了它的回归。大量的组织正在将它们的应用措施构建成富客户端,个中很多组织将其应用措施成立在RCP(Eclipse Rich Client Platform)的基本上。术语富客户端首先表白此应用措施为用户提供富厚的体验;其次,它还表白此应用措施是某台处事器的客户端。固然富客户端并不必需具有对应的处事器组件,可是它们凡是会有对应的处事器组件。

富客户端在许多方面与胖客户端雷同。它们两者都能为用户带来当地桌面体验,并提供那些通过瘦客户端技能很难、不利便或不行能交付的信息和成果。然而,富客户端可提供更多好的特性。胖客户端凡是是一个难以陈设和更新的大型单体应用措施,而富客户端在体积上更为轻巧,而且是基于陈设和更新相对容易的组件模子的。从汗青上来看,胖客户端是特定于平台的;而当今的富客户端技能发挥了底层平台的强大成果,同时埋没了底层平台的细节,从而答允开拓人员将精神会合于任务而不是各类非凡平台的非凡细节。

相对付胖客户端,富客户端还具有更好的可伸缩性。传统上,胖客户端直接与数据库相毗连。这样就限制了胖客户端的运行情况(防火墙大概会限制胖客户端与数据库之间的毗连),同时应用措施的可伸缩性(客户端与处事器之间的毗连总数)也大概会受到数据库的限制。富客户端凡是操作应用处事器,后者认真成立到数据库的毗连。这种设置很是机动(防火墙友好的)而且具有高度的可伸缩性。虽然,技能中并没有一定限制胖客户端与应用处事器举办通信的对象,只不外在胖客户端技能风行的时候,应用处事器还没呈现而已。

没有法则划定富客户端应用措施必需是某台对应处事器的客户端。很多操作富客户端技能的组织正在构建结实、可扩展、可更新、当地化的独立应用措施。同样,固然富客户端凡是操作应用处事器,可是并不存在要求必需这么做的法则或技能限制。没有来由说富客户端应用措施不能直接会见数据库。

富客户端技能代表了胖客户端与瘦客户端二者优势的团结:富厚的用户体验、高可伸缩性、平台独立,以及很是易于陈设和更新。

Eclipse RCP是一项位于Eclipse平台焦点的成果。大大都人想到Eclipse时,他们会想到Java集成开拓情况(IDE)。假如您将Eclipse中关于IDE的内容剥去,剩下的就是一个提供根基事情台成果的焦点,这些成果包罗对可移动和可叠加的窗口组件(编辑器和视图)、菜单、东西栏、按钮、表格、树形布局等等的支持。这个焦点成果就是Eclipse RCP。

Eclipse RCP为应用措施开拓人员提供了:

·应用措施和特性的一致且当地的外观

·民众应用措施处事,譬喻窗口打点、更新打点、辅佐和选择打点

·当地的外观,操作Windows、Mac OS X、Linux、Solaris、HP-UX、AIX和嵌入式设备上的实际平台窗口部件

·尺度化的组件模子

·普及的可扩展性

·整合的更新机制

·顶级开拓东西(Eclipse 软件开拓包(SDK)是世界级的软件开拓情况)

尽量利用这个术语事实上是不符合的,但Eclipse RCP仍可以被视为构建富客户端应用措施的中间件。它提供给用措施所需的基本设施,从而答允开拓人员将精神会合于焦点应用措施成果而不是细节。别再挥霍时间了:当纵然用Eclipse RCP吧。

组件

Eclipse RCP由很多组件组成,每个组件认真整个情况中相应部门的成果。事实上,Eclipse RCP险些所有的部门都是由组件组成的;除了少量的引导代码,RCP的每一部门都是一个组件。在Eclipse世界中,组件更多时候是被称为插件(可能在OSGI词汇中被称为包裹)。术语“插件”表白了这项组件成果在某种水平上属于二级成果,可能它只是内置成果的一个附加物。但事实并非如此;Eclipse RCP看待所有的插件都是平等的,内置和定制插件之间并没有明晰的观念边界。您建设的用于实现应用措施行为的插件可与组成Eclipse RCP的插件一起运行。

凡是,富客户端应用措施的开拓都是从单一插件开始的。在一个单独的插件中,您可觉得您的应用措施界说整个用户界面、业务逻辑和工具模子。建设一个新的Eclipse RCP应用措施很是容易,您只需选择菜单项File>New>Project…、选择建设新的Plug-in Project(插件项目)、然后遵循呈现的领导中的步调。在领导的Content(内容)页面上,对付问题“Would you like to create a rich client application?(您是否但愿成立一个富客户端应用措施?)”,记得选择“Yes(是)”。图1中显示的是领导的Templates(模板)页面;在这里我们选择建设“RCP application with a view(带有视图的RCP应用措施)”。

Eclipse RCP:用于构建平台的平台

图1. New Plug-in Project领导的Templates页面

#p#分页标题#e#

这将建设一个包括RCP应用措施所需部门的新插件,个中包罗事情台(菜单栏和东西栏)配置和包括一个表格的单一视图(拜见图2)。

Eclipse RCP:用于构建平台的平台

图2. 领导建设了一个具有全部成果的RCP应用措施


#p#副标题#e#

领导生成了以下类:

Application.java

生成的Application类包括一个单一要领,run(Object args),此要领认真运行应用措施(真奇怪)。这个要领引导并打开事情台窗口,当它退出时,应用措施将封锁。

ApplicationActionBarAdvisor.java

ApplicationActionBarAdvisor类认真构建菜单栏、东西栏和状态行。这一生成的类会建设一个带有单一File菜单(个中包括Exit项)的菜单栏。您可以操作fillCoolBar(ICoolBarManager coolBar)要领为您的事情台窗口添加一个东西栏。雷同地,您也可以用fillStatusLine(IStatusLineManager statusLine)来为事情台窗口添加一个状态行。

ApplicationWorkbenchAdvisor.java

ApplicationWorkbenchAdvisor类提供大量到应用措施生命周期的钩子。譬喻,您可以添加措施启动或封锁时挪用的要领。生成的实现只是指定泛起给用户的初始视图。

ApplicationWorkbenchWindowAdvisor.java

和ApplicationWorkbenchAdvisor雷同,ApplicationWorkbenchWindowAdvisor类提供到事情台生命周期的钩子。您可以添加建设、打开、还原或封锁事情台窗口时挪用的要领。生成的实现提供一个preWindowOpen()要领,此要领配置窗口的初始巨细和标题,以及是否埋没东西栏和状态行(二者都是埋没的)。

Perspective.java

Eclipse SDK提供了大量的视图。生成的应用措施包罗一个视图;您可以按照要求指定特另外视图。生成的视图埋没了编辑器区(即,编辑器在视图中是埋没的)而且会添加由领导生成的视图。这种视图被配置为牢靠的:它的视图没有熟悉的标题栏,并且不能移动。用户可以通过将配置从false修改成true(和为应用措施添加一些新的视图)来随意调解视图的位置。

View.java

生成的View类包括了一个带有少量硬编码条目标表格。您可以操作它来拟定您的应用措施外观。假如表格是您所需的,您可以通过将其与您的工具模子相毗连来定制它,可能利用一个或多个窗口组件彻底替换掉它。

下一步我们将按照要求,通过变动或增加菜单、菜单项、东西栏、视图,以及编辑器来修改生成的代码。

进阶

以这种方法构建应用措施可以使开拓人员相识到许多根基成果。RCP不只是一个窗口组件的荟萃,它还提供了一个用于打点应用措施用户界面的系统,个中包罗了更高品级观念的编辑和视图(可以移动和叠加)、东西栏、菜单、选择打点等等。可是用这种方法构建应用措施仅仅发挥了Eclipse的一小部门成果。这是一个进入Eclipse应用措施构建的不错的开始;接下来的步调自然就是构建真正的组件了。

插件是Eclipse平台的一项重要成果。实际上,Eclipse自己就是一个插件集;Eclipse中的大部门组件都是插件(除了一小部门引导代码)。这使得Eclipse极具可扩展性。可以通过建设一个或多个插件(这些插件可由框架动态发明和安装)的方法,将新成果添加进SDK。插件可被动态发明;添加插件时并不需要更新插件列表。

雷同于Eclipse SDK,RCP应用措施也是一个插件的荟萃。插件的外形巨细纷歧。如上面所说的,您可以用一个单一的插件成立整个Eclipse RCP应用措施并执行ECP全部的成果。可能您也可以将RCP应用措施建树成一个插件集,每一个插件城市执行措施的一部门成果。

将RCP应用措施构建成插件集有许多获益,包罗:

·延迟加载

Epclise只在需要的时候加载插件。假如您将您的措施解析成许多插件,您就可以缩短措施的启动时间,改进它的内存占用率。在启动时,只有初始化所需的插件子会议被加载,而不是整个应用措施;这将淘汰启动所需的时间和内存。

·更新

Eclipse可按照需要更新单一插件。假如您的应用措施是由多重插件组成的,那么更新时只需下载所需插件的那一部门举办安装。这样的话,就会淘汰应用措施更新的时间和所需的资源。

·扩展性

将一个应用措施支解成多重插件有利于措施此后的扩展性。

·重用

将应用措施建成一个组件荟萃,使得您有时机在其他措施中重用这些组件而无须修改代码。

·更好的设计

#p#分页标题#e#

利用多插件更利于设计。当您支解一个应用措施时,您会被迫去思量一些雷同于“我该如何去界说组件之间的接口”或“奈何才气使它们之间的交换更便利”之类的重要问题。不幸的是,这并不担保您能获得一个伟大的设计,但它确实勉励您往这方面尽力。

支解应用措施的一个普遍的方法是将您的规模业务逻辑和工具模子归入一个插件,将您的用户界面归入另一个。这样做的话,您可以有效地凭据模子调查节制器模式所列出的措施行来编写您的措施。那就意味着,应用措施的业务逻辑(包括在其自身的插件里)和用户界面的细节互不过问干与(抱负状态下,这就制止了任何用户界面技能或语言的观念)。用户界面代码(调查和节制层)由另一个插件来提供,从而不会牵涉到商户逻辑的执行。业务逻辑插件从属于用户界面插件,后者会挪用某些在业务逻辑中界说的模子。这种架构形式十分雷同于Java EE应用措施:一个网络模子(WAR文件)包括了小处事措施(节制器)和JSP(视图);其他的JAR文件则包括了业务逻辑和工具模子。

Eclipse组件在这种架构模式下提供了极其精彩的处事。通过增强可视化模子,Eclipse迫使开拓人员不再愿意把用户界面代码放入模子中(虽然,真正的措施员可以办理这个问题)。商户逻辑插件(或其他的插件)都从属于用户界面插件集:在视图中可以看到模子,但反过来却不可。通过勉励这种支解方法,代码中的耦合度低落了,从而使代码在修改进程中不再那么懦弱并且代码的重用率也提高了。

#p#副标题#e#

组件的荟萃

当您将您的应用措施代码支解成多重插件之后,接下去的步调就是将这些插件组合成一个整体,从而成立一个RCP应用措施。界说一个应用措施所需的插件集是产物设置的成果之一。产物设置中也包括了品牌信息,包罗启动画面的位置、窗口图标、先容图像和文本等。

将一个插件荟萃组装成一个应用措施是一项简朴的事情。实际上,在这一步中,最大的挑战就是如何品牌化应用措施从而使其越发雅观,作为品牌化进程的一步,您可以添加启动画面、窗口图标、启动图标和先容图形。通过选择菜单条目File>New>Product Configuration,您可觉得您的应用措施建设一个产物设置。此领导如图3所示。

Eclipse RCP:用于构建平台的平台

图3.“New Product Configuration(新产物设置)”领导

作为建设新的产物设置的一部门,您需要指定一个父插件项目。凡是,就是这个插件界说了应用措施。建设初始设置的要领有三种:

·建设一个包罗了根基配置的设置文件。选择这一项后,将建设一个空设置文件,您必需本身完全设置它。

·利用一个现有的产物。选择这一选项后,您将按照现有的产物设置中的值建设一个新设置文件。

·利用启动设置。选择这一选项后,初始设置是基于现有启动设置中引用的插件集的。假如您先前是通过菜单中的Run As>Eclipse Application来运行您的措施,那么您就可以利用这一选项。

您可以建设多个产物设置。譬喻,当根基措施需要通过所添加的可选插件来实现一些成果,那么建设这些插件的设置就显得很有须要。领导中的第二个选项旨在利便多个雷同设置的建设。

在产物设置编辑器的Configuration(设置)选项卡上(拜见图4),您可觉得应用措施所需的插件定名。

Eclipse RCP:用于构建平台的平台

图4. 产物设置编辑器的Configuration(设置)页面。

插件列表需要包罗所有应用措施自带以及所需的插件。编辑器会辅佐您为所需的插件分类。当您把应用措施的插件添加到插件列表后,单击Add Required Plug-ins按钮;这样就会将您的插件所要参考的插件,以及那些插件所要挪用的插件全部添加进了插件列表。这个荟萃会包括许多Eclipse平台自己的插件。利用这个按键时,您只要添加最上层的插件,随后编辑器会自动搜索并添加与这些上层插件相关联的插件。这一成果同样可以利用在产物的设置上;事实上,利用更新系统就是为了利用新的成果。

启动文件与那些认真启动措施的可执行文件相关联。在这一页面上,您可以界说文件欣赏器中的图标和名称。Branding页面认真品牌化应用措施(真奇怪)。个中包括了启动画面的识别、可选启动进度条的位置、窗口图标,以及关于对话。这些您所指定的信息将在导出项目时利用。

导出措施时,所有在设置页面列出的插件会连同标志信息以及根基Eclipse设置一起被成立(假如需要的话)或复制到您的文件系统的目次中。这个团结了Java Virtual Machine(JVM)的目次就是您运行应用措施所需的全部。

#p#分页标题#e#

运行措施并不需要对其举办导出;您可以在事情台中直接运行应用措施。对付测试设置和用调试器确定并办理问题,这是一个很棒的要领。在产物设置编辑器的全局页面上,有两个选项可以用来运行措施。这两个选项是以超链接形式呈现的:“运行产物”和“在调试模式中运行产物”,两者别离在通例和调试模式中运行启动设置。

成立平台

到今朝为止,这场接头主要会合在一个由浩瀚界说很是明晰的插件集组成的应用措施上。Eclipse的一个很是精彩的成果就是它可以或许动态地搜索和加载组件。这使得开拓人员可以或许去构建扩展性很强的应用措施。更进一步说,您可以将RCP应用措施构建成具有您本身的开放API的基本平台。

在Contributing to Eclipse: Principles, Patterns, and Plug-Ins这本书中,作者们接头了一些有关于扩展性的法则。第一,开放法则指出,“只要有大概,就让其他人处事于您的事情。”为了做到这一点,您可以界说您本身的扩展点集,使得其他开拓人员可以或许在您的应用措施长举办他们本身的创作。Eclipse的事情台大量利用了这一机制,每个开拓人员都能添加他本身的视图、编辑窗口、菜单进口等等。

想象RCP应用措施正在打点一张to-do列表。这个应用措施的焦点成果提供了这项to-do任务的工具表达,以及可视化这张任务列表的本领。图5显示了列表的视觉表达。

Eclipse RCP:用于构建平台的平台

图5.To Do View

就其自身来说,这个应用措施已经够吸引人的了。而更强大的成果是在我们将措施带入扩展的空间后呈现的。用硬编码编写应用措施来存储任务信息会变得相对简朴。但除了硬编码,您大概会开放您的应用措施以便让其他的开拓人员通过扩展点将他们的存储系统与您的代码相连。您的初始实现可以引导扩展点使其具有在当地数据库存储信息的本领。另一个开拓人员大概会操作一项网络处事或其他成果来扩展您的应用措施使得它可以或许在长途处事器上存储信息。

想象一下您的应用措施是如何与桌面交互的。为应用措施提供对拖拽的支持相对简朴。可是从那边拖?在您的初始实现中,您大概会将文本从欣赏器中托拽入应用措施。假如您在应用措施中成立一个扩展点,您可以答允其他开拓人员可以或许扩展您的措施,使其可以或许从诸如Microsoft Outlook或Mozilla Thunderbird之类的应用措施中举办拖拽。

通过成立一个扩展点,您使本身和其他开拓人员可以或许在不改变应用措施的基本上对其举办扩展。操作扩展点动态地搜索可操作的扩展能使您的措施变得完全可拟定。譬喻,也许让应用措施可以或许从Outlook中把措施包拖到Linux中没有什么意义;对此设置来说,您只需将谁人支持Outlook的插件去掉即可。

虽然,有效地操作扩展点机制需要不绝的实践。

竣事语

Eclipse RCP是一个用于构建富客户端应用措施的成果强大的框架。直观上,RCP将主机平台与当地外观、窗口打点、可定制性(具有可叠加的编辑器和视图)细密整合在了一起。但这只是它的外貌。位于RCP焦点的是将成果和机动性完全发挥的OSCI-兼容组件模子。当被请求时,RCP会动态地发明和加载这些组件;它们可以举办更新和扩展。

人们最终必将完全接管Eclipse RCP。一开始,您大概会把精神放在熟悉Eclipse RCP的界面上。跟着对组件模子的熟悉水平不绝加深,您会开始将代码支解成多重插件。最终,当您把握了基于多重扩展插件的规模平台开拓后,Eclipse RCP真正的强大成果将展此刻您的面前。

    关键字:

在线提交作业