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

本文介绍如何通过URL链接直接导航至Eclipse Rich Client Platform (RCP) 应用程序中的具体业务对象,实现从外部来源无缝跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想象一下,现在,您能够像导航一个 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中国

        请点击此处查看全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值