IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Lotus  >

使用 IBM Lotus Notes 8.0.1 中的 Notes widgets 构建复合应用程序

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

样例代码

英文原文

英文原文


级别: 中级

Liu Jun, 软件工程师, IBM
Hardy Groeger, 通过认证的高级 IT 架构师, IBM Corporation

2009 年 5 月 08 日

本文介绍了 Notes® My Widgets 的概念和用法。通过几个例子说明了如何利用 IBM® Lotus® Notes® 8.0.1 的各种资源创建 Notes widgets。最后讲述了利用 Notes widgets 创建一个简单的复合应用程序的方法。

Notes My Widgets 是 Lotus Notes 8.0.1 新引入的一种用户接口(UI)特性。它使 Lotus Notes 用户能够简单有效地利用其他现成的资源,比如网站、Lotus Notes 数据库、Google gadgets 或者提要。它作为一个独立的应用程序运行,并结合了另外一种新增特性 Live Text。Widgets 可使用 Live Text 触发,并且可在 MyWidgets 侧边栏应用程序中访问,或者作为复合应用程序中的一个组件使用。和其他复合应用程序组件一样,通过复合应用程序编辑器(CAE)可以方便地配置 Notes widgets,实现与复合应用程序其他组件进行交互。

关于 Lotus Notes 复合应用程序的详细信息,请参阅 IBM developerWorks® Lotus Web 站点上的 复合应用程序专题

先决条件

本文假设您熟悉复合应用程序,并了解如何使用 Lotus Notes 复合应用程序编辑器。运行本文中的例子需要安装 Lotus Notes 8.0.1,包括 CAE。





回页首


Notes widgets 概述

Notes My Widgets 是 Lotus Notes 8.0.1 首次引入的一种新特性。Notes widgets 是小型的、专门化的应用程序,目的是让用户在自动识别的 Lotus Notes Live Text 的基础上利用已有的服务和资源。可通过侧边栏访问 widget,并从 Live Text 或者选择的文本启动它,或者添加到复合应用程序中。与常规的 Lotus Notes 应用程序不同,创建 Notes widget 不需要编写任何代码或者脚本。Notes widgets 配置向导可以帮助您方便地从 Lotus Notes 搜索视图或文档、网页、提要甚至 Google gadgets 创建 widgets。

图 1 显示了一种常见的 Notes widgets 用法。在 Lotus Notes 邮件文档中,右击选中的文本或者使用上下文菜单打开包含 Google Map 的一个浮动窗口。输入的搜索项就是 Lotus Notes 邮件文档中选择的内容。这里的浮动窗口就是 Notes widget。看起来像一个直接运行在窗口而不是浏览器中的网页。实际上,图 1 所示的 Notes widget 是从网页(Google Map)创建的,窗口中的所有内容由网页(Google Map)提供。


图 1. 浮动窗口中的 Notes widget
浮动窗口中的 Notes widget

为了在 Lotus Notes 中使用 Notes widget,可以从 Notes widgets 目录服务器上导入创建好的 Notes widget,也可以创建自己的 Notes widget。Lotus Notes 8.0.1 提供了完成这些有关操作的工具。图 2 显示了 widget 工具栏和 My Widgets 侧边栏。widget 工具栏用于启动 Notes widgets 配置向导,帮助您创建自定义的 widget。My Widgets 侧边栏用于管理全部已有的 Notes widget。通过侧边栏可以配置触发器动作或者删除 Notes widget。


图 2. Notes widget 工具栏和侧边栏面板
Notes widget 工具栏和侧边栏面板

通过管理策略或者本地化首选项设置,可以控制是否显示 Widget 工具栏和 My Widgets 侧边栏。除非在策略设置中进行了限制,否则用户可以通过选择 Widgets 首选项设置中的选项来打开这些面板,如图 3 所示。如果有 Notes widget 目录服务器,也可导入已有的 Notes widget。


图 3. Notes widget 首选项设置
Notes widget 首选项设置

除了在浮动窗口或者侧边栏中显示以外,Notes widget 还可以作为复合应用程序组件与其他组件交互。图 4 显示了一个简单复合应用程序,包括 Notes 视图组件和 Notes widget。


图 4. 包含 Notes widget 组件的简单复合应用程序
包含 Notes widget 组件的简单复合应用程序

