Index: src/org/openide/explorer/view/TreeTableView.java =================================================================== RCS file: /cvs/openide/src/org/openide/explorer/view/TreeTableView.java,v retrieving revision 1.41 diff -u -r1.41 TreeTableView.java --- src/org/openide/explorer/view/TreeTableView.java 14 Mar 2003 18:21:19 -0000 1.41 +++ src/org/openide/explorer/view/TreeTableView.java 26 Mar 2003 17:18:30 -0000 @@ -19,8 +19,7 @@ import javax.swing.table.*; import javax.swing.plaf.metal.MetalScrollBarUI; import javax.swing.border.Border; -import javax.swing.event.ChangeListener; -import javax.swing.event.ChangeEvent; +import javax.swing.event.*; import javax.swing.tree.*; import javax.accessibility.AccessibleContext; import java.beans.PropertyChangeEvent; @@ -252,6 +251,18 @@ // init listener & attach it to closing of managerListener = new TreePropertyListener(); tree.addTreeExpansionListener (managerListener); + + // add listener to sort a new expanded folders + tree.addTreeExpansionListener (new TreeExpansionListener () { + public void treeExpanded (TreeExpansionEvent event) { + if (event.getPath () != null) + getSortedNodeTreeModel ().sortChildren ((VisualizerNode)event.getPath ().getLastPathComponent ()); + } + + public void treeCollapsed (TreeExpansionEvent event) { + // ignore it + } + }); defaultActionListener = new PopupSupport(); treeTable.addFocusListener(defaultActionListener); @@ -832,7 +843,7 @@ } return sortedNodeTreeModel; } - + /* node tree model with added sorting support */ private class SortedNodeTreeModel extends NodeTreeModel { @@ -1046,33 +1057,15 @@ java.util.List list = new ArrayList(); Enumeration en = TreeTableView.this.tree.getExpandedDescendants( new TreePath( tn ) ); while ( en != null && en.hasMoreElements() ) { - list.add( (TreePath)en.nextElement() ); - } - - // sort whole tree - if (tn instanceof VisualizerNode) { - VisualizerNode root = (VisualizerNode)getRoot (); - // do sort around all - if (!root.isLeaf ()) { - sortSubNodes (root); - } + TreePath path = (TreePath)en.nextElement(); + // bugfix #32328, don't sort whole subtree but only expanded folders + sortChildren ((VisualizerNode)path.getLastPathComponent ()); + list.add( path ); } // expand again folders for (int i=0; i