技术开发 频道

Lotus Sametime开发入门


UI组件

1. 通知组件(AnnouncementUI)

    我们可以通过如下方法弹出一个通知对话框:

步骤一:获得AnnouncementUI组件对象。

AnnouncementUI annUI = (AnnouncementUI) m_session.getCompApi(AnnouncementUI.COMP_NAME);

步骤二:发送通知。

annUI.sendAnnouncement(users);

    注意这里的users是STObject的数组。即通过该方法我们可以同时向多个用户或用户组发送通知。

    在运行完上述语句后,程序会弹出对话框请求用户确认。用户点击"发送"按钮即可向指定用户发送通知。

    接收通知对话框不需要任何代码。我们只需要将通知组件装入Sametime的STSession对象中,通知组件会自动监听通知事件并在收到通知时弹出对话框。

2. 聊天组件(ChatUI)

    聊天组件是4个UI组件中最为复杂的一个。聊天组件有如下重要方法:

  • create1On1Chat(String username):传入一个用户名字符串,并与该用户创建1对1的对话。如该用户名解析失败,弹出相应对话框;如解析出对于一个的用户,弹出用户选择对话框。
  • create1On1ChatById(STUser user):传入一个用户对象,并与该用户创建1对1的对话。如创建对话失败,弹出相应对话框。
  • createMeeting(MeetingTypes meetingType, String meetingName, String inviteText, boolean showInviteDlg, STUser[] users):创建一个会议邀请
  • inviteToMeeting(MeetingInfo info, Place place, String inviteText, STUser[] invitees, boolean showInviteDlg, boolean autoJoin):发送会议邀请到。一般来说,任何用户都可以通过聊天窗口中的"邀请其他人"菜单发送邀请,但程序也可以通过显式调用该方法实现此功能。

    我们在这里只演示如何创建一个1对1的对话:

步骤一:获得ChatUI组件对象。

ChatUI chatUI = (ChatUI) m_session.getCompApi(ChatUI.COMP_NAME);

步骤二:发起交谈

chatUI.create1On1ChatById(user)

    聊天组件的会议功能是通过浏览器实现的。关于示例代码有兴趣的读者可以自行参考客户端toolkit中的示例程序ChatUIApplet。

    我们还可以通过扩展DefaultChatFactroy定制聊天窗口。请参见客户端toolkit中的示例程序CustomizeChatUI。

3. 社区组件(CommUI)

    社区组件比较简单但也是最为常用的组件。我们经常需要使用这个组件解析用户名。我们在介绍Lookup服务和添加用户对话框时有使用Resolver类和ResolveViewListener接口解析用户的例子,这里我们也可以使用社区组件解析用户。方法如下:

步骤一:获得CommUI组件对象

CommUI commUI = (CommUI) session.getCompApi(CommUI.COMP_NAME)

步骤二:解析用户

commUI.resolve(userNames);

步骤三:实现listener

    在resolve()方法前添加语句。

commUI.addCommUIListener(ResolveHandler)

    然后在ResolveHandler中实现CommUIListener接口。如果解析成功,resolved方法将会被调用。在本例中,如果解析失败或解析到多个用户,我们不作任何处理。

public class ResolveHandler CommUIListener { private STUser stUser = null; public void resolved(CommUIEvent event) { stUser = event.getResolved(); } public void resolveFailed(CommUIEvent event) { } }

    注意我们不需要实现resolveConflict()方法。因为在解析到多个用户时,社区组件会自动弹出对话框让用户选择正确的用户。

    显示注销信息和显示管理员公告信息不需要任何代码,只需将社区组件装入Sametime的STSession对象中即可,社区组件会自动监听事件并弹出相应对话框。

4. 文件传输组件(FileTransferUI)

    发送文件的方法如下:

步骤一:获得FileTransferUI组件对象

FileTransferUI fsUI = (FileTransferUI) m_session.getCompApi(FileTransferUI.COMP_NAME);

步骤二:发送文件

fsUI.sendFile(user);

    显示接收文件对话框不需要任何代码,只需将文件传输组件装入Sametime的STSession对象中即可,组件会自动监听事件并弹出相应对话框。

0
相关文章