conferenceservices.java.svn-base
来自「开源项目openfire的完整源程序」· SVN-BASE 代码 · 共 431 行 · 第 1/2 页
SVN-BASE
431 行
return manager.getBookmarkedConferences();
}
catch (XMPPException e) {
Log.error(e);
}
return true;
}
public void finished() {
bookmarksUI = new BookmarksUI();
workspace.getWorkspacePane().addTab(Res.getString("tab.conferences"), SparkRes.getImageIcon(SparkRes.CONFERENCE_IMAGE_16x16), bookmarksUI);
}
};
bookmarkLoader.start();
}
private void addChatRoomListener() {
ChatManager chatManager = SparkManager.getChatManager();
chatManager.addChatRoomListener(new ChatRoomListener() {
public void chatRoomOpened(final ChatRoom room) {
if (room instanceof ChatRoomImpl) {
final ChatRoomDecorator decorator = new ChatRoomDecorator(room);
decorator.decorate();
}
}
public void chatRoomLeft(ChatRoom room) {
}
public void chatRoomClosed(ChatRoom room) {
}
public void chatRoomActivated(ChatRoom room) {
}
public void userHasJoined(ChatRoom room, String userid) {
}
public void userHasLeft(ChatRoom room, String userid) {
}
});
}
public boolean canShutDown() {
return true;
}
public static String getDefaultServiceName() {
String serviceName = null;
Collection services = bookmarksUI.getMucServices();
if (services != null) {
Iterator serviceIterator = services.iterator();
while (serviceIterator.hasNext()) {
serviceName = (String)serviceIterator.next();
break;
}
}
return serviceName;
}
private void addPopupListeners() {
final ContactList contactList = SparkManager.getWorkspace().getContactList();
// Add ContactList items.
final Action inviteAllAction = new AbstractAction() {
public void actionPerformed(ActionEvent actionEvent) {
Collection contacts = contactList.getActiveGroup().getContactItems();
startConference(contacts);
}
};
inviteAllAction.putValue(Action.NAME, Res.getString("menuitem.invite.group.to.conference"));
inviteAllAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.CONFERENCE_IMAGE_16x16));
final Action conferenceAction = new AbstractAction() {
public void actionPerformed(ActionEvent actionEvent) {
Collection contacts = contactList.getSelectedUsers();
startConference(contacts);
}
};
conferenceAction.putValue(Action.NAME, Res.getString("menuitem.start.a.conference"));
conferenceAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.SMALL_WORKGROUP_QUEUE_IMAGE));
contactList.addContextMenuListener(new ContextMenuListener() {
public void poppingUp(Object component, JPopupMenu popup) {
Collection col = contactList.getSelectedUsers();
if (component instanceof ContactGroup) {
popup.add(inviteAllAction);
}
else if (component instanceof Collection && col.size() > 0) {
popup.add(conferenceAction);
}
}
public void poppingDown(JPopupMenu popup) {
}
public boolean handleDefaultAction(MouseEvent e) {
return false;
}
});
// Add to Actions Menu
final JMenu actionsMenu = SparkManager.getMainWindow().getMenuByName(Res.getString("menuitem.actions"));
actionsMenu.add(conferenceAction);
}
private void startConference(Collection items) {
final ContactList contactList = SparkManager.getWorkspace().getContactList();
List jids = new ArrayList();
Iterator contacts = items.iterator();
while (contacts.hasNext()) {
ContactItem item = (ContactItem)contacts.next();
ContactGroup contactGroup = contactList.getContactGroup(item.getGroupName());
contactGroup.clearSelection();
if (item.isAvailable()) {
jids.add(item.getJID());
}
}
String userName = StringUtils.parseName(SparkManager.getSessionManager().getJID());
final String roomName = userName + "_" + StringUtils.randomString(3);
String serviceName = getDefaultServiceName();
if (ModelUtil.hasLength(serviceName)) {
ConferenceUtils.inviteUsersToRoom(serviceName, roomName, jids);
}
}
/**
* Returns the UI for the addition and removal of Conference bookmarks.
*
* @return the BookedMarkedConferences UI.
*/
public static BookmarksUI getBookmarkedConferences() {
return bookmarksUI;
}
private class ChatRoomDecorator implements ActionListener, ChatRoomClosingListener {
private ChatRoom chatRoom;
private ChatRoomButton inviteButton;
public ChatRoomDecorator(ChatRoom room) {
this.chatRoom = room;
chatRoom.addClosingListener(this);
}
public void decorate() {
// Add Conference Invite Button.
inviteButton = new ChatRoomButton("", SparkRes.getImageIcon(SparkRes.CONFERENCE_IMAGE_24x24));
inviteButton.setToolTipText(Res.getString("title.invite.to.conference"));
chatRoom.getToolBar().addChatRoomButton(inviteButton);
inviteButton.addActionListener(this);
}
public void closing() {
inviteButton.removeActionListener(this);
chatRoom.removeClosingListener(this);
}
public void actionPerformed(ActionEvent e) {
String userName = StringUtils.parseName(SparkManager.getSessionManager().getJID());
final String roomName = userName + "_" + StringUtils.randomString(3);
final List<String> jids = new ArrayList<String>();
jids.add(((ChatRoomImpl)chatRoom).getParticipantJID());
final String serviceName = getDefaultServiceName();
if (serviceName != null) {
SwingWorker worker = new SwingWorker() {
public Object construct() {
try {
Thread.sleep(25);
}
catch (InterruptedException e1) {
Log.error(e1);
}
return "ok";
}
public void finished() {
try {
ConferenceUtils.createPrivateConference(serviceName, Res.getString("message.please.join.in.conference"), roomName, jids);
}
catch (XMPPException e1) {
JOptionPane.showMessageDialog(chatRoom, ConferenceUtils.getReason(e1), Res.getString("title.error"), JOptionPane.ERROR_MESSAGE);
}
}
};
worker.start();
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?