View Javadoc
1 package net.sourceforge.pmd.util.viewer.model; 2 3 import net.sourceforge.pmd.ast.SimpleNode; 4 5 import javax.swing.event.TreeModelEvent; 6 import javax.swing.event.TreeModelListener; 7 import javax.swing.tree.TreeModel; 8 import javax.swing.tree.TreePath; 9 import java.util.Vector; 10 11 12 /*** 13 * Model for the AST Panel Tree component 14 * 15 * @author Boris Gruschko ( boris at gruschko.org ) 16 * @version $Id: ASTModel.java,v 1.2 2003/09/23 20:51:06 tomcopeland Exp $ 17 */ 18 public class ASTModel 19 implements TreeModel 20 { 21 private SimpleNode root; 22 private Vector listeners = new Vector( 1 ); 23 24 /*** 25 * creates the tree model 26 * 27 * @param root tree's root 28 */ 29 public ASTModel( SimpleNode root ) 30 { 31 this.root = root; 32 } 33 34 /*** 35 * @see javax.swing.tree.TreeModel#getChild(java.lang.Object, int) 36 */ 37 public Object getChild( Object parent, int index ) 38 { 39 return ( (SimpleNode)parent ).jjtGetChild( index ); 40 } 41 42 /*** 43 * @see javax.swing.tree.TreeModel#getChildCount(java.lang.Object) 44 */ 45 public int getChildCount( Object parent ) 46 { 47 return ( (SimpleNode)parent ).jjtGetNumChildren( ); 48 } 49 50 /*** 51 * @see javax.swing.tree.TreeModel#getIndexOfChild(java.lang.Object, 52 * java.lang.Object) 53 */ 54 public int getIndexOfChild( Object parent, Object child ) 55 { 56 SimpleNode node = ( (SimpleNode)parent ); 57 58 for ( int i = 0; i < node.jjtGetNumChildren( ); i++ ) 59 if ( node.jjtGetChild( i ).equals( child ) ) 60 { 61 return i; 62 } 63 64 return -1; 65 } 66 67 /*** 68 * @see javax.swing.tree.TreeModel#isLeaf(java.lang.Object) 69 */ 70 public boolean isLeaf( Object node ) 71 { 72 return ( (SimpleNode)node ).jjtGetNumChildren( ) == 0; 73 } 74 75 /*** 76 * @see javax.swing.tree.TreeModel#getRoot() 77 */ 78 public Object getRoot( ) 79 { 80 return root; 81 } 82 83 /*** 84 * @see javax.swing.tree.TreeModel#valueForPathChanged(javax.swing.tree.TreePath, 85 * java.lang.Object) 86 */ 87 public void valueForPathChanged( TreePath path, Object newValue ) 88 { 89 throw new UnsupportedOperationException( ); 90 } 91 92 /*** 93 * @see javax.swing.tree.TreeModel#addTreeModelListener(javax.swing.event.TreeModelListener) 94 */ 95 public void addTreeModelListener( TreeModelListener l ) 96 { 97 listeners.add( l ); 98 } 99 100 /*** 101 * @see javax.swing.tree.TreeModel#removeTreeModelListener(javax.swing.event.TreeModelListener) 102 */ 103 public void removeTreeModelListener( TreeModelListener l ) 104 { 105 listeners.remove( l ); 106 } 107 108 protected void fireTreeModelEvent( TreeModelEvent e ) 109 { 110 for ( int i = 0; i < listeners.size( ); i++ ) 111 { 112 ( (TreeModelListener)listeners.elementAt( i ) ).treeNodesChanged( e ); 113 } 114 } 115 } 116 117 118 /* 119 * $Log: ASTModel.java,v $ 120 * Revision 1.2 2003/09/23 20:51:06 tomcopeland 121 * Cleaned up imports 122 * 123 * Revision 1.1 2003/09/23 20:32:42 tomcopeland 124 * Added Boris Gruschko's new AST/XPath viewer 125 * 126 * Revision 1.1 2003/09/24 01:33:03 bgr 127 * moved to a new package 128 * 129 * Revision 1.1 2003/09/24 00:40:35 bgr 130 * evaluation results browsing added 131 * 132 */

This page was automatically generated by Maven