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.JList;
9 import javax.swing.JPanel;
10 import javax.swing.JScrollPane;
11 import javax.swing.ListSelectionModel;
12 import javax.swing.event.ListSelectionEvent;
13 import javax.swing.event.ListSelectionListener;
14 import java.awt.BorderLayout;
15 import java.util.Vector;
16
17
18 /***
19 * A panel showing XPath expression evaluation results
20 *
21 * @author Boris Gruschko ( boris at gruschko.org )
22 * @version $Id: EvaluationResultsPanel.java,v 1.2 2003/09/23 20:51:06 tomcopeland Exp $
23 */
24 public class EvaluationResultsPanel
25 extends JPanel
26 implements ViewerModelListener
27 {
28 private ViewerModel model;
29 private JList list;
30
31 /***
32 * constructs the panel
33 *
34 * @param model model to refer to
35 */
36 public EvaluationResultsPanel( ViewerModel model )
37 {
38 super( new BorderLayout( ) );
39
40 this.model = model;
41
42 init( );
43 }
44
45 private void init( )
46 {
47 model.addViewerModelListener( this );
48
49 list = new JList( );
50 list.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
51
52 list.addListSelectionListener(
53 new ListSelectionListener( )
54 {
55 public void valueChanged( ListSelectionEvent e )
56 {
57 if ( list.getSelectedValue( ) != null )
58 {
59 model.selectNode(
60 (SimpleNode)list.getSelectedValue( ), EvaluationResultsPanel.this );
61 }
62 }
63 } );
64
65 add( new JScrollPane( list ), BorderLayout.CENTER );
66 }
67
68 /***
69 * @see org.gruschko.pmd.viewer.model.ViewerModelListener#viewerModelChanged(org.gruschko.pmd.viewer.model.ViewerModelEvent)
70 */
71 public void viewerModelChanged( ViewerModelEvent e )
72 {
73 switch ( e.getReason( ) )
74 {
75 case ViewerModelEvent.PATH_EXPRESSION_EVALUATED :
76
77 if ( e.getSource( ) != this )
78 {
79 list.setListData( new Vector( model.getLastEvaluationResults( ) ) );
80 }
81
82 break;
83
84 case ViewerModelEvent.CODE_RECOMPILED :
85 list.setListData( new Vector( 0 ) );
86
87 break;
88 }
89 }
90 }
91
92
93 /*
94 * $Log: EvaluationResultsPanel.java,v $
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 */
This page was automatically generated by Maven