协议处理器
From Apache OpenOffice Wiki
分发框架将用户界面控件(例如菜单或工具栏项)绑定到 OpenOffice.org 的功能上。用户界面上的每个可
用功能都可由命令 URL 和相应的参数来进行描述。
协议处理器机制是一种 API,允许程序员将任意的 URL 模式加入到现有的命令 URL 集,方法是为这些 URL 模式编写附加的协议处理器。这样的协议处理器必须作为 UNO 组件实现,并在新 URL 模式的 OpenOffice.org 配置中注册。
概述
要发出命令 URL,第一步是定位负责 URL 的分发对象。从包含命令所指的文档的框架开始。可以使用 URL 和特殊的搜索参数调用它的接口方法 <idlml>com.sun.star.frame.XDispatchProvider:queryDispatch()</idlml> 来定位正确的目标。此请求将通过以下实例传送:
禁用命令 | 检查命令是否位于禁用命令的列表中,在 编写 UNO 组件 - 将组件集成到 OpenOffice.org - 禁止命令 中介绍 |
拦截 | 拦截命令和重新路由命令,在 办公软件开发 - OpenOffice.org 应用环境 - 使用分发框架 - 分发截取 中介绍 |
确定目标 | 确定命令的目标框架,在 办公软件开发 - OpenOffice.org 应用环境 - 处理文档 - 装入文档 - 框对象 中介绍 |
控制器 | 使框架的控制器尝试处理命令,在 办公软件开发 - OpenOffice.org 应用环境 - 使用分发框架 - 处理链 中介绍 |
协议处理器 | 确定是否存在针对命令的自定义处理器,在本节中介绍 |
解释为可装入的内容 | 从文件装入内容,在 办公软件开发 - OpenOffice.org 应用环境 - 处理文档 - 装入文档 - URL 参数 中介绍。通常,通过 com.sun.star.frame.FrameLoader 将内容装入到框架,但是如果内容(例如声音)不需要框架,则使用 com.sun.star.frame.ContentHandler 服务,该服务的操作不需要目标框架。 |
以上列表说明如果以前未调用 URL,将仅使用协议处理器。因为目标已确定,所以很明显,命令将在已定位的目标框架环境中运行,通常为 "_self
"。
协议处理器将自行确定它是否返回有效的分发对象,即,它同意由分发框架给定的请求。如果返回了分发对象,请求者可以使用它以通过调用其 dispatch()
方法来分发 URL。
Content on this page is licensed under the Public Documentation License (PDL). |