diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java index c12e3b86a..9901fc71c 100755 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -23,13 +23,11 @@ import net.java.sip.communicator.impl.gui.main.chat.conference.*; import net.java.sip.communicator.impl.gui.main.chatroomslist.*; import net.java.sip.communicator.impl.gui.main.contactlist.*; -import net.java.sip.communicator.impl.gui.main.contactlist.ContactListPanel.*; import net.java.sip.communicator.impl.gui.main.login.*; import net.java.sip.communicator.impl.gui.main.menus.*; import net.java.sip.communicator.impl.gui.main.presence.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.service.configuration.*; -import net.java.sip.communicator.service.configuration.PropertyVetoException; import net.java.sip.communicator.service.contactlist.*; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.protocol.event.*; @@ -146,8 +144,8 @@ private void init() */ private void setInitialBounds() { - this.setSize(200, 450); - this.contactListPanel.setPreferredSize(new Dimension(300, 600)); + this.setSize(200, 450); + this.contactListPanel.setPreferredSize(new Dimension(300, 600)); this.contactListPanel.setMinimumSize(new Dimension(80, 200)); this.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width @@ -576,8 +574,8 @@ private class GUIContactPresenceStatusListener implements ContactPresenceStatusListener { public void contactPresenceStatusChanged( - ContactPresenceStatusChangeEvent evt) { - + ContactPresenceStatusChangeEvent evt) + { ContactListPanel clistPanel = tabbedPane.getContactListPanel(); Contact sourceContact = evt.getSourceContact(); @@ -672,62 +670,7 @@ public void windowClosed(WindowEvent e) //System.exit(0); } } - } - - /** - * Saves the last status for all accounts. This information is used - * on loging. Each time user logs in he's logged with the same status - * as he was the last time before closing the application. - */ - public void saveStatusInformation(ProtocolProviderService protocolProvider, - String statusName) - { - ConfigurationService configService - = GuiActivator.getConfigurationService(); - - String prefix = "net.java.sip.communicator.impl.gui.accounts"; - - List accounts = configService - .getPropertyNamesByPrefix(prefix, true); - - boolean savedAccount = false; - Iterator accountsIter = accounts.iterator(); - - while(accountsIter.hasNext()) { - String accountRootPropName - = (String) accountsIter.next(); - - String accountUID - = configService.getString(accountRootPropName); - - if(accountUID.equals(protocolProvider - .getAccountID().getAccountUniqueID())) { - - configService.setProperty( - accountRootPropName + ".lastAccountStatus", - statusName); - - savedAccount = true; - } - } - - if(!savedAccount) { - String accNodeName - = "acc" + Long.toString(System.currentTimeMillis()); - - String accountPackage - = "net.java.sip.communicator.impl.gui.accounts." - + accNodeName; - - configService.setProperty(accountPackage, - protocolProvider.getAccountID().getAccountUniqueID()); - - configService.setProperty( - accountPackage+".lastAccountStatus", - statusName); - } - - } + } /** * Returns the class that manages user login. diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java index 7b13f3dd2..969e20b0f 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java @@ -176,7 +176,7 @@ else if (protocolProvider.getRegistrationState() } } - mainFrame.saveStatusInformation( + saveStatusInformation( protocolProvider, status.getStatusName()); break; diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java index 9356d3033..bd6ae776e 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java @@ -118,15 +118,14 @@ public void actionPerformed(ActionEvent e) JMenuItem menuItem = (JMenuItem) e.getSource(); String itemName = menuItem.getName(); - if(itemName.equals(Constants.ONLINE_STATUS)) { + if(itemName.equals(Constants.ONLINE_STATUS)) + { if(!protocolProvider.isRegistered()) { this.mainFrame.getLoginManager().login(protocolProvider); } - - mainFrame.saveStatusInformation( - protocolProvider, Constants.ONLINE_STATUS); } - else { + else + { if( !protocolProvider.getRegistrationState() .equals(RegistrationState.UNREGISTERED) && !protocolProvider.getRegistrationState() @@ -143,10 +142,10 @@ public void actionPerformed(ActionEvent e) + " due to the following exception: " + e1); } } - - mainFrame.saveStatusInformation( - protocolProvider, Constants.OFFLINE_STATUS); } + + saveStatusInformation( + protocolProvider, Constants.OFFLINE_STATUS); } diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/StatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/StatusSelectorBox.java index 27030d11d..4097edea9 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/StatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/StatusSelectorBox.java @@ -7,8 +7,11 @@ package net.java.sip.communicator.impl.gui.main.presence; import java.awt.image.*; +import java.util.*; +import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.customcontrols.*; +import net.java.sip.communicator.service.configuration.*; import net.java.sip.communicator.service.protocol.*; public abstract class StatusSelectorBox extends SIPCommMenu @@ -19,5 +22,60 @@ public void updateStatus(){} public int getAccountIndex(){return -1;} - public void setAccountIndex(int index){} + public void setAccountIndex(int index){} + + /** + * Saves the last status for all accounts. This information is used + * on loging. Each time user logs in he's logged with the same status + * as he was the last time before closing the application. + */ + protected void saveStatusInformation(ProtocolProviderService protocolProvider, + String statusName) + { + ConfigurationService configService + = GuiActivator.getConfigurationService(); + + String prefix = "net.java.sip.communicator.impl.gui.accounts"; + + List accounts = configService + .getPropertyNamesByPrefix(prefix, true); + + boolean savedAccount = false; + Iterator accountsIter = accounts.iterator(); + + while(accountsIter.hasNext()) { + String accountRootPropName + = (String) accountsIter.next(); + + String accountUID + = configService.getString(accountRootPropName); + + if(accountUID.equals(protocolProvider + .getAccountID().getAccountUniqueID())) { + + configService.setProperty( + accountRootPropName + ".lastAccountStatus", + statusName); + + savedAccount = true; + } + } + + if(!savedAccount) { + String accNodeName + = "acc" + Long.toString(System.currentTimeMillis()); + + String accountPackage + = "net.java.sip.communicator.impl.gui.accounts." + + accNodeName; + + configService.setProperty(accountPackage, + protocolProvider.getAccountID().getAccountUniqueID()); + + configService.setProperty( + accountPackage+".lastAccountStatus", + statusName); + } + + } }