[Ubermq-commits] jms/src/com/ubermq/jms/ui/admin AdminViewer.java,1.4,1.5 ServerTreeNode.java,1.3,1.
Brought to you by:
jimmyp
From: <ji...@us...> - 2002-12-06 15:22:19
|
Update of /cvsroot/ubermq/jms/src/com/ubermq/jms/ui/admin In directory sc8-pr-cvs1:/tmp/cvs-serv8041/src/com/ubermq/jms/ui/admin Modified Files: AdminViewer.java ServerTreeNode.java Log Message: UI modifications Index: AdminViewer.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/ui/admin/AdminViewer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AdminViewer.java 30 Oct 2002 18:02:51 -0000 1.4 --- AdminViewer.java 6 Dec 2002 15:22:16 -0000 1.5 *************** *** 64,77 **** tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); serverTree.setSelectionModel(tsm); - serverTree.setPreferredSize(new Dimension(300, 0)); - - // tree icons - UIManager.put("Tree.expandedIcon", downArrowIcon); - UIManager.put("Tree.collapsedIcon", rightArrowIcon); // construct message pane messagePane = new JEditorPane("text/html", ""); messagePane.setEditable(false); - messagePane.setPreferredSize(new Dimension(400, 0)); // construct the right hand msg pane --- 64,71 ---- Index: ServerTreeNode.java =================================================================== RCS file: /cvsroot/ubermq/jms/src/com/ubermq/jms/ui/admin/ServerTreeNode.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ServerTreeNode.java 30 Oct 2002 18:02:51 -0000 1.3 --- ServerTreeNode.java 6 Dec 2002 15:22:16 -0000 1.4 *************** *** 131,164 **** throws RemoteException { Collection c = admin.getConnections(); - Set alreadyInTree = new HashSet(), willRemove = new HashSet(); ! // remove fm the tree any that are not present in ! // the list we just got back ! Iterator iter = ((children != null) ? children : Collections.EMPTY_LIST).iterator(); while (iter.hasNext()) { ! ConnectionTreeNode ctn = (ConnectionTreeNode)iter.next(); ! if (!c.contains(ctn.getAdmin())) ! willRemove.add(ctn); ! else ! alreadyInTree.add(ctn.getAdmin()); } ! // remove em ! iter = willRemove.iterator(); while (iter.hasNext()) { ConnectionTreeNode ctn = (ConnectionTreeNode)iter.next(); treeModel.removeNodeFromParent(ctn); } ! // now insert ones that are indeed present in the new list ! iter = c.iterator(); while (iter.hasNext()) { ! ConnectionAdmin ca = (ConnectionAdmin)iter.next(); ! if (!alreadyInTree.contains(ca)) ! treeModel.insertNodeInto(new ConnectionTreeNode(ca), this, 0); } } --- 131,179 ---- throws RemoteException { + // get a new set of connections Collection c = admin.getConnections(); ! // build a map of the new tree by name. ! Map newTree = new HashMap(); ! Iterator iter = c.iterator(); while (iter.hasNext()) { ! ConnectionAdmin ca = (ConnectionAdmin)iter.next(); ! newTree.put(ca.getName(), ca); } ! // build a map of what we already have, indexed by name. ! Map alreadyInTree = new HashMap(); ! iter = ((children != null) ? children : Collections.EMPTY_LIST).iterator(); while (iter.hasNext()) { ConnectionTreeNode ctn = (ConnectionTreeNode)iter.next(); + alreadyInTree.put(ctn.getAdmin().getName(), ctn); + } + + // cross reference to get a set of deletions and additions + Set insertions = new HashSet(), deletions = new HashSet(); + insertions.addAll(newTree.keySet()); + insertions.removeAll(alreadyInTree.keySet()); + deletions.addAll(alreadyInTree.keySet()); + deletions.removeAll(newTree.keySet()); + + System.out.println("removing " + deletions); + System.out.println("inserting " + insertions); + + // do deletions... + iter = deletions.iterator(); + while (iter.hasNext()) + { + ConnectionTreeNode ctn = (ConnectionTreeNode)alreadyInTree.get(iter.next()); treeModel.removeNodeFromParent(ctn); } ! // do insertions ! iter = insertions.iterator(); while (iter.hasNext()) { ! ConnectionAdmin ca = (ConnectionAdmin)newTree.get(iter.next()); ! treeModel.insertNodeInto(new ConnectionTreeNode(ca), this, 0); } } |