diff --git a/core/src/main/groovy/com/muwire/core/chat/ChatClient.groovy b/core/src/main/groovy/com/muwire/core/chat/ChatClient.groovy index 12225fc8..e77fc180 100644 --- a/core/src/main/groovy/com/muwire/core/chat/ChatClient.groovy +++ b/core/src/main/groovy/com/muwire/core/chat/ChatClient.groovy @@ -110,6 +110,7 @@ class ChatClient implements Closeable { public void close() { connectThread?.interrupt() connection?.close() + eventBus.publish(new ChatConnectionEvent(status : ChatConnectionAttemptStatus.DISCONNECTED, persona : host)) } void ping() { diff --git a/core/src/main/groovy/com/muwire/core/chat/ChatConnectionAttemptStatus.java b/core/src/main/groovy/com/muwire/core/chat/ChatConnectionAttemptStatus.java index 8ef9b1ef..bd16ed90 100644 --- a/core/src/main/groovy/com/muwire/core/chat/ChatConnectionAttemptStatus.java +++ b/core/src/main/groovy/com/muwire/core/chat/ChatConnectionAttemptStatus.java @@ -1,5 +1,5 @@ package com.muwire.core.chat; public enum ChatConnectionAttemptStatus { - CONNECTING, SUCCESSFUL, REJECTED, FAILED + CONNECTING, SUCCESSFUL, REJECTED, FAILED, DISCONNECTED } diff --git a/gui/griffon-app/controllers/com/muwire/gui/ChatServerController.groovy b/gui/griffon-app/controllers/com/muwire/gui/ChatServerController.groovy index 195df6ed..f8607251 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/ChatServerController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/ChatServerController.groovy @@ -6,6 +6,8 @@ import griffon.inject.MVCMember import griffon.metadata.ArtifactProviderFor import javax.annotation.Nonnull +import com.muwire.core.chat.UIDisconnectChatEvent + @ArtifactProviderFor(GriffonController) class ChatServerController { @MVCMember @Nonnull @@ -13,5 +15,6 @@ class ChatServerController { @ControllerAction void disconnect() { + model.core.eventBus.publish(new UIDisconnectChatEvent(host : model.host)) } } \ No newline at end of file