快速业务通道

通过RAP让RCP项目运行在浏览器中 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

通过RAP让RCP项目运行在浏览器中

时间:2011-10-13 blogjava vwpolo

从上篇文章《RAP 与 RCP的差别》中,我们知道,RCP与RAP之间的区别很小,现在我们就开始研究他 们的区别到底有多小,接下来打算将一个RCP项目迁移到RAP项目,我们从这样的一个实际的例子来演示。

我们先在Eclipse创建一个RCP插件工程,选择RCP应用的Mail模板。我们就将这个RCP版本的Mail  Demo 变成 RAP版本的Mail Demo,比如我们的插件工程的名称就叫做“com.vwpolo.rcp.mail”,

创建完RCP插件项目后,我们双击打开plugin.xml文件,切换到“Dependencies”选项卡,默认的RCP项 目会依赖“org.eclipse.ui“和”org.eclipse.core.runtime“这两个项目,在这里,我们将他们替换成 “org.eclipse.rap.ui”和“org.eclipse.rap.ui.views”,(具体的依赖插件根据项目的需要进行添加 ),

接着我们切换到“Extensions”选项卡,配置扩展点,RCP模板工程默认提供如下扩展点:

在RAP项目中,是通过IEntryPoint 的子类来负责启动程序,而RCP是通过IApplication的子类来启动 程序的,所以这里的“org.eclipse.core.runtime.applications”扩展点没有用武之地,可以直接删除 ,替换成RAP支持的“org.eclipse.rap.ui.entrypoint”扩展点,在这个扩展点中可以指定启动类的ID和 完整路径还有参数名称,这里的参数名称是提供给Servlet容器判断应该加载那个应用。

 

我们指定Application这个类负责程序的启动,这个类原来是RCP的启动类,我们现在将它实现的接口 由IApplication修改成IEntryPoint,并实现createUI方法,在这个方法中创建UI界面,基本上和 RCP  IApplication的start 方法类似,只是这里我们不需要处理客户端的退出,系统会自动帮我们处理好的 。createUI方法很简单:

1 @Override 2 public int createUI() { 3     Display display = PlatformUI.createDisplay(); 4     return PlatformUI.createAndRunWorkbench(display, new  ApplicationWorkbenchAdvisor()); 5 }

通过RAP让RCP项目运行在浏览器中(2)

时间:2011-10-13 blogjava vwpolo

比较一下RCP的start方法的处理:

1 public Object start(IApplicationContext context) { 2 Display display = PlatformUI.createDisplay(); 3 try { 4 int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); 5 if (returnCode == PlatformUI.RETURN_RESTART) { 6 return IApplication.EXIT_RESTART; 7 } 8 return IApplication.EXIT_OK; 9 } finally { 10 display.dispose(); 11 } 12 }

是不是发现很相似?只是RAP简化了处理的方法,不需要像RCP那样循环的检查系统消息。这样我们的 org.eclipse.rap.ui.entrypoint扩展点就创建完毕了,

接下来我们看一下“org.eclipse.core.runtime.products”这个扩展点,在RAP中,这个扩展点被 “org.eclipse.rap.ui.branding”替代了,所有我们可以删除“org.eclipse.core.runtime.products” ,然后新增“org.eclipse.rap.ui.branding”,右键选择这个扩展点,选择新建一个branding,然后配 置branding的详细信息:

Id: 指定branding的ID,必须是唯一的,在同一项目中不能重复,

servletName:指定servlet的名称,在我们打开的浏览器地址栏上会显示,

defaultEntrypointId:是指定默认启动的启动类ID,这里指定我们刚才新建的EntryPoint扩展点中指 定的ID,

themeID:使用的主题ID,接下来我们会讲解怎么自定义我们的主题。

Title:显

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号