IBM Lotus Notes V8 构建于 Lotus Expeditor 平台之上,借助于 Expeditor 平台的扩展性,用户可以比较方便地对 Lotus Notes 进行配置和个性化。 IBM Lotus Expeditor 平台提供了一系列可以应用主题的控件。通过主题可以定义这些控件的外观,从而个性化 Lotus Notes 的界面,比如颜色,字体以及背景样式等。
IBM Lotus Notes V8 提供两种默认的主题:Notes 主题 (Notes Theme) 和操作系统主题(Operating System Theme)。用户可以通过点击菜单 “File” > “Preferences” 打开参数配置界面,在界面左边的参数列表里选择“Windows and Themes”打开主题配置界面,从而指定当前使用的主题。
图 1. Lotus Notes 的 Theme 设置
图 2. Notes Theme 外观
图 3. OS Theme 外观
Lotus Expeditor 通过主题扩展点 com.ibm.rcp.ui.themes 来管理当前可用的主题。用户可以通过实现该扩展点将自己的主题加入到 Lotus Notes V8 中。 添加成功后它将显示在窗口和主题(“Preference”>“Windows and Themes”)配置界面中的可选主题下拉表中。
com.ibm.rcp.ui.themes 使用层叠样式表(Cascading Style Sheet) 来定义界面的表现形式。有关 CSS 的说明请参考 http://www.w3.org/Style/CSS/ 。目前 Expeditor 平台提支持多种可以被主题化的控件,如标题栏 (Title bar)、工具栏(Toolbar)、菜单栏(Menu bar)、打开列表(Open List)、状态栏(Status bar)、Tabs、Sidebar (Thin ,Open ,Closed)等。 下面通过一个实例,介绍新增主题的步骤。
- 设置 eclipse 的目标平台 (Target Platform) 为 C:\Program Files\IBM\Lotus\Notes\framework\rcp\eclipse ;
- 创建 eclipse 的运行环境:
- 选择 Run - Run,然后选择 Eclipse Application 。
- 单击右键,选择 New 。
- 输入一个名称(例如 Notes)。
- 在 Program to Run 下,选择 Run a product,然后选择 com.ibm.notes.branding.notes 。
- 在 Runtime JRE 中,选择 Notes JRE 。
- 在 Arguments 附签中,在 Program arguments 文本框中输入以下内容:
-personality com.ibm.rcp.platform.personality -product com.ibm.notes.branding.notes -debug -console
- 将主题扩展点 com.ibm.rcp.ui.themes 加入到 plugin.xml 中。
- 右击扩展点 com.ibm.rcp.ui.themes,选择菜单“New”>“theme”。
- 设定主题扩展点要求的字段。
图 4. 主题扩展点
其中 CSS 表示定义该主题用于定义界面外观的 CSS 文件。 Label 定义了该主题的名称,它将会显示在 Notes 8 配置界面的主题列表中。 Native 表明窗口控件的缺省样式是否采用操作系统样式。如果其设为 true,表示对于没有在 CSS 中定义的可主题化的控件采用操作系统样式的设置,否则控件的样式为空。
-
编写 CSS 文件
Expeditor 平台提供了一个全局的 CSS 文件,它实现了对一些基本界面元素的字体、颜色、背景等的定义。我们如果希望直接使用这些已经定义好的属性,我们可以在我们的 CSS 文件中直接导入这些属性。在我们的 CSS 文件中添加如下一行,就可以实现对全局 CSS 文件的导入:
@import url("platform:/plugin/com.ibm.rcp.ui/themes/wed61/global.css");
如果我们希望改变其中一些属性的定义,我们可以直接在我们的 css 文件中添加相应的属性定义。例如,如果我们希望改变整个工具栏的背景颜色,我们可以加入如下定义:
coolbar { background-color: rgb(232, 235, 241), rgb(177,239,184), 100%; border-radius: 0; }
我们知道工具栏的背景色为一种渐变色,其中 rgb(232, 235, 241) 定义了渐变色的起始颜色,rgb(177, 239, 184) 定义了渐变色的结束颜色。我们也可以改变工具栏上工具条的颜色,示例如下:
toolbar { background-color: rgb(232, 235, 241), rgb(177, 239, 184), 100%; }
经过修改过的工具栏效果如 图 5 所示。
图 5. 改变了颜色的工具栏
对于其他的一些界面元素属性的修改,我们可以参照插件 com.ibm.rcp.ui.css 中的文件 themes\wed61\global.css 中的定义。插件 com.ibm.rcp.ui.css 存在于 Notes 安装目录下的 framework\rcp\eclipse\plugins 目录中。
当然,我们有时也希望能够修改一些 Notes 的 css 属性,例如邮件列表中字体的前景色和背景色等。 Notes 有相应的 css 文件,它用于定义这些属性。在插件 com.ibm.notes.branding 中,Notes 提供了一个 CSS 文件 themes\notes.css 。我们的 css 文件也可以将这个文件导入,这样我们就可以拥有 Notes 的一些缺省的 css 属性定义。我们可以加入以下语句以导入 Notes 的 css 属性:
@import url("platform:/plugin/com.ibm.notes.branding/themes/notes.css");
我们也可以在我们的 css 文件中添加一些属性定义来改变 Notes 的一些外观。例如我们可以通过添加如下代码来改变 Notes 邮件列表中选中的邮件的背景色和前景色:
mailtable > row > primarySelection{ background-color: rgb(29,137,42), rgb(114,226,127), 100%; color: white; }
我们修改过的效果如图 6 所示。
图 6. 改变了背景色和前景色的邮件列表
将上面的主题插件打包成 updateSite,通过以下步骤将其安装到 Lotus Notes V8 中:
- 打开 C:\Program Files\IBM\Lotus\Notes\framework\rcp\plugin_customization,将以下行加入文件中:
com.ibm.notes.branding/enable.update.ui=true
- 重启 Notes,点击菜单“File”>“Application”>“Install”。
- 选择“Search for new features to install”
- 点击“Add Folder Location”,指定 updateSite 的路径。
- 选择安装 GreenTheme feature,并接受 licence agreements 。
- 当安装界面显示该 plugin 没有认证的警告时,选择“Install this plugin” 。
安装结束后,按提示要求重启 Notes,新创建的主题将会添加到配置界面的主题下拉框中,如 图 7 所示:
图 7. 包含了新主题的配置界面
选中主题后 Lotus Notes V8 的界面如 图 8 所示。
图 8. 应用了新主题的 Lotus Notes 界面
上述例子应该能够让您学会如何将自己定义的主题放入 Lotus Notes V8 中。 同时,虽然这里我们是构建用于 Lotus Notes 的主题,实际上构建在 Lotus Expeditor 平台上的任何应用程序都可以通过定义主题来改变它的外观。
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| 示例代码 | GreenTheme | 288 KB | HTTP |
学习
- 开始了解IBM Lotus Notes and Domino V8 技术内容。
- IBM 红皮书:“Lotus Domino Domain Monitoring”。
- IBM 红皮书:“IBM Lotus Notes and Domino 8 Deployment Guide”。
- 阅读 developerWorks 文章 “IBM Lotus Notes/Domino V8 新特性”。
- 阅读 developerWorks 文章 “体验 Lotus Notes 8 Beta2 新功能”。
- 阅读 developerWorks 文章 “IBM Lotus Notes 8 当中的搜索新功能”。
- 阅读 developerWorks 文章 “使用 Eclipse 扩展 IBM Lotus Notes V8 邮件”。
- 阅读 developerWorks 文章 “Integrating IBM Lotus Notes data into the Lotus Notes V8 sidebar and toolbar”。
- 阅读 developerWorks 文章 “扩展 IBM Lotus Notes V8 侧栏和工具栏”。
- 阅读 developerWorks 文章 “Leveraging user context in the IBM Lotus Notes V8 sidebar and toolbar”。
- 阅读 developerWorks 文章 “使用 IBM Lotus Notes/Domino V8 邮件收回功能”。
- 阅读 developerWorks 文章 “IBM Lotus Notes 8 中全新的 Out of Office 功能”。
- 阅读 developerWorks 文章 “为 IBM Lotus Expeditor Property Broker 创建协作组件”。
- 阅读 developerWorks 文章 “为 IBM Lotus Domino V8 设计支持 WS-I 的 Web 服务”。
- 阅读 developerWorks 技巧 “在 IBM Lotus Notes V8 中实现日历重影”。
- 阅读 developerWorks 技巧 “使用 Scheduler 用户界面在 IBM Lotus Notes V8 中寻找可用的时间”。
- 注册 developerWorks 教程 “Creating a composite application using IBM Lotus Component Designer”。
- 查看 developerWorks LotusComposite Applications 页面。
- 阅读 “Lotus Notes and Domino 8 Reviewer's Guide”。
- 阅读developerWorks 上的 Eclipse 项目资源。
- 阅读关于IBM Lotus Notes 和 Domino V8的更多信息。
讨论
梁骞, IBM 中国软件开发中心,现在从事 Workplace Managed Client 软件的开发工作,通过 liangq@cn.ibm.com 可以与他联系。