示例#1
0
  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;
  }
示例#2
0
  /**
   * 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();
  }