协议处理器

From Apache OpenOffice Wiki
Jump to: navigation, search


分发框架将用户界面控件(例如菜单或工具栏项)绑定到 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"。

Documentation note.png 目标 "_blank" 不能用于协议处理器。由于 "_blank" 会导致为组件创建新的框架,因此使用协议处理器时,尚没有组件可以使用此方式。


协议处理器将自行确定它是否返回有效的分发对象,即,它同意由分发框架给定的请求。如果返回了分发对象,请求者可以使用它以通过调用其 dispatch() 方法来分发 URL。

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages