View Javadoc

1   package net.sourceforge.pmd.util.viewer.gui;
2   
3   import net.sourceforge.pmd.ast.SimpleNode;
4   import net.sourceforge.pmd.util.viewer.model.ViewerModel;
5   import net.sourceforge.pmd.util.viewer.model.ViewerModelEvent;
6   import net.sourceforge.pmd.util.viewer.model.ViewerModelListener;
7   
8   import javax.swing.*;
9   import javax.swing.event.ListSelectionEvent;
10  import javax.swing.event.ListSelectionListener;
11  import java.awt.*;
12  import java.util.Vector;
13  
14  
15  /***
16   * A panel showing XPath expression evaluation results
17   *
18   * @author Boris Gruschko ( boris at gruschko.org )
19   * @version $Id: EvaluationResultsPanel.java,v 1.3 2004/04/15 18:21:58 tomcopeland Exp $
20   */
21  public class EvaluationResultsPanel
22    extends JPanel
23    implements ViewerModelListener
24  {
25    private ViewerModel model;
26    private JList       list;
27  
28    /***
29     * constructs the panel
30     *
31     * @param model model to refer to
32     */
33    public EvaluationResultsPanel( ViewerModel model )
34    {
35      super( new BorderLayout(  ) );
36  
37      this.model = model;
38  
39      init(  );
40    }
41  
42    private void init(  )
43    {
44      model.addViewerModelListener( this );
45  
46      list = new JList(  );
47      list.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
48  
49      list.addListSelectionListener(
50        new ListSelectionListener(  )
51        {
52          public void valueChanged( ListSelectionEvent e )
53          {
54            if ( list.getSelectedValue(  ) != null )
55            {
56              model.selectNode(
57                (SimpleNode)list.getSelectedValue(  ), EvaluationResultsPanel.this );
58            }
59          }
60        } );
61  
62      add( new JScrollPane( list ), BorderLayout.CENTER );
63    }
64  
65    /***
66     * @see org.gruschko.pmd.viewer.model.ViewerModelListener#viewerModelChanged(org.gruschko.pmd.viewer.model.ViewerModelEvent)
67     */
68    public void viewerModelChanged( ViewerModelEvent e )
69    {
70      switch ( e.getReason(  ) )
71      {
72        case ViewerModelEvent.PATH_EXPRESSION_EVALUATED :
73  
74          if ( e.getSource(  ) != this )
75          {
76            list.setListData( new Vector( model.getLastEvaluationResults(  ) ) );
77          }
78  
79          break;
80  
81        case ViewerModelEvent.CODE_RECOMPILED :
82          list.setListData( new Vector( 0 ) );
83  
84          break;
85      }
86    }
87  }
88  
89  
90  /*
91   * $Log: EvaluationResultsPanel.java,v $
92   * Revision 1.3  2004/04/15 18:21:58  tomcopeland
93   * Cleaned up imports with new version of IDEA; fixed some deprecated Ant junx
94   *
95   * Revision 1.2  2003/09/23 20:51:06  tomcopeland
96   * Cleaned up imports
97   *
98   * Revision 1.1  2003/09/23 20:32:42  tomcopeland
99   * Added Boris Gruschko's new AST/XPath viewer
100  *
101  * Revision 1.1  2003/09/24 01:33:03  bgr
102  * moved to a new package
103  *
104  * Revision 1.1  2003/09/24 00:40:35  bgr
105  * evaluation results browsing added
106  *
107  */