Ignore:
Timestamp:
24/08/10 12:02:11 (21 months ago)
Author:
Stephen Rankin
Message:

Added show failed nodes feature. ref#236.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/applications/NXvalidate/src/org/nexusformat/nxvalidate/TreeUtils.java

    r1510 r1519  
    2121 * For further information, see <http://www.neutron.anl.gov/NeXus/> 
    2222 * 
    23  * TextPaneStyle.java 
     23 * TreeUtils.java 
    2424 * 
    2525 */ 
     
    2727 
    2828import java.io.File; 
     29import java.util.ArrayList; 
     30import java.util.Enumeration; 
    2931import javax.swing.JTree; 
    3032import javax.swing.tree.TreePath; 
     
    4345        } 
    4446 
     47        ArrayList<NXNodeMapper> nodes = new ArrayList<NXNodeMapper>(); 
     48        ArrayList<TreePath> paths = new ArrayList<TreePath>(); 
    4549        NXNodeMapper baseNode = getBaseNode(tree); 
    46         NXNodeMapper node = null; 
    47          
    48         int rows = tree.getRowCount(); 
    49  
    50         for (int i = 0; i < rows; ++i) { 
    51             node = (NXNodeMapper) tree.getPathForRow(i).getLastPathComponent(); 
    52             System.out.println("Node Name: " + node.toString() + ": " + node.getBadNode()); 
    53         } 
     50 
     51        if (baseNode==null) { 
     52            return; 
     53        } 
     54 
     55        Enumeration children = baseNode.children(); 
     56        NXNodeMapper tmpNode = null; 
     57 
     58        NXNodeMapper parent = null; 
     59        TreePath path = null; 
     60        ArrayList<NXNodeMapper> tmpPath = null; 
     61        ArrayList<NXNodeMapper> tmpPath2 = null; 
     62        nodes.add(baseNode); 
     63 
     64        while (children.hasMoreElements()) { 
     65 
     66            tmpNode = (NXNodeMapper)children.nextElement(); 
     67            nodes.add(tmpNode); 
     68            nodes.addAll(getSubNodes(tmpNode)); 
     69 
     70        } 
     71 
     72        for (int i = 0; i < nodes.size(); ++i) { 
     73            
     74           nodes.get(i).checkBadNode(); 
     75            
     76           if(nodes.get(i).getBadNode()){ 
     77 
     78               tmpPath = new ArrayList<NXNodeMapper>(); 
     79               //tmpPath.add(nodes.get(i)); 
     80 
     81               parent = (NXNodeMapper)nodes.get(i).getParent(); 
     82 
     83               while(!parent.toString().equals(baseNode.toString()) && parent!=null){ 
     84                   tmpPath.add(parent); 
     85                   parent = (NXNodeMapper)parent.getParent(); 
     86               } 
     87               tmpPath.add(baseNode); 
     88               tmpPath.add((NXNodeMapper)baseNode.getParent()); 
     89                
     90               tmpPath2 = new ArrayList<NXNodeMapper>(); 
     91                
     92               int number = tmpPath.size() -1; 
     93               for(int j = 0; j < tmpPath.size();++j){ 
     94                   tmpPath2.add(tmpPath.get(number -j)); 
     95               } 
     96 
     97               paths.add(new TreePath(tmpPath2.toArray())); 
     98               tree.expandPath(new TreePath(tmpPath2.toArray())); 
     99           } 
     100        } 
     101 
     102    } 
     103 
     104    private ArrayList<NXNodeMapper> getSubNodes(NXNodeMapper node){ 
     105 
     106        ArrayList<NXNodeMapper> nodes = new ArrayList<NXNodeMapper>(); 
     107        NXNodeMapper tmpNode = null; 
     108 
     109        Enumeration children = node.children(); 
     110 
     111        while (children.hasMoreElements()) { 
     112             
     113            tmpNode = (NXNodeMapper)children.nextElement(); 
     114            nodes.add(tmpNode); 
     115            nodes.addAll(getSubNodes(tmpNode)); 
     116             
     117        } 
     118 
     119        return nodes; 
    54120 
    55121    } 
Note: See TracChangeset for help on using the changeset viewer.