diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomProviderWrapper.java b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomProviderWrapper.java index cb59a1349..9d10d17f1 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomProviderWrapper.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatRoomProviderWrapper.java @@ -14,18 +14,18 @@ import net.java.sip.communicator.util.*; /** - * * @author Yana Stamcheva */ public class ChatRoomProviderWrapper { - private Logger logger = Logger.getLogger(ChatRoomProviderWrapper.class); + private static final Logger logger + = Logger.getLogger(ChatRoomProviderWrapper.class); - private ProtocolProviderService protocolProvider; + private final ProtocolProviderService protocolProvider; - private ChatRoomWrapper systemRoomWrapper; + private final ChatRoomWrapper systemRoomWrapper; - private List chatRoomsOrderedCopy + private final List chatRoomsOrderedCopy = new LinkedList(); /** @@ -39,11 +39,10 @@ public ChatRoomProviderWrapper( ProtocolProviderService protocolProvider) { this.protocolProvider = protocolProvider; + + String accountIdService = protocolProvider.getAccountID().getService(); this.systemRoomWrapper - = new ChatRoomWrapper( - this, - protocolProvider.getAccountID().getService(), - protocolProvider.getAccountID().getService()); + = new ChatRoomWrapper(this, accountIdService, accountIdService); } /** @@ -200,7 +199,7 @@ public int indexOf(ChatRoomWrapper chatRoomWrapper) * * @param protocolProvider the protocol provider for the account to * synchronize - * @param opSet the multi user chat operation set, which give us access to + * @param opSet the multi-user chat operation set, which give us access to * chat room server */ public void synchronizeProvider() diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ConferenceChatManager.java b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ConferenceChatManager.java index 2f82d64ff..92b71e858 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ConferenceChatManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ConferenceChatManager.java @@ -962,13 +962,7 @@ public void serviceChanged(ServiceEvent event) } else if (event.getType() == ServiceEvent.UNREGISTERING) { - ChatRoomProviderWrapper chatRoomProvider - = chatRoomList.findServerWrapperFromProvider(protocolProvider); - - if (chatRoomProvider != null) - { - chatRoomList.removeChatProvider(chatRoomProvider); - } + chatRoomList.removeChatProvider(protocolProvider); } } diff --git a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomList.java b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomList.java index d4cfb7dd2..c61ff03ee 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomList.java +++ b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomList.java @@ -29,7 +29,7 @@ public class ChatRoomList /** * The list containing all chat servers and rooms. */ - private final Vector providersList + private final List providersList = new Vector(); /** @@ -48,13 +48,11 @@ public void loadList() if (serRefs == null) return; - for (int i = 0; i < serRefs.length; i ++) + for (ServiceReference serRef : serRefs) { - ServiceReference protocolProviderRef = serRefs[i]; - ProtocolProviderService protocolProvider - = (ProtocolProviderService) GuiActivator - .bundleContext.getService(protocolProviderRef); + = (ProtocolProviderService) + GuiActivator.bundleContext.getService(serRef); Object multiUserChatOpSet = protocolProvider @@ -130,38 +128,49 @@ public void addChatProvider(ProtocolProviderService pps) * list. * * @param pps the ProtocolProviderService corresponding to the - * server to remove + * server to remove */ - public void removeChatProvider(ChatRoomProviderWrapper chatRoomProvider) + public void removeChatProvider(ProtocolProviderService pps) { + ChatRoomProviderWrapper wrapper = findServerWrapperFromProvider(pps); + + if (wrapper != null) + removeChatProvider(wrapper); + } + + /** + * Removes the corresponding server and all related chat rooms from this + * list. + * + * @param chatRoomProvider the ChatRoomProviderWrapper + * corresponding to the server to remove + */ + private void removeChatProvider(ChatRoomProviderWrapper chatRoomProvider) + { + providersList.remove(chatRoomProvider); + ConfigurationService configService = GuiActivator.getConfigurationService(); - String prefix = "net.java.sip.communicator.impl.gui.accounts"; + String providerAccountUID + = chatRoomProvider + .getProtocolProvider().getAccountID().getAccountUniqueID(); - Iterator accountsIter = configService - .getPropertyNamesByPrefix(prefix, true).iterator(); - - while(accountsIter.hasNext()) + for (String accountRootPropName + : configService.getPropertyNamesByPrefix(prefix, true)) { - String accountRootPropName = accountsIter.next(); - String accountUID = configService.getString(accountRootPropName); - if(accountUID.equals(chatRoomProvider.getProtocolProvider() - .getAccountID().getAccountUniqueID())) + if(accountUID.equals(providerAccountUID)) { - List chatRooms = configService - .getPropertyNamesByPrefix( - accountRootPropName + ".chatRooms", true); - - Iterator chatRoomsIter = chatRooms.iterator(); + List chatRooms + = configService.getPropertyNamesByPrefix( + accountRootPropName + ".chatRooms", + true); - while(chatRoomsIter.hasNext()) + for (String chatRoomPropName : chatRooms) { - String chatRoomPropName = chatRoomsIter.next(); - configService.setProperty( chatRoomPropName + ".chatRoomName", null); @@ -234,9 +243,9 @@ public ChatRoomWrapper findChatRoomWrapperFromChatRoom(ChatRoom chatRoom) for (ChatRoomProviderWrapper provider : providersList) { ChatRoomWrapper systemRoomWrapper = provider.getSystemRoomWrapper(); + ChatRoom systemRoom = systemRoomWrapper.getChatRoom(); - if (systemRoomWrapper.getChatRoom() != null - && systemRoomWrapper.getChatRoom().equals(chatRoom)) + if ((systemRoom != null) && systemRoom.equals(chatRoom)) { return systemRoomWrapper; } @@ -248,7 +257,8 @@ public ChatRoomWrapper findChatRoomWrapperFromChatRoom(ChatRoom chatRoom) if (chatRoomWrapper != null) { // stored chatrooms has no chatroom, but their - // id is the same as the chatroom we are searching wrapper for + // id is the same as the chatroom we are searching wrapper + // for if(chatRoomWrapper.getChatRoom() == null) { chatRoomWrapper.setChatRoom(chatRoom); diff --git a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomListModel.java b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomListModel.java index 1db6d9bec..bf0ec6490 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomListModel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomListModel.java @@ -4,7 +4,6 @@ * Distributable under LGPL license. * See terms of license at gnu.org. */ - package net.java.sip.communicator.impl.gui.main.chatroomslist; import java.util.*; @@ -15,12 +14,12 @@ import net.java.sip.communicator.impl.gui.main.chat.conference.*; /** - * * @author Yana Stamcheva */ -public class ChatRoomListModel extends AbstractListModel +public class ChatRoomListModel + extends AbstractListModel { - private ChatRoomList chatRoomList; + private final ChatRoomList chatRoomList; public ChatRoomListModel() { 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 ff4bfb688..7b15dee01 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 @@ -35,9 +35,9 @@ public class LoginManager implements ServiceListener, RegistrationStateChangeListener { - private Logger logger = Logger.getLogger(LoginManager.class.getName()); + private final Logger logger = Logger.getLogger(LoginManager.class); - private MainFrame mainFrame; + private final MainFrame mainFrame; private boolean manuallyDisconnected = false; @@ -127,21 +127,20 @@ public void runLogin(MainFrame parent) */ public void registrationStateChanged(RegistrationStateChangeEvent evt) { + RegistrationState newState = evt.getNewState(); ProtocolProviderService protocolProvider = evt.getProvider(); - AccountID accountID = protocolProvider.getAccountID(); logger.trace("Protocol provider: " + protocolProvider + " changed its state to: " + evt.getNewState().getStateName()); - OperationSetPresence presence = mainFrame - .getProtocolPresenceOpSet(protocolProvider); - - OperationSetMultiUserChat multiUserChat = mainFrame - .getMultiUserChatOpSet(protocolProvider); - - if (evt.getNewState().equals(RegistrationState.REGISTERED)) + if (newState.equals(RegistrationState.REGISTERED)) { + OperationSetPresence presence = mainFrame + .getProtocolPresenceOpSet(protocolProvider); + OperationSetMultiUserChat multiUserChat = mainFrame + .getMultiUserChatOpSet(protocolProvider); + if (presence != null) { presence.setAuthorizationHandler(new AuthorizationHandlerImpl( @@ -155,8 +154,7 @@ public void registrationStateChanged(RegistrationStateChangeEvent evt) protocolProvider, multiUserChat); } } - else if (evt.getNewState().equals( - RegistrationState.AUTHENTICATION_FAILED)) + else if (newState.equals(RegistrationState.AUTHENTICATION_FAILED)) { if (evt.getReasonCode() == RegistrationStateChangeEvent .REASON_RECONNECTION_RATE_LIMIT_EXCEEDED) @@ -188,7 +186,7 @@ else if (evt.getReasonCode() == RegistrationStateChangeEvent logger.trace(evt.getReason()); } - else if (evt.getNewState().equals(RegistrationState.CONNECTION_FAILED)) + else if (newState.equals(RegistrationState.CONNECTION_FAILED)) { String msgText = GuiActivator.getResources().getI18NString( "service.gui.CONNECTION_FAILED_MSG", @@ -210,7 +208,7 @@ else if (evt.getNewState().equals(RegistrationState.CONNECTION_FAILED)) logger.trace(evt.getReason()); } - else if (evt.getNewState().equals(RegistrationState.EXPIRED)) + else if (newState.equals(RegistrationState.EXPIRED)) { String msgText = GuiActivator.getResources().getI18NString( "service.gui.CONNECTION_EXPIRED_MSG", @@ -223,7 +221,7 @@ else if (evt.getNewState().equals(RegistrationState.EXPIRED)) logger.error(evt.getReason()); } - else if (evt.getNewState().equals(RegistrationState.UNREGISTERED)) + else if (newState.equals(RegistrationState.UNREGISTERED)) { if (!manuallyDisconnected) { @@ -273,26 +271,6 @@ else if (evt.getReasonCode() == RegistrationStateChangeEvent } } - /** - * Returns the MainFrame. - * - * @return The MainFrame. - */ - public MainFrame getMainFrame() - { - return mainFrame; - } - - /** - * Sets the MainFrame. - * - * @param mainFrame The main frame. - */ - public void setMainFrame(MainFrame mainFrame) - { - this.mainFrame = mainFrame; - } - /** * Implements the ServiceListener method. Verifies whether the * passed event concerns a ProtocolProviderService and adds the @@ -302,16 +280,16 @@ public void setMainFrame(MainFrame mainFrame) */ public void serviceChanged(ServiceEvent event) { + ServiceReference serviceRef = event.getServiceReference(); + // if the event is caused by a bundle being stopped, we don't want to // know - if (event.getServiceReference().getBundle().getState() - == Bundle.STOPPING) + if (serviceRef.getBundle().getState() == Bundle.STOPPING) { return; } - Object service = GuiActivator.bundleContext.getService(event - .getServiceReference()); + Object service = GuiActivator.bundleContext.getService(serviceRef); // we don't care if the source service is not a protocol provider if (!(service instanceof ProtocolProviderService)) @@ -319,13 +297,14 @@ public void serviceChanged(ServiceEvent event) return; } - if (event.getType() == ServiceEvent.REGISTERED) + switch (event.getType()) { + case ServiceEvent.REGISTERED: this.handleProviderAdded((ProtocolProviderService) service); - } - else if (event.getType() == ServiceEvent.UNREGISTERING) - { + break; + case ServiceEvent.UNREGISTERING: this.handleProviderRemoved((ProtocolProviderService) service); + break; } }