diff options
| author | kgilmer | 2005-08-30 03:39:05 +0000 |
|---|---|---|
| committer | kgilmer | 2005-08-30 03:39:05 +0000 |
| commit | 83300c5dfa5aaaabc0f81ca8fe4e209141a5cb47 (patch) | |
| tree | 41b501c151f02ef9046b10e25581ae5d05a9c314 | |
| parent | 2df5948957daff1d257eb2d5b44c2f7a255603ff (diff) | |
| download | org.eclipse.ecf-83300c5dfa5aaaabc0f81ca8fe4e209141a5cb47.tar.gz org.eclipse.ecf-83300c5dfa5aaaabc0f81ca8fe4e209141a5cb47.tar.xz org.eclipse.ecf-83300c5dfa5aaaabc0f81ca8fe4e209141a5cb47.zip | |
Added code for Select Chatroom dialog.
2 files changed, 205 insertions, 141 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/PresenceContainerUI.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/PresenceContainerUI.java index 694e73291..65e8e5581 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/PresenceContainerUI.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/PresenceContainerUI.java @@ -63,6 +63,7 @@ public class PresenceContainerUI { IWorkbenchPage wp = ww.getActivePage(); IViewPart view = wp.showView("org.eclipse.ecf.ui.view.rosterview"); rosterView = (RosterView) view; + rosterView.setPresenceContainer(pc); String nickname = null; if (nick != null) { nickname = nick; @@ -237,7 +238,7 @@ public class PresenceContainerUI { throw new ContainerConnectException("No chat rooms available for "+container.getConnectedID().getName()); } // Otherwise print out some info about rooms - System.out.println(" chat rooms available: "+Arrays.toString(roomInfos)); + //System.out.println(" chat rooms available: "+Arrays.toString(roomInfos)); // XXX arbitrarily join first chat room ID targetID = roomInfos[0].getRoomID(); diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/RosterView.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/RosterView.java index c8b83b880..a4261f1f5 100644 --- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/RosterView.java +++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/RosterView.java @@ -26,13 +26,17 @@ import org.eclipse.ecf.core.user.IUser; import org.eclipse.ecf.core.user.User; import org.eclipse.ecf.presence.IMessageListener; import org.eclipse.ecf.presence.IPresence; +import org.eclipse.ecf.presence.IPresenceContainer; import org.eclipse.ecf.presence.IPresenceListener; import org.eclipse.ecf.presence.IRosterEntry; import org.eclipse.ecf.presence.IRosterGroup; +import org.eclipse.ecf.presence.chat.IChatRoomManager; +import org.eclipse.ecf.presence.chat.IRoomInfo; import org.eclipse.ecf.presence.impl.RosterEntry; import org.eclipse.ecf.ui.UiPlugin; import org.eclipse.ecf.ui.UiPluginConstants; import org.eclipse.ecf.ui.dialogs.AddBuddyDialog; +import org.eclipse.ecf.ui.dialogs.ChatRoomSelectionDialog; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; @@ -67,56 +71,78 @@ import org.eclipse.ui.part.ViewPart; public class RosterView extends ViewPart { public static final String DISCONNECT_ICON_DISABLED = "icons/disabled/terminate_co.gif"; + public static final String DISCONNECT_ICON_ENABLED = "icons/enabled/terminate_co.gif"; + public static final String INSTANT_MESSAGE_ICON = "icons/enabled/message.gif"; + public static final String ADDGROUP_ICON = "icons/enabled/addgroup.gif"; + public static final String ADDBUDDY_ICON = "icons/enabled/addbuddy.gif"; + public static final String UNFILED_GROUP_NAME = "Buddies"; + protected static final int TREE_EXPANSION_LEVELS = 2; + private TreeViewer viewer; - //private Action chatAction; + + // private Action chatAction; private Action selectedChatAction; + private Action selectedDoubleClickAction; + private Action disconnectAction; - //private Action addGroupAction; - //private Action addBuddyAction; + + private Action openChatRoomAction; + + private IPresenceContainer presenceContainer; + + // private Action addGroupAction; + // private Action addBuddyAction; protected Hashtable chatThreads = new Hashtable(); protected Hashtable accounts = new Hashtable(); - + protected void addAccount(UserAccount account) { - if (account == null) return; - accounts.put(account.getServiceID(),account); + if (account == null) + return; + accounts.put(account.getServiceID(), account); } + protected UserAccount getAccount(ID serviceID) { return (UserAccount) accounts.get(serviceID); } + protected void removeAccount(ID serviceID) { accounts.remove(serviceID); } - + class UserAccount { ID serviceID; + IUser user; + ILocalInputHandler inputHandler; - + public UserAccount(ID serviceID, IUser user, ILocalInputHandler handler) { this.serviceID = serviceID; this.user = user; this.inputHandler = handler; } - + public ID getServiceID() { return serviceID; } + public IUser getUser() { return user; } + public ILocalInputHandler getInputHandler() { return inputHandler; } } - + protected String getUserNameFromID(ID userID) { if (userID == null) return ""; @@ -133,7 +159,7 @@ public class RosterView extends ViewPart { } public void dispose() { - for(Iterator i=accounts.keySet().iterator(); i.hasNext(); ) { + for (Iterator i = accounts.keySet().iterator(); i.hasNext();) { ID serviceID = (ID) i.next(); UserAccount account = getAccount(serviceID); if (account != null) { @@ -146,10 +172,12 @@ public class RosterView extends ViewPart { accounts.clear(); super.dispose(); } - + class TreeObject implements IAdaptable { private String name; + private TreeParent parent; + private ID userID; public TreeObject(String name, ID userID) { @@ -189,6 +217,7 @@ public class RosterView extends ViewPart { return null; } } + class TreeParent extends TreeObject { private ArrayList children; @@ -229,9 +258,10 @@ public class RosterView extends ViewPart { return children.size() > 0; } } + class TreeGroup extends TreeParent { ID svcID; - + public TreeGroup(ID svcID, String name) { super(name); this.svcID = svcID; @@ -254,14 +284,17 @@ public class RosterView extends ViewPart { public int getTotalCount() { return getChildren().length; } + public ID getServiceID() { return svcID; } } + class TreeBuddy extends TreeParent { IPresence presence = null; + ID svcID = null; - + public TreeBuddy(ID svcID, String name, ID id, IPresence p) { super(name, id); this.svcID = svcID; @@ -275,9 +308,11 @@ public class RosterView extends ViewPart { public void setPresence(IPresence p) { this.presence = p; } + public ID getServiceID() { return svcID; } + public boolean isActive() { IPresence p = getPresence(); if (p == null) @@ -285,10 +320,11 @@ public class RosterView extends ViewPart { return presence.getType().equals(IPresence.Type.AVAILABLE); } } - + class ViewContentProvider implements IStructuredContentProvider, ITreeContentProvider { private TreeParent invisibleRoot; + private TreeParent root; public void inputChanged(Viewer v, Object oldInput, Object newInput) { @@ -296,9 +332,11 @@ public class RosterView extends ViewPart { public void dispose() { } + public TreeBuddy findBuddyWithUserID(ID userID) { - return findBuddy(root,userID); + return findBuddy(root, userID); } + public Object[] getElements(Object parent) { if (parent.equals(getViewSite())) { if (root == null) @@ -331,9 +369,8 @@ public class RosterView extends ViewPart { public TreeBuddy fillPresence(TreeBuddy obj, IPresence presence) { obj.setPresence(presence); obj.removeChildren(); - obj - .addChild(new TreeObject("Account: " - + obj.getServiceID().getName())); + obj.addChild(new TreeObject("Account: " + + obj.getServiceID().getName())); TreeObject type = new TreeObject("Status: " + presence.getType().toString()); obj.addChild(type); @@ -361,7 +398,8 @@ public class RosterView extends ViewPart { IPresence presence = entry.getPresenceState(); TreeBuddy newBuddy = null; if (oldBuddy == null) - newBuddy = new TreeBuddy(entry.getServiceID(),name, entry.getUserID(), presence); + newBuddy = new TreeBuddy(entry.getServiceID(), name, entry + .getUserID(), presence); else { newBuddy = oldBuddy; if (entry.getName() != null) @@ -449,14 +487,16 @@ public class RosterView extends ViewPart { if (oldgrp != null) { oldgrp.addChild(newBuddy); } else { - TreeGroup newgrp = new TreeGroup(entry.getServiceID(),groupName); + TreeGroup newgrp = new TreeGroup(entry.getServiceID(), + groupName); newgrp.addChild(newBuddy); parent.addChild(newgrp); } } else { TreeGroup tg = findGroup(parent, UNFILED_GROUP_NAME); if (tg == null) { - tg = new TreeGroup(entry.getServiceID(),UNFILED_GROUP_NAME); + tg = new TreeGroup(entry.getServiceID(), + UNFILED_GROUP_NAME); tg.addChild(newBuddy); parent.addChild(tg); } else { @@ -466,6 +506,7 @@ public class RosterView extends ViewPart { } } + public void replaceEntry(TreeParent parent, IRosterEntry entry) { TreeBuddy tb = findBuddy(parent, entry); @@ -493,14 +534,15 @@ public class RosterView extends ViewPart { if (oldgrp != null) { oldgrp.addChild(newBuddy); } else { - TreeGroup newgrp = new TreeGroup(entry.getServiceID(),groupName); + TreeGroup newgrp = new TreeGroup(entry.getServiceID(), + groupName); newgrp.addChild(newBuddy); parent.addChild(newgrp); } } else { TreeGroup tg = findGroup(parent, UNFILED_GROUP_NAME); if (tg == null) { - tg = new TreeGroup(entry.getServiceID(),UNFILED_GROUP_NAME); + tg = new TreeGroup(entry.getServiceID(), UNFILED_GROUP_NAME); tg.addChild(newBuddy); parent.addChild(tg); } else { @@ -512,9 +554,8 @@ public class RosterView extends ViewPart { public void addGroup(ID svcID, String name) { if (name == null) return; - addGroup(svcID,root, name); + addGroup(svcID, root, name); } - public void addGroup(ID svcID, TreeParent parent, String name) { TreeGroup oldgrp = findGroup(parent, name); @@ -523,7 +564,7 @@ public class RosterView extends ViewPart { return; } // Group not there...add it - TreeGroup newgrp = new TreeGroup(svcID,name); + TreeGroup newgrp = new TreeGroup(svcID, name); parent.addChild(newgrp); } @@ -565,11 +606,12 @@ public class RosterView extends ViewPart { refreshView(); } } + protected void removeChildren(TreeParent parent, ID svcID) { - TreeObject [] childs = parent.getChildren(); - for(int i=0; i < childs.length; i++) { + TreeObject[] childs = parent.getChildren(); + for (int i = 0; i < childs.length; i++) { if (childs[i] instanceof TreeParent) { - removeChildren((TreeParent) childs[i],svcID); + removeChildren((TreeParent) childs[i], svcID); } if (childs[i] instanceof TreeBuddy) { TreeBuddy tb = (TreeBuddy) childs[i]; @@ -586,6 +628,7 @@ public class RosterView extends ViewPart { } } } + public void removeAllEntriesForAccount(UserAccount account) { if (account == null) { root = null; @@ -600,6 +643,7 @@ public class RosterView extends ViewPart { invisibleRoot.addChild(root); } } + class ViewLabelProvider extends LabelProvider { public String getText(Object obj) { String label = null; @@ -635,6 +679,7 @@ public class RosterView extends ViewPart { return image; } } + class NameSorter extends ViewerSorter { } @@ -690,13 +735,14 @@ public class RosterView extends ViewPart { } private void fillLocalPullDown(IMenuManager manager) { - //manager.add(addBuddyAction); - //manager.add(new Separator()); - //manager.add(addGroupAction); - //manager.add(new Separator()); - //manager.add(chatAction); - //manager.add(new Separator()); + // manager.add(addBuddyAction); + // manager.add(new Separator()); + // manager.add(addGroupAction); + // manager.add(new Separator()); + // manager.add(chatAction); + // manager.add(new Separator()); manager.add(disconnectAction); + manager.add(openChatRoomAction); } private void fillContextMenu(IMenuManager manager) { @@ -723,15 +769,11 @@ public class RosterView extends ViewPart { } final TreeGroup treeGroup = tg; /* - Action requestAuthUserAction = new Action() { - public void run() { - requestAuthFrom(tb, treeGroup); - } - }; - requestAuthUserAction.setText("Re-Request authorization from " - + treeObject.getName()); - manager.add(requestAuthUserAction); - */ + * Action requestAuthUserAction = new Action() { public void + * run() { requestAuthFrom(tb, treeGroup); } }; + * requestAuthUserAction.setText("Re-Request authorization from " + + * treeObject.getName()); manager.add(requestAuthUserAction); + */ Action removeUserAction = new Action() { public void run() { removeUserFromGroup(tb, treeGroup); @@ -739,7 +781,7 @@ public class RosterView extends ViewPart { }; if (treeGroup != null) { removeUserAction.setText("Remove " + treeObject.getName() - + " from " + treeGroup.getName()+" group"); + + " from " + treeGroup.getName() + " group"); } else { removeUserAction.setText("Remove " + treeObject.getName()); } @@ -752,10 +794,11 @@ public class RosterView extends ViewPart { final String groupName = treeGroup.getName(); Action addUserAction = new Action() { public void run() { - addUserToGroup(treeGroup.getServiceID(),groupName); + addUserToGroup(treeGroup.getServiceID(), groupName); } }; - addUserAction.setText("Add buddy to " + treeObject.getName() + " for account "+treeGroup.getServiceID().getName()); + addUserAction.setText("Add buddy to " + treeObject.getName() + + " for account " + treeGroup.getServiceID().getName()); addUserAction.setImageDescriptor(ImageDescriptor .createFromURL(UiPlugin.getDefault().find( new Path(ADDBUDDY_ICON)))); @@ -766,7 +809,8 @@ public class RosterView extends ViewPart { } }; String accountName = treeGroup.getServiceID().getName(); - removeGroupAction.setText("Remove " + treeObject.getName() + " for account "+accountName); + removeGroupAction.setText("Remove " + treeObject.getName() + + " for account " + accountName); removeGroupAction.setEnabled(treeGroup.getTotalCount() == 0); removeGroupAction.setImageDescriptor(PlatformUI.getWorkbench() .getSharedImages().getImageDescriptor( @@ -780,7 +824,8 @@ public class RosterView extends ViewPart { manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); } - protected void openDialogAndSendRequest(ID svcID, String name, String groupName) { + protected void openDialogAndSendRequest(ID svcID, String name, + String groupName) { String[] groupNames = this.getGroupNames(); List g = Arrays.asList(groupNames); int selected = (groupName == null) ? -1 : g.indexOf(groupName); @@ -794,7 +839,7 @@ public class RosterView extends ViewPart { sg.close(); if (!Arrays.asList(groupNames).contains(group)) { // create group with name - this.addGroup(svcID,group); + this.addGroup(svcID, group); } String[] sendGroups = new String[] { group }; // Finally, send the information and request subscription @@ -810,7 +855,7 @@ public class RosterView extends ViewPart { ID buddyID = buddy.getUserID(); String name = buddyID.getName(); String groupName = (tg == null) ? null : tg.getName(); - openDialogAndSendRequest(buddy.getServiceID(),name, groupName); + openDialogAndSendRequest(buddy.getServiceID(), name, groupName); } protected void addUserToGroup(ID serviceID, String groupName) { @@ -833,13 +878,14 @@ public class RosterView extends ViewPart { } private void fillLocalToolBar(IToolBarManager manager) { - //manager.add(addBuddyAction); - //manager.add(new Separator()); - //manager.add(addGroupAction); - //manager.add(new Separator()); - //manager.add(chatAction); - //manager.add(new Separator()); + // manager.add(addBuddyAction); + // manager.add(new Separator()); + // manager.add(addGroupAction); + // manager.add(new Separator()); + // manager.add(chatAction); + // manager.add(new Separator()); manager.add(disconnectAction); + manager.add(openChatRoomAction); } protected ID inputIMTarget() { @@ -867,19 +913,15 @@ public class RosterView extends ViewPart { private void makeActions() { /* - chatAction = new Action() { - public void run() { - ID targetID = inputIMTarget(); - if (targetID != null) - openChatWindowForTarget(targetID); - } - }; - chatAction.setText("Send Instant Message..."); - chatAction.setToolTipText("Send instant message"); - chatAction.setImageDescriptor(ImageDescriptor.createFromURL(UiPlugin - .getDefault().find(new Path(INSTANT_MESSAGE_ICON)))); - chatAction.setEnabled(false); - */ + * chatAction = new Action() { public void run() { ID targetID = + * inputIMTarget(); if (targetID != null) + * openChatWindowForTarget(targetID); } }; chatAction.setText("Send + * Instant Message..."); chatAction.setToolTipText("Send instant + * message"); + * chatAction.setImageDescriptor(ImageDescriptor.createFromURL(UiPlugin + * .getDefault().find(new Path(INSTANT_MESSAGE_ICON)))); + * chatAction.setEnabled(false); + */ selectedDoubleClickAction = new Action() { public void run() { TreeObject treeObject = getSelectedTreeObject(); @@ -888,11 +930,11 @@ public class RosterView extends ViewPart { openChatWindowForTarget(targetID); } }; - + disconnectAction = new Action() { public void run() { // Disconnect all accounts - for(Iterator i=accounts.entrySet().iterator(); i.hasNext(); ) { + for (Iterator i = accounts.entrySet().iterator(); i.hasNext();) { Map.Entry entry = (Map.Entry) i.next(); UserAccount account = (UserAccount) entry.getValue(); account.getInputHandler().disconnect(); @@ -902,7 +944,7 @@ public class RosterView extends ViewPart { } }; disconnectAction.setText("Disconnect"); - disconnectAction.setToolTipText("Disconnect from servers"); + disconnectAction.setToolTipText("Disconnect from servers."); disconnectAction.setEnabled(false); disconnectAction.setImageDescriptor(ImageDescriptor .createFromURL(UiPlugin.getDefault().find( @@ -910,57 +952,57 @@ public class RosterView extends ViewPart { disconnectAction.setDisabledImageDescriptor(ImageDescriptor .createFromURL(UiPlugin.getDefault().find( new Path(DISCONNECT_ICON_DISABLED)))); - /* - addGroupAction = new Action() { + + openChatRoomAction = new Action() { public void run() { - // handle add group operation here - String defaultNewGroupName = "New Group"; - InputDialog input = new InputDialog(viewer.getControl() - .getShell(), "Add Group", - "Please enter the name of the group to be added", - defaultNewGroupName, new IInputValidator() { - public String isValid(String newText) { - if (newText == null || newText.length() == 0) { - return "New group name cannot be empty"; - } else { - String[] groupNames = getGroupNames(); - for (int i = 0; i < groupNames.length; i++) { - if (groupNames[i].equals(newText)) { - return "A group named '" - + newText - + "' already exists. Please choose another name"; - } - } - } - return null; - } - }); - input.open(); - String result = input.getValue(); - // Now add the group - // XXX addGroup(result); + if (presenceContainer != null) { + IChatRoomManager m = presenceContainer.getChatRoomManager(); + + if (m != null) { + ChatRoomSelectionDialog dialog = new ChatRoomSelectionDialog( + RosterView.this.getViewSite().getShell(), m); + dialog.setBlockOnOpen(true); + + dialog.open(); + } + } } }; - addGroupAction.setText("Add Group..."); - addGroupAction.setToolTipText("Add group"); - addGroupAction.setEnabled(false); - addGroupAction.setImageDescriptor(ImageDescriptor + openChatRoomAction.setText("Enter Chatroom."); + openChatRoomAction.setToolTipText("Enter a chatroom."); + openChatRoomAction.setImageDescriptor(ImageDescriptor .createFromURL(UiPlugin.getDefault().find( new Path(ADDGROUP_ICON)))); - */ + openChatRoomAction.setEnabled(false); /* - addBuddyAction = new Action() { - public void run() { - // XXX addUserToGroup(null); - } - }; - addBuddyAction.setText("Add Buddy..."); - addBuddyAction.setToolTipText("Add buddy"); - addBuddyAction.setEnabled(false); - addBuddyAction.setImageDescriptor(ImageDescriptor - .createFromURL(UiPlugin.getDefault().find( - new Path(ADDBUDDY_ICON)))); - */ + * addGroupAction = new Action() { public void run() { // handle add + * group operation here String defaultNewGroupName = "New Group"; + * InputDialog input = new InputDialog(viewer.getControl() .getShell(), + * "Add Group", "Please enter the name of the group to be added", + * defaultNewGroupName, new IInputValidator() { public String + * isValid(String newText) { if (newText == null || newText.length() == + * 0) { return "New group name cannot be empty"; } else { String[] + * groupNames = getGroupNames(); for (int i = 0; i < groupNames.length; + * i++) { if (groupNames[i].equals(newText)) { return "A group named '" + + * newText + "' already exists. Please choose another name"; } } } + * return null; } }); input.open(); String result = input.getValue(); // + * Now add the group // XXX addGroup(result); } }; + * addGroupAction.setText("Add Group..."); + * addGroupAction.setToolTipText("Add group"); + * addGroupAction.setEnabled(false); + * addGroupAction.setImageDescriptor(ImageDescriptor + * .createFromURL(UiPlugin.getDefault().find( new + * Path(ADDGROUP_ICON)))); + */ + /* + * addBuddyAction = new Action() { public void run() { // XXX + * addUserToGroup(null); } }; addBuddyAction.setText("Add Buddy..."); + * addBuddyAction.setToolTipText("Add buddy"); + * addBuddyAction.setEnabled(false); + * addBuddyAction.setImageDescriptor(ImageDescriptor + * .createFromURL(UiPlugin.getDefault().find( new + * Path(ADDBUDDY_ICON)))); + */ } protected ChatWindow openChatWindowForTarget(ID targetID) { @@ -971,22 +1013,26 @@ public class RosterView extends ViewPart { window = (ChatWindow) chatThreads.get(targetID); if (window == null) { window = makeChatWindowForTarget(targetID); - if (window != null) window.open(); + if (window != null) + window.open(); } else { if (!window.hasFocus()) { window.openAndFlash(); } } - if (window != null) window.setStatus("chat with " + targetID.getName()); + if (window != null) + window.setStatus("chat with " + targetID.getName()); } return window; } protected ChatWindow makeChatWindowForTarget(ID targetID) { UserAccount account = getAccountForUser(targetID); - if (account == null) return null; + if (account == null) + return null; ChatWindow window = new ChatWindow(RosterView.this, targetID.getName(), - getWindowInitText(targetID), account.getUser(), new User(targetID)); + getWindowInitText(targetID), account.getUser(), new User( + targetID)); window.create(); chatThreads.put(targetID, window); return window; @@ -1021,7 +1067,7 @@ public class RosterView extends ViewPart { refreshView(); } } - + public void handlePresence(ID groupID, ID userID, IPresence presence) { IRosterEntry entry = new RosterEntry(groupID, userID, null, presence); handleRosterEntry(groupID, entry); @@ -1029,18 +1075,22 @@ public class RosterView extends ViewPart { protected UserAccount getAccountForUser(ID userID) { ViewContentProvider vcp = (ViewContentProvider) viewer - .getContentProvider(); - if (vcp == null) return null; + .getContentProvider(); + if (vcp == null) + return null; TreeBuddy buddy = vcp.findBuddyWithUserID(userID); - if (buddy == null) return null; + if (buddy == null) + return null; UserAccount account = getAccount(buddy.getServiceID()); return account; } - + protected ILocalInputHandler getHandlerForUser(ID userID) { UserAccount account = getAccountForUser(userID); - if (account == null) return null; - else return account.getInputHandler(); + if (account == null) + return null; + else + return account.getInputHandler(); } public Object getAdapter(Class clazz) { @@ -1069,7 +1119,7 @@ public class RosterView extends ViewPart { public void updatePresence(ID userID, IPresence presence) { ILocalInputHandler inputHandler = getHandlerForUser(userID); if (inputHandler != null) { - inputHandler.updatePresence(userID, presence); + inputHandler.updatePresence(userID, presence); } else System.err.println("updatePresence("+userID+","+presence+")"); } @@ -1118,16 +1168,17 @@ public class RosterView extends ViewPart { public void addAccount(ID account, IUser user, ILocalInputHandler handler) { if (account != null) { - addAccount(new UserAccount(account,user,handler)); + addAccount(new UserAccount(account, user, handler)); setToolbarEnabled(true); } } protected void setToolbarEnabled(boolean enabled) { disconnectAction.setEnabled(enabled); - //chatAction.setEnabled(enabled); - //addGroupAction.setEnabled(enabled); - //addBuddyAction.setEnabled(enabled); + openChatRoomAction.setEnabled(enabled); + // chatAction.setEnabled(enabled); + // addGroupAction.setEnabled(enabled); + // addBuddyAction.setEnabled(enabled); } public void accountDeparted(ID serviceID) { @@ -1137,14 +1188,16 @@ public class RosterView extends ViewPart { } } - protected void disposeAllChatWindowsForAccount(UserAccount account, String status) { + protected void disposeAllChatWindowsForAccount(UserAccount account, + String status) { synchronized (chatThreads) { for (Iterator i = chatThreads.values().iterator(); i.hasNext();) { ChatWindow window = (ChatWindow) i.next(); ID userID = window.getLocalUser().getID(); UserAccount userAccount = getAccountForUser(userID); if (userAccount != null) { - if (userAccount.getServiceID().equals(account.getServiceID())) { + if (userAccount.getServiceID().equals( + account.getServiceID())) { window.setDisposed(status); i.remove(); } @@ -1186,7 +1239,7 @@ public class RosterView extends ViewPart { ViewContentProvider vcp = (ViewContentProvider) viewer .getContentProvider(); if (vcp != null) { - vcp.addGroup(svcID,name); + vcp.addGroup(svcID, name); refreshView(); } } @@ -1211,9 +1264,11 @@ public class RosterView extends ViewPart { protected void handleAccountDeparted(UserAccount account) { removeAllRosterEntriesForAccount(account); - disposeAllChatWindowsForAccount(account,"Disconnected from server. Chat is inactive"); + disposeAllChatWindowsForAccount(account, + "Disconnected from server. Chat is inactive"); accounts.remove(account.getServiceID()); - if (accounts.size() == 0) setToolbarEnabled(false); + if (accounts.size() == 0) + setToolbarEnabled(false); } public void handleSetRosterEntry(ID groupID, IRosterEntry entry) { @@ -1230,4 +1285,12 @@ public class RosterView extends ViewPart { refreshView(); } } + + public IPresenceContainer getPresenceContainer() { + return presenceContainer; + } + + public void setPresenceContainer(IPresenceContainer presenceContainer) { + this.presenceContainer = presenceContainer; + } }
\ No newline at end of file |
