Fixes to address bug 226608
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java
index 7d660d4..dad725f 100644
--- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java
+++ b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java
@@ -13,8 +13,7 @@
import org.eclipse.core.runtime.Assert;
import org.eclipse.ecf.core.*;
-import org.eclipse.ecf.core.events.IContainerDisconnectedEvent;
-import org.eclipse.ecf.core.events.IContainerEvent;
+import org.eclipse.ecf.core.events.*;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.util.ECFException;
import org.eclipse.ecf.internal.presence.ui.Activator;
@@ -65,7 +64,7 @@
IContainerListener containerListener = new IContainerListener() {
public void handleEvent(IContainerEvent event) {
- if (event instanceof IContainerDisconnectedEvent) {
+ if (event instanceof IContainerDisconnectedEvent || event instanceof IContainerEjectedEvent) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
MultiRosterAccount.this.multiRosterView.rosterAccountDisconnected(MultiRosterAccount.this);
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerUI.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerUI.java
index 511ea34..6d67073 100644
--- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerUI.java
+++ b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerUI.java
@@ -100,9 +100,8 @@
public void handleEvent(final IContainerEvent evt) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
- if (evt instanceof IContainerDisconnectedEvent) {
- IContainerDisconnectedEvent cd = (IContainerDisconnectedEvent) evt;
- final ID departedContainerID = cd.getTargetID();
+ if (evt instanceof IContainerDisconnectedEvent || evt instanceof IContainerEjectedEvent) {
+ final ID departedContainerID = ((evt instanceof IContainerDisconnectedEvent) ? ((IContainerDisconnectedEvent) evt).getTargetID() : ((IContainerEjectedEvent) evt).getTargetID());
ID connectedID = targetID;
if (connectedID == null || connectedID.equals(departedContainerID)) {
chatroomview.disconnected();
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerView.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerView.java
index b91fbcc..40b97c8 100644
--- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerView.java
+++ b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/chatroom/ChatRoomManagerView.java
@@ -20,8 +20,7 @@
import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.Assert;
import org.eclipse.ecf.core.IContainerListener;
-import org.eclipse.ecf.core.events.IContainerDisconnectedEvent;
-import org.eclipse.ecf.core.events.IContainerEvent;
+import org.eclipse.ecf.core.events.*;
import org.eclipse.ecf.core.identity.*;
import org.eclipse.ecf.core.security.ConnectContextFactory;
import org.eclipse.ecf.core.user.IUser;
@@ -631,7 +630,7 @@
});
chatRoomContainer.addListener(new IContainerListener() {
public void handleEvent(IContainerEvent evt) {
- if (evt instanceof IContainerDisconnectedEvent) {
+ if (evt instanceof IContainerDisconnectedEvent || evt instanceof IContainerEjectedEvent) {
chatroom.disconnected();
}
}