首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一个用户触手可及的 XPages Web 图表控件(1)

一个用户触手可及的 XPages Web 图表控件(1)

背景概述XPages:新的 Web 设计元素XPages 使用户可以利用所有 Web 必备的功能,可在现有应用程序上构建或创建新的设计元素,可以充分利用它为现有的项目呈现 Web 客户机用户界面。
Lotus Domino Designer 8.5.1 为 XPages 用户提供了集成 Eclipse IDE 的可视化开发环境,用户可以获得“所见即所得”的体验。对 XPages 中的每一个页面、控件和对象,都可以直接通过可视化的方式修改它们的属性,并可及时预览修改结果。XPages 也提供分门别类的对象事件向导,帮助用户编辑和管理事件响应脚本。对于习惯通过开发 Agent 操作 Domino 数据的用户来说,XPages 提供了灵活的可编程性和可扩展性。用户可以通过集成的 Eclipse IDE 开发自己的 Java 函数库,然后使用 XPages 服务器端 Javascript 来调用这些 Java 函数。不仅如此,XPages 还支持在页面中使用 Dojo 对象,用户可以充分利用 Domino 服务器内嵌的 Dojo 工具包,在 Web 页面中扩展 Domino 数据的展现形式。
本文中,我们介绍了如何应用 XPages 和 Domino 8.5.1 包含的 Dojo 1.3.2 工具包开发一个通用的 XPages 定制控件,使用 Dojo 的图表工具来展现传统 Domino 视图中的统计数据。
Domino 视图:丰富的统计数据和灵活的可定制性Domino 视图是文档集合的列表,它丰富的层次结构和灵活的可定制性使它成为浏览 Domino 数据库的强大工具。通过定制,Domino 视图可以展现有层次的统计数据。与文档一样,Domino 视图既支持 Notes 客户端的访问方式,也支持 Web 浏览方式。然而缺省的 Web 视图格式已经远远不能满足 Web 2.0 用户的需求,它的页面格式完全受限于数据库已有的视图,不易定制,也无法方便地将统计数据以图表方式呈现。
Domino 的 Java API:在 Java 程序中访问 Domino 数据Domino 的 Java API 为用户提供了在 Java 程序中访问 Domino 数据的能力。用户可以在 Domino Agent、Applet、Servlet 中通过 Domino 的 Java API 读取和操作 Domino 数据。现在,通过 Designer 集成环境,用户可以在 Domino 数据库中编写 Java 函数库,然后在 XPages 页面中使用 Javascript 调用 Java 函数,完成各种数据操作。
Dojo:开源的 JavaScript 工具库Dojo 是一个面向对象的、开源的 JavaScript 工具库。Dojo 为 Web 开发提供了大量基于 DHTML, CSS 和 Javascript 等技术的客户端组件。Dojo 项目开发的最初目标是解决开发 DHTML 应用程序时遇到的那些长期存在的问题,如:跨浏览器问题。使用 Dojo,开发者可以轻松地为 XPages 页面加入 Web 2.0 元素,或在任何稳定健的支持 Javascript 语言的环境中发挥作用。而 Dojo 在代码质量,运行性能以及文档支持等方面在同类的开发项目中都可说是首屈一指。Domino 数据库内嵌了 Dojo 工具包,可以在服务器的 (Domino Path)\data\domino\js\ 目录下找到它。
JSON:轻量级的数据交换格式JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的一个子集。JSON 对象是一个无序的“‘名称 / 值’对”集合。JSON 值(value)可以是双引号括起来的字符串(String)、数值 (number)、true、false、null、对象 (object) 或者数组 (array)。这些结构是可以嵌套的。
应用场景Domino 视图的应用Domino 视图是组织、浏览文档的元素。用户可以设计和编辑视图的目录层次格式,并且可以运用 Domino 公式语言执行动态计算,从而在视图中显示所需的统计数据。图 1 是一个简单的视图统计数据的例子:这是一个在软件测试中记录 bug 的数据库,数据库中的每一个文档记录了关于一个 bug 的各种信息。其中的一个信息是 bug“状态”,        对应于 bug 在测试流程中的某个阶段。对于测试经理来说,他需要根据当前所有 bug 的状态统计出“有效”和“无效”bug 的数量。因为“有效 / 无效”信息无法直接从文档中读取,于是他在视图中添加一列,并使用 Domino 公式 @If( (Status="Resolved")|(Status="Open"); "Valid"; "Invalid" )计算出该信息。
图 1. Notes 客户端呈现的 Domino 视图用 Domino 视图数据生成统计图当用户得到了 Domino 视图的统计数据后,为了以更直观的形式让他人了解这些数据的分布情况,一个明显的需求是,希望能将这些数据以图表的方式呈现,如饼图,带状图等等。而在现有的方法中,并没有能够直接实现这一需求的工具。用户往往采用自行开发 agent 的方式遍历文档,或者在第三方工具(如 Excel)的辅助下通过手工复制 / 映射表格的方式完成转换。
现有的方法要么不具有普遍适用性,如第一种方法,agent 只能针对于特定数据库的特定视图,要应用到别的视图上就必须修改 agent,代码可复用性差, 不能动态适应用户需求;要么依赖于第三方工具,还要完成大量的手工操作。
使用本文控件的三大理由本文开发的控件有三大优势:(1)“所见即所得”。用户可以直观地根据视图选择所需数据,并设定约束条件作为统计数据源,而无需将其映射为异构表格;(2)内嵌的工具,无需布署第三方应用。因为使用了 Domino 内嵌的 XPages 和 Dojo 工具包,控件的开发和使用都无需布署任何第三方的工具;(3)通用的 XPages 用户控件,可以方便地复用在任何的 Domino 数据库中。
返回列表