private void removeClosedConversations() { UserDataWrapper foundUser = null; ArrayList<UserDataWrapper> usersToRemove = new ArrayList<UserDataWrapper>(); // Remove from the sidePanel, and make a list for (UserDataWrapper u : this.users) { foundUser = null; for (Conversation c : this.chatCollection.getVisibleConversations()) { if (c == u.getConversation()) { foundUser = u; break; } } if (foundUser == null) { foundUser = u; listPane.removeSidePanelUser(foundUser); usersToRemove.add(u); } } // Remove the users from the list for (UserDataWrapper u : usersToRemove) { this.users.remove(u); } listPane.updateUI(); return; }
/** * Adds new conversations to the list when the list is refreshed * * @throws XMPPException */ private void addNewConversationsToList() throws XMPPException { UserDataWrapper userWrapper = null; for (Conversation c : this.chatCollection.getVisibleConversations()) { userWrapper = null; for (UserDataWrapper u : this.users) { if (u.getConversation().getUser() != null) { u.getConversation().getUser().getTypingState(); } if (u.getConversation() == c) { userWrapper = u; break; } } if (userWrapper == null) { userWrapper = new UserDataWrapper(c, this.model); this.users.add(userWrapper); } if (!listPane.sidePanelUserExists(userWrapper)) { ImageIcon leafIcon = controller.getAvatarPicture(c.getUser()); listPane.addElement(userWrapper.toString(), leafIcon, userWrapper, new SelectListener()); } } // refreshes the list on the screen with the new data listPane.updateUI(); }