为了更好的理解这个复合应用程序的组成,看一看实现全部功能的四个组件:

  • UserTable。包含用户信息记录的 Notes 视图,比如姓名、职位、地址和邮政代码。
  • myWeather。从 Google gadget 创建的 Notes widget,显示某个城市的天气预报。
  • Yahoo News。从提要创建的 Notes widget,显示个关于某个主题的新闻。
  • Google Maps。从网页创建的 Notes widget,显示某个地址的地理信息。

用户选择 UserTable 中的一条记录后,所选用户信息的变化立刻会在其他三个组件中反映出来。myWeather 显示用户所在城市的天气情况,Yahoo News 显示该城市的新闻,Google Maps 显示用户住址的地理信息。

本文后面讲详细介绍如何创建这个复合应用程序。首先使用 Notes widget 配置向导创建所需要的 Notes widget。然后利用这些组件通过 Lotus Notes 的复合应用程序编辑器创建复合应用程序。

注意:本文不讨论如何创建 Notes 视图组件。我们直接从一个包含 UserTable Notes 视图的 Lotus Notes 数据库开始。下载 Lotus Notes 示例数据库。





回页首


在 Lotus Notes 8.0.1 中创建 Notes widget

可以从网页、Google gadgets 或者提要创建 Notes widget。

从网页创建 Notes widget

下面说明创建 Google Maps widget 的过程。

  1. 单击 Notes Widgets 工具栏按钮启动 Notes widget 配置向导,如图 5 所示。



    图 5. 启动 Notes widgets 配置向导
    启动 Notes widgets 配置向导

  2. 选择 Web page 选项以便从网页创建 Notes widget。
  3. 选择 Web page by URL,输入要创建 Notes widget 的网页地址。在该例中输入 http://www.google.com/maps。单击 Next。如图 6 所示。

    一般而言,能够通过浏览器访问的网页都能创建 Notes widget。为了让 Notes widget 具有交互能力,应选择允许传递参数改变显示内容的网页。

    注意:这里也选择 Browse the Web 选项。此时向导将打开 Lotus Notes 内置浏览器。然后您可以首先浏览希望创建 Notes widget 的网页,并执行下列操作。



    图 6. 从网页配置组件
    从网页配置组件

  4. 选择 From a form on this Web page 选项。

    两种选项的差别在于 HTTP GET 通过 URL 链接传递参数,而 HTTP POST 通过 Web 表单提交传递参数。Google Maps 根据通过在网页表单提交中输入的用户地址显示不同的地图。

  5. 选择合适的 Web 表单收集用户输入的地址。

    网页可以包含多个 Web 表单,包括可见的和不可见的。选择一个数字的时候,网页中对应的 Web 表单就会突出显示,如图 7 所示。还能够看到即将创建的 widget 的预览图。



    图 7. 选择一个表单预览 widget
    选择一个表单预览 widget

  6. 配置 Notes widget 的设置。

    向导能够自动识别所选 Web 表单能够接受的所有参数。因为 Google Maps 只需要一个查询地址来显示相关的地图,这里只需要选中 ID,就是说只需要向 widget 传递一个参数(然后它再传递给网页上的 Web 表单)。可以修改参数的标签,使用户更容易理解。在这个例子中,将显示名称设置为 address。

    由于要把 Google Maps widget 作为复合应用程序的一个组件,需要选择 Just configure a component for now 选项。如果希望设置为集成到 Live Text 中或者通过侧边栏访问的独立 widget,可以选择 Wire as an action or Display as a sidebar panel 选项。本文不讨论这方面的内容。如图 8 所示。



    图 8. 配置组件
    配置组件

  7. 单击 Finish。新建的 Google Maps widget 将被添加到 My Widgets 侧边栏中,如图 9 所示。



    图 9. Google Maps widget 被添加到 My Widgets 侧边栏
    Google Maps widget 被添加到 My Widgets 侧边栏

从 Google gadgets 创建 Notes widget

