From 2b84ec20dec8c114f6c3fb76aabfb436a91f94bd Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Mon, 24 Apr 2006 22:05:10 +0000 Subject: [PATCH] re-login after auth. failed contains wrong account id. - Fixed --- .../impl/gui/main/i18n/messages.properties | 2 +- .../impl/gui/main/login/LoginManager.java | 15 +++++++++++---- .../impl/gui/main/login/LoginWindow.java | 17 +++++++---------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/i18n/messages.properties b/src/net/java/sip/communicator/impl/gui/main/i18n/messages.properties index ce716f541..17f99e5b2 100644 --- a/src/net/java/sip/communicator/impl/gui/main/i18n/messages.properties +++ b/src/net/java/sip/communicator/impl/gui/main/i18n/messages.properties @@ -5,7 +5,7 @@ all=All alwaysOnTop=Always on top appearance=Appearance application=Application -authenticationFailed=Authentication failed +authenticationFailed=Authentication failed. The UIN or password you entered are not valid. callList=Call list cancel=Cancel close=Close diff --git a/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java b/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java index 5a1e18b41..191f885b9 100644 --- a/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java @@ -38,6 +38,8 @@ public class LoginManager implements RegistrationStateChangeListener { private BundleContext bc; private Hashtable accountManagersMap = new Hashtable(); + + private Hashtable loginWindows = new Hashtable(); private AccountID accountID; @@ -125,6 +127,8 @@ private void showLoginWindow(MainFrame parent, accoundManager); loginWindow.setLoginManager(this); + this.loginWindows.put(protocolName, loginWindow); + loginWindow.showWindow(); } @@ -133,9 +137,12 @@ private class MySecurityAuthority implements SecurityAuthority { } public void registrationStateChanged(RegistrationStateChangeEvent evt) { - + String protocolName = evt.getProvider().getProtocolName(); + if(evt.getNewState().equals(RegistrationState.REGISTERED)){ - + + ((LoginWindow)this.loginWindows.get(protocolName)).dispose(); + Map supportedOpSets = evt.getProvider().getSupportedOperationSets(); @@ -158,8 +165,8 @@ else if(evt.getNewState() Messages.getString("authenticationFailed"), Messages.getString("authenticationFailed"), JOptionPane.ERROR_MESSAGE); - - this.showLoginWindows(this.mainFrame); + + ((LoginWindow)this.loginWindows.get(protocolName)).showWindow(); } else if(evt.getNewState() .equals(RegistrationState.CONNECTION_FAILED)){ diff --git a/src/net/java/sip/communicator/impl/gui/main/login/LoginWindow.java b/src/net/java/sip/communicator/impl/gui/main/login/LoginWindow.java index 8e0ad0b7b..83310c4bf 100644 --- a/src/net/java/sip/communicator/impl/gui/main/login/LoginWindow.java +++ b/src/net/java/sip/communicator/impl/gui/main/login/LoginWindow.java @@ -38,6 +38,7 @@ import net.java.sip.communicator.impl.gui.main.utils.AntialiasingManager; import net.java.sip.communicator.impl.gui.main.utils.Constants; import net.java.sip.communicator.impl.gui.main.utils.ImageLoader; +import net.java.sip.communicator.service.protocol.AccountID; import net.java.sip.communicator.service.protocol.AccountManager; public class LoginWindow extends JDialog @@ -73,7 +74,6 @@ public class LoginWindow extends JDialog public LoginWindow( MainFrame mainFrame, String protocolName, AccountManager accountManager){ - super(mainFrame); this.accountManager = accountManager; @@ -102,9 +102,8 @@ public LoginWindow( MainFrame mainFrame, } private void init() { - - this.uinComboBox = new JComboBox(this.accountManager - .getRegisteredAcounts().toArray()); + + this.uinComboBox = new JComboBox(); this.passwdField.setEchoChar('*'); this.uinComboBox.setEditable(true); @@ -145,10 +144,10 @@ private void setTransparent(boolean transparent){ } public void showWindow(){ - - this.setWindowLocation(); - - this.setVisible(true); + if(!this.isVisible()){ + this.setWindowLocation(); + this.setVisible(true); + } } private void setWindowLocation(){ @@ -176,8 +175,6 @@ public void actionPerformed(ActionEvent e) { this.loginManager.login(accountManager, uinComboBox.getSelectedItem().toString(), new String(passwdField.getPassword())); - - this.dispose(); } else{ this.dispose();