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对象中即可,组件会自动监听事件并弹出相应对话框。