下面介绍从 Google gadget 创建 myWeather widget 的过程。

  1. 单击 Notes Widgets 工具栏中的 图标 按钮启动 Notes widgets 配置向导。
  2. 选择 Google Gadgets 选项以便从 Google gadgets 创建 Notes widget。
  3. 选择 Add a Google Gadget by URL,输入用于创建 Notes widget 的 Google gadget URL。这里输入 http://www.notkewl.com/myWeather/myWeather.xml。

    关于 Google gadgets 的详细信息,请参阅 Google gadgets 站点 的说明。

  4. 配置新建 Notes widget 的设置。

    向导自动识别所选 Google gadget 能够接受的所有参数。可以看到 myWeather Google gadget 需要两个参数:zip code 和 weather display unit。



    图 10. 配置组件
    配置组件

  5. 单击 Finish,将 myWeather widget 添加到 My Widgets 侧边栏,如图 11 所示。



    图 11. myWeather gadget 被添加到 My Widgets 侧边栏
    myWeather gadget 被添加到 My Widgets 侧边栏

从提要创建 Notes widgets

下面介绍如何从提要创建 Yahoo News Search widget。步骤如下:

  1. 单击 Notes widgets 工具栏中的 图标 按钮启动 Notes widgets 配置向导。
  2. 选择 feed 选项从提要创建 Notes widget。
  3. 选择 Enter a feed URL 选项,输入希望创建 Notes widget 的 Yahoo News Search 提要的 URL。这里输入的是 http://news.search.yahoo.com/news。
  4. 单击 Finish。将打开一个 Lotus Notes 内置浏览器显示 Yahoo Search 页面。
  5. 输入 “America” 单击 News Search 按钮。浏览器将显示搜索结果。
  6. 从 Notes widgets 工具栏中单击该按钮启动 Notes widgets 配置向导。

    注意:也可选择 Tools - Widgets - Configure a Widget from Current Context 启动向导。
  7. 选择 Feed: Yahoo! News Search results for America 选项。
  8. 单击 Next 打开 Configure a Component 窗口。
  9. 我们需要的不是搜索 “America”,而是希望使用搜索键作为 widget 的参数。在 Display name 字段中输入 “topic”,赋予它一个有意义的名字。
  10. 单击 Finish。Yahoo News Search widget 将添加到 My Widgets 侧边栏中。

    图 12. Yahoo News Search widget 被添加到 My Widgets 侧边栏
    Yahoo News Search widget 被添加到 My Widgets 侧边栏





回页首


使用 Notes widget 建立复合应用程序

尽管在 Lotus Notes 中使用 widget 已经节约了您打开浏览器直接搜索书签或打开网站时所需的时间,但 Notes My Widgets 还能直接使用 widget 作为复合应用程序的组件。这种方法可以把简单的交互 widget 混搭成新的应用程序,从而提供更多功能。下面我们将在复合应用程序中使用新创建的 widget。

创建空白复合应用程序

步骤如下:

  1. 选择 File - Application - New 打开 New Application 窗口,如图 13 所示。



    图 13. 新创建的应用程序窗口
    新创建的应用程序窗口

  2. 输入新建应用程序的标题,在 Template 字段中选择 Blank Composite Application,单击 OK 创建一个新的空白复合应用程序。显示的警告信息如图 14 所示。



    图 14. 空白的内容查看窗口
    空白的内容查看窗口

向复合应用程序中添加组件

步骤如下:

  1. 选择 Actions - Edit Application 打开复合应用程序编辑器(CAE)。
  2. 将 NSF 组件添加到复合应用程序编辑器组件栏中。

    执行下列操作前,将 UserTable.nsf(可以下载)复制到 Lotus Notes 数据目录中,比如 C:\Program Files \Notes\Data。

  3. 选择 Tools - Component Palette - Add Components - Add NSF Component 打开 New NSF Component 窗口,如图 15 所示。



    图 15. 打开 New NSF Component 窗口
    打开 New NSF Component 窗口

    注意:也可通过右击 Component Palette 从上下文菜单中选择 Add Components - Add NSF Component 来添加组件。

  4. 在 New NSF Component 窗口中,单击 Browse,然后从标题为 UserTable 的应用程序中选择 User Table 视图。

    注意:可能需要使用 Application 下拉菜单右侧的 folder 按钮中导航到数据库,如图 16 所示。然后单击 OK。



    图 16. 使用 folder 按钮
    使用 folder 按钮

  5. 定位 NSF 组件之后,将 &HideNavigator 添加到 Lotus Notes URL。该选项防止显示 Lotus Notes navigator 面板,将全部组件显示区域留给 Lotus Notes viev 面板。

    结果如图 17 所示。



    图 17. 新创建的 NSF Component 窗口
    新创建的 NSF Component 窗口

  6. 单击 OK 将 NSF 组件添加到组件栏。

    这样将创建新的 My Palette 栏,添加的组件显示在右侧的组件栏,如图 18 所示。



    图 18. Component Palette 窗口
    Component Palette 窗口

通过拖放确定组件的显示位置

现在应该在 My Palette 组件栏中看到您需要的四个组件。现在需要将这些组件拖放到空白的复合应用程序页中,根据需要调整布局。布局对功能没有影响。

图 19 显示了一种布局。


图 19. 示例布局
示例布局

到目前为止,我们已经将组件集中到复合应用程序中了,但是这些组件还不能进行交互。还需要完成最后一个步骤:连接组件。连接完成之后,Notes widget 就能从 UserTable 视图获得输入并显示相应的信息了。

连接应用程序中的组件

复合应用程序编辑器可以将采用异构技术的组件连接在一起。Lotus Notes 8 客户机提供的 property broker 特性要求运行时环境根据属性的变化执行动作触发器。然后将创建的三个 Notes widget 连接到 NSF 组件 User Table。

步骤如下:

  1. 如果已经关闭 CAE,打开 Lotus Notes 中的示例复合应用程序,选择 Actions - Edit Application 在 CAE 中打开该应用程序。
  2. 选择 Edit - Page - Wiring 打开 Wiring Pane 页面。

    Wiring Pane 页面列出了所有组件的属性和动作。在 User Table 组件中可以看到定义了四个属性和一个动作。其他 Notes widget 组件可以找到创建过程中定义的名称。最后一件事情就是将这三个 Notes widget 连接到 User Table 组件。换句话说,就是从 User Table 组件向三个 Notes widget 预定义的动作发送信息(属性数据)。

  3. 选择 User Table 组件中的 Address 属性,按住鼠标左键将该属性拖放到 Google Maps 组件中列出的 Address 属性,释放鼠标键。
  4. 选择 User Table 组件的 ZipCode 属性,按住鼠标左键将其拖到 myWeather 组件的 ZipCode 属性,释放鼠标键。
  5. 选择 User Table 组件的 Location 属性,按住鼠标左键将其拖到 Feed: Yahoo! News Search 组件的 topic 属性,释放鼠标键。



    图 20. Editing 窗口
    Editing 窗口

  6. 选择 File - Finish Editing 保存所做的修改。

测试连接结果

编辑完成之后,将自动显示修改后的应用程序。如图 21 所示。


图 21. 修改后的复合应用程序
修改后的复合应用程序

为了查看新建属性和动作的效果,在窗口左上角的 User Table 视图组件中选择一个文档。选中文档时,位置、地址和邮政编码就会发布出去。然后三个 Notes widget 组件就会根据 Wiring Pane 页面中的配置收到信息。应该会看到,myWeather widget 显示了城市(邮政编码)的天气信息,Yahoo! News Search widget 显示了关于该市的新闻,Google Maps widget 则显示地址的地图。





回页首


结束语

本文介绍了 Notes widget 的概念和使用。通过一些例子说明了如何在 Lotus Notes 8.0.1 中从不同的资源和服务创建 Notes widget。最后详细讨论了如何利用新创建的 Notes widget 创建一个简单的复合应用程序。






回页首


下载

名字大小下载方法
UserTable.nsf320KBHTTP
关于下载方法的信息


参考资料



作者简介

Liu Jun 是北京 IBM China Development Lab IBM Software Services for Lotus 团队的一位软件工程师。他先后从事过 IBM Lotus Forms、IBM Lotus Connections、复合应用程序和 IBM Lotus Mashups 的开发。


Hardy Groeger 是一位通过认证的高级 IT 架构师,目前是欧洲 IBM Software Services for Lotus 的服务解决方案架构师,主要从事基于 Lotus 产品系列的应用程序的架构和开发。自从 2001 年加入 IBM 以来,他先后担任过产品开发和服务领域的不同岗位。在加入 IBM 之前,他是德国 Lotus Business Partner 的项目开发经理,主要研究 SAP R/3 和 Lotus Domino 集成。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款