1. 首页
  2. Foxit PDF SDK(安卓版)
  3. UI Extensions组件概述
  1. 首页
  2. Foxit PDF SDK(iOS版)
  3. UI Extensions组件概述
  1. 首页
  2. Foxit PDF SDK(UWP版)
  3. UI Extensions组件概述

UI Extensions组件概述

UI Extensions组件采用module机制,将每个功能细化成一个module。当加入UI Extensions时,所有的modules除了LocalModule(用于文件管理)会被默认自动加载。用户可以通过实现Module接口类来自定义module,然后调用UIExtensionsManager#registerModule在当前UIExtensions Manager中进行注册。如果不需要使用时,可以调用UIExtensionsManager#unregisterModule进行反注册。

UIExtensionsManager包含了主框架UI,如top/bottom toolbar, 以及各个模块之间共享的UI组件。同时,各个功能模块也可以通过UIExtensionsManager来进行单独加载。功能模块在加载的时候会对主框架UI进行适配和调整,并且建立起消息事件响应的联系。各个功能模块可能包含了其模块特有的UI组件,同时也会有自己独立的消息事件处理逻辑。UIExtensionsManager也会负责将从View Control组件接收到的消息和事件分发到各个功能模块中去。下面的图片讲述了UIExtensionsManager和modules之间的详细关系。

UIExtensionsManager和 modules之间的关系

Tool handler与annotation handler处理来自PDFViewCtrl的触屏、手势等事件。当触屏和手势事件触发时,PDFViewCtrl会将相应的事件传递给UIExtensionsManager:

  • 如果当前存在tool handler, UIExtensionsManager会将相应的事件传递给当前的tool handle,然后事件处理过程结束。
  • 如果当前有选择annotation,UIExtensionsManager会将相应的事件传递给当前所选择的annotation对应的annotation handler,然后事件处理过程结束。
  • 如果当前不存在tool handler,也没有选中的annotation,那么UIExtensionsManager会将相应的事件传递给selection tool handler。Text Selection tool用于文本选择相关事件的处理,例如选择一段文本添加highlight annotation。Blank Selection tool用于空白处相关事件的处理,例如在空白处添加Note annotation。

备注:Tool Hander和Annotation Handler不会同时响应事件。Tool Handler主要用于annotation的创建(目前不支持Link Annotation的创建)、signature的创建和文本选择。Annotation Handler主要用于annotation的编辑以及表单填写。下图讲述了Tool Handler和Annotation Handler之间的事件响应流程。

Tool Handler和Annotation Handler之间的事件响应流程

更新于 2020年3月23日

这篇文章有用吗?

相关文章