View Javadoc

1   package net.sourceforge.pmd.util.viewer.gui;
2   
3   import net.sourceforge.pmd.util.viewer.model.ViewerModel;
4   import net.sourceforge.pmd.util.viewer.model.ViewerModelEvent;
5   import net.sourceforge.pmd.util.viewer.model.ViewerModelListener;
6   import net.sourceforge.pmd.util.viewer.util.NLS;
7   
8   import javax.swing.*;
9   import java.awt.*;
10  
11  
12  /***
13   * Panel for the XPath entry and editing
14   *
15   * @author Boris Gruschko ( boris at gruschko.org )
16   * @version $Id: XPathPanel.java,v 1.3 2004/04/15 18:21:58 tomcopeland Exp $
17   */
18  public class XPathPanel
19    extends JTabbedPane
20    implements ViewerModelListener
21  {
22    private ViewerModel model;
23    private JTextArea   xPathArea;
24  
25    /***
26     * Constructs the panel
27     *
28     * @param model model to refer to
29     */
30    public XPathPanel( ViewerModel model )
31    {
32      super( JTabbedPane.BOTTOM );
33  
34      this.model = model;
35  
36      init(  );
37    }
38  
39    private void init(  )
40    {
41      model.addViewerModelListener( this );
42  
43      xPathArea = new JTextArea(  );
44  
45      setBorder(
46        BorderFactory.createTitledBorder(
47          BorderFactory.createEtchedBorder(  ), NLS.nls( "XPATH.PANEL.TITLE" ) ) );
48  
49      add( new JScrollPane( xPathArea ), NLS.nls( "XPATH.PANEL.EXPRESSION" ) );
50      add( new EvaluationResultsPanel( model ), NLS.nls( "XPATH.PANEL.RESULTS" ) );
51  
52      setPreferredSize( new Dimension( -1, 200 ) );
53    }
54  
55    /***
56     * retrieves the XPath expression typed into the text area
57     *
58     * @return XPath expression
59     */
60    public String getXPathExpression(  )
61    {
62      return xPathArea.getText(  );
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_APPENDED :
73  
74          if ( e.getSource(  ) != this )
75          {
76            xPathArea.append( (String)e.getParameter(  ) );
77          }
78  
79          setSelectedIndex( 0 );
80  
81          break;
82  
83        case ViewerModelEvent.CODE_RECOMPILED :
84          setSelectedIndex( 0 );
85  
86          break;
87      }
88    }
89  }
90  
91  
92  /*
93   * $Log: XPathPanel.java,v $
94   * Revision 1.3  2004/04/15 18:21:58  tomcopeland
95   * Cleaned up imports with new version of IDEA; fixed some deprecated Ant junx
96   *
97   * Revision 1.2  2003/09/23 20:51:06  tomcopeland
98   * Cleaned up imports
99   *
100  * Revision 1.1  2003/09/23 20:32:42  tomcopeland
101  * Added Boris Gruschko's new AST/XPath viewer
102  *
103  * Revision 1.1  2003/09/24 01:33:03  bgr
104  * moved to a new package
105  *
106  * Revision 1.3  2003/09/24 00:40:35  bgr
107  * evaluation results browsing added
108  *
109  * Revision 1.2  2003/09/23 07:52:16  bgr
110  * menus added
111  *
112  * Revision 1.1  2003/09/22 05:21:54  bgr
113  * initial commit
114  *
115  */