通过 URL 打开 Eclipse Rich Client Platform 应用程序

想象一下,现在,您能够像导航一个 Web 页面那样轻松地导航一个 Rich Client Platform (RCP) 应用程序的丰富功能。跟随本文的学习,您将能够通过单击一个 URL 来打开 Eclipse RCP 应用程序中的特定业务对象。

Eclipse Rich Client Platform (RCP) 为富客户机提供了一个极为灵活且功能丰富的框架。但是它的一个缺点是不能轻松地从其他源链接 RCP 应用程序中的业务对象。如果用户能够在其他应用程序中单击某个链接并被带到 RCP 应用程序中,并且已经打开了该链接所引用的业务对象,那将十分有帮助。例如,假定有一个用于处理费用申请的 RCP 应用程序。可能生成有关过期偿付的报表并以电子表格的形式发布(或者是在内部网中,或者作为富文本文档,或者作为电子邮件,或者其他形式等等)。该报表可能对每个过期申请使用一个引用编号。报表不会强制使用者把该引用编号复制并粘贴到 RCP 应用程序的搜索对话框中,而是包含启动 RCP 应用程序的超级链接 URL,该 URL 将把用户直接引导到对应的费用申请。本文将说明如何完成上述过程。

读者应当拥有编写 Eclipse 插件的经验,以及 Windows® 注册表和 TCP 协议的一般知识。虽然本文提供的示例针对 Windows 操作系统,但是在其他操作系统中也可以实现相同的功能。有关更多信息,请参阅 参考资料

解决方案概述

让我们从整体上查看解决方案的工作原理,然后进行细分并讨论如何实现各个部分。

遵循图 1 中的流程:

  1. 假定用户已经在桌面中打开 RCP 应用程序。
  2. 然后假定此用户在他的常用邮件客户机中收到了一封电子邮件,该邮件中包含链接 rcp://claim=25222 — 这是指向过期申请的引用 (1) 。
  3. 该用户单击链接,这将启动该用户的默认浏览器以处理请求 (2)。
  4. 该浏览器知道它不能在本机打开此 URL,因此它将查询 Windows 注册表以确定应当怎样委托该操作 (3)。
  5. 注册表将查找 rcp:// 协议并确定有一个与它绑定在一起的批处理文件 (4)。
  6. 此批处理文件将被执行 (5),这将触发独立的 Java™ 客户机 (6),捕捉 URL 的参数,并因此向 RCP 应用程序中内嵌的 TCP 服务器发出一个本地 TCP 调用 (7)。
  7. 该 TCP 服务器将解析来自该 URL(即,claim=25222)的参数并请求 RCP 应用程序打开相应的业务对象 (8)。
  8. 然后将在 RCP 应用程序 UI 中向用户呈现所请求的业务对象 (9)。
图 1. 使用 URL 打开 RCP 应用程序的流程控制 使用 URL 打开 RCP 应用程序的流程控制

此过程涉及到许多步骤,但幸运的是,每个步骤都相对简单并且可以根据您的环境和应用程序进行调整。最后几步将帮助解决如何使 RCP 应用程序获得 Windows 焦点之类的细节。

回页首

解决方案详解

向 Windows 中的 URL 协议注册您的应用程序

Windows 使用注册表中的条目识别有效的 URL 协议和确定应当向哪个应用程序发送带有特定协议的请求。要使我们的 RCP 应用程序能够响应 URL,必须在 HKEY_CLASSES_ROOT hive 下创建一个键。键名必须匹配正在创建的协议。在本文中,我们将使用 “rcp://” URL 协议,因此必须把键命名为 “rcp”。该键下的默认字符串值与新协议的显示名称相对应。在 “rcp” 键下,还必须创建带有一个字符串值的 shell/open/command 键,该字符串值包含在收到 “rcp://” 请求时 Windows 应当打开的应用程序的路径。

在本文中,我们将把 Windows 指向一个批处理文件(请参阅 “批处理文件”)。该键的字符串值应当在其末尾附加了 %1,这将告诉 Windows 把该 URL 查询字符串传递给您的应用程序。这是我们把上下文信息(例如要打开的特定业务对象)传递给 RCP 应用程序的方法。

下面的 Windows 批处理文件代码片段将在注册表中创建相应的键,该键带有将启动记事本的 “rcp://” 协议。要自定义该脚本,请用需要使用的协议替换 rcp 的所有实例,并使用需要 Windows 执行的文件的完整路径替换 C:/Windows/Notepad.exe

清单 1. 把 URL 协议注册到 Windows 注册表的批处理文件代码

本文转自IBM Developerworks中国

        请点击此处查看全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值