View Javadoc

1   package net.sourceforge.pmd.util.viewer.gui;
2   
3   
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   import net.sourceforge.pmd.util.viewer.util.NLS;
8   
9   import javax.swing.*;
10  import java.awt.Dimension;
11  
12  
13  /***
14   * Panel for the XPath entry and editing
15   *
16   * @author Boris Gruschko ( boris at gruschko.org )
17   * @version $Id: XPathPanel.java,v 1.9 2005/09/02 19:36:22 tomcopeland Exp $
18   */
19  
20  public class XPathPanel
21  
22          extends JTabbedPane
23  
24          implements ViewerModelListener {
25  
26      private ViewerModel model;
27  
28      private JTextArea xPathArea;
29  
30  
31      /***
32       * Constructs the panel
33       *
34       * @param model model to refer to
35       */
36  
37      public XPathPanel(ViewerModel model) {
38  
39          super(JTabbedPane.BOTTOM);
40  
41  
42          this.model = model;
43  
44  
45          init();
46  
47      }
48  
49  
50      private void init() {
51  
52          model.addViewerModelListener(this);
53  
54  
55          xPathArea = new JTextArea();
56  
57  
58          setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), NLS.nls("XPATH.PANEL.TITLE")));
59  
60  
61          add(new JScrollPane(xPathArea), NLS.nls("XPATH.PANEL.EXPRESSION"));
62  
63          add(new EvaluationResultsPanel(model), NLS.nls("XPATH.PANEL.RESULTS"));
64  
65  
66          setPreferredSize(new Dimension(-1, 200));
67  
68      }
69  
70  
71      /***
72       * retrieves the XPath expression typed into the text area
73       *
74       * @return XPath expression
75       */
76  
77      public String getXPathExpression() {
78  
79          return xPathArea.getText();
80  
81      }
82  
83  
84      /***
85       * @see ViewerModelListener#viewerModelChanged(ViewerModelEvent)
86       */
87  
88      public void viewerModelChanged(ViewerModelEvent e) {
89  
90          switch (e.getReason()) {
91  
92              case ViewerModelEvent.PATH_EXPRESSION_APPENDED:
93  
94  
95                  if (e.getSource() != this) {
96  
97                      xPathArea.append((String) e.getParameter());
98  
99                  }
100 
101 
102                 setSelectedIndex(0);
103 
104 
105                 break;
106 
107 
108             case ViewerModelEvent.CODE_RECOMPILED:
109 
110                 setSelectedIndex(0);
111 
112 
113                 break;
114 
115         }
116 
117     }
118 
119 }