I don't like this calling disconnect, as we're already disconnected.  Recommend separating that method into the method that actually disconnects (called from the dialog) and a method called cleanUpAfterDisconnect or something.