⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astmodel.java

📁 检查Java程序漏洞
💻 JAVA
字号:
package net.sourceforge.pmd.util.viewer.model;

import net.sourceforge.pmd.ast.SimpleNode;

import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import java.util.Vector;


/**
 * Model for the AST Panel Tree component
 *
 * @author Boris Gruschko ( boris at gruschko.org )
 * @version $Id: ASTModel.java,v 1.2 2003/09/23 20:51:06 tomcopeland Exp $
 */
public class ASTModel
  implements TreeModel
{
  private SimpleNode root;
  private Vector     listeners = new Vector( 1 );

  /**
   * creates the tree model
   *
   * @param root tree's root
   */
  public ASTModel( SimpleNode root )
  {
    this.root = root;
  }

  /**
   * @see javax.swing.tree.TreeModel#getChild(java.lang.Object, int)
   */
  public Object getChild( Object parent, int index )
  {
    return ( (SimpleNode)parent ).jjtGetChild( index );
  }

  /**
   * @see javax.swing.tree.TreeModel#getChildCount(java.lang.Object)
   */
  public int getChildCount( Object parent )
  {
    return ( (SimpleNode)parent ).jjtGetNumChildren(  );
  }

  /**
   * @see javax.swing.tree.TreeModel#getIndexOfChild(java.lang.Object,
   *      java.lang.Object)
   */
  public int getIndexOfChild( Object parent, Object child )
  {
    SimpleNode node = ( (SimpleNode)parent );

    for ( int i = 0; i < node.jjtGetNumChildren(  ); i++ )
      if ( node.jjtGetChild( i ).equals( child ) )
      {
        return i;
      }

    return -1;
  }

  /**
   * @see javax.swing.tree.TreeModel#isLeaf(java.lang.Object)
   */
  public boolean isLeaf( Object node )
  {
    return ( (SimpleNode)node ).jjtGetNumChildren(  ) == 0;
  }

  /**
   * @see javax.swing.tree.TreeModel#getRoot()
   */
  public Object getRoot(  )
  {
    return root;
  }

  /**
   * @see javax.swing.tree.TreeModel#valueForPathChanged(javax.swing.tree.TreePath,
   *      java.lang.Object)
   */
  public void valueForPathChanged( TreePath path, Object newValue )
  {
    throw new UnsupportedOperationException(  );
  }

  /**
   * @see javax.swing.tree.TreeModel#addTreeModelListener(javax.swing.event.TreeModelListener)
   */
  public void addTreeModelListener( TreeModelListener l )
  {
    listeners.add( l );
  }

  /**
   * @see javax.swing.tree.TreeModel#removeTreeModelListener(javax.swing.event.TreeModelListener)
   */
  public void removeTreeModelListener( TreeModelListener l )
  {
    listeners.remove( l );
  }

  protected void fireTreeModelEvent( TreeModelEvent e )
  {
    for ( int i = 0; i < listeners.size(  ); i++ )
    {
      ( (TreeModelListener)listeners.elementAt( i ) ).treeNodesChanged( e );
    }
  }
}


/*
 * $Log: ASTModel.java,v $ * Revision 1.2  2003/09/23 20:51:06  tomcopeland * Cleaned up imports *
 * Revision 1.1  2003/09/23 20:32:42  tomcopeland
 * Added Boris Gruschko's new AST/XPath viewer
 *
 * Revision 1.1  2003/09/24 01:33:03  bgr
 * moved to a new package
 *
 * Revision 1.1  2003/09/24 00:40:35  bgr
 * evaluation results browsing added
 *
 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -