Пример #1
0
  private void hideOfflineUsers() {

    int i = 0;
    if (OfflineUsers.isSelected()) {
      final ContactList contactList = SparkManager.getWorkspace().getContactList();
      i = 0;
      for (CheckNode node : nodes) {
        if (contactList.getContactItemByDisplayName(node.toString()).getPresence().getType()
            == Presence.Type.unavailable) {
          if (node.getParent() != null) {
            TreeNode parent = node.getParent();
            TreeNode[] path =
                ((DefaultTreeModel) checkTree.getTree().getModel()).getPathToRoot(parent);
            ((DefaultTreeModel) checkTree.getTree().getModel()).removeNodeFromParent(node);
            checkTree.getTree().setSelectionPath(new TreePath(path));
            NodesGroups.add(new ArrayList<Object>());
            NodesGroups.get(i).add(parent);
            NodesGroups.get(i).add(node);
            i++;
          }
        }
      }
      for (int x = 0; x < groupNodes.size(); x++) {
        if (groupNodes.get(x).toString().equals(Res.getString("group.offline"))) {
          OfflineGroup = x;
          TreeNode parent = groupNodes.get(x).getParent();
          TreeNode[] path =
              ((DefaultTreeModel) checkTree.getTree().getModel()).getPathToRoot(parent);
          ((DefaultTreeModel) checkTree.getTree().getModel())
              .removeNodeFromParent(groupNodes.get(x));
          checkTree.getTree().setSelectionPath(new TreePath(path));
        }
      }
    } else {
      i = 0;
      DefaultMutableTreeNode child = groupNodes.get(OfflineGroup);
      ((DefaultTreeModel) checkTree.getTree().getModel())
          .insertNodeInto(child, rosterNode, rosterNode.getChildCount());
      TreeNode[] path =
          ((DefaultTreeModel) checkTree.getTree().getModel()).getPathToRoot(rosterNode);
      checkTree.getTree().expandPath(new TreePath(path));
      checkTree.expandTree();
      for (CheckNode node : nodes) {
        if (node.getParent() == null) {
          child = (CheckNode) NodesGroups.get(i).get(1);
          ((DefaultTreeModel) checkTree.getTree().getModel())
              .insertNodeInto(
                  child,
                  ((CheckNode) NodesGroups.get(i).get(0)),
                  ((CheckNode) NodesGroups.get(i).get(0)).getChildCount());
          path = ((DefaultTreeModel) checkTree.getTree().getModel()).getPathToRoot(node);
          checkTree.getTree().expandPath(new TreePath(path));
          checkTree.expandTree();
          i++;
        }
      }
    }
  }