XPathPanel.java
01 package net.sourceforge.pmd.util.viewer.gui;
02 
03 
04 import net.sourceforge.pmd.util.viewer.model.ViewerModel;
05 import net.sourceforge.pmd.util.viewer.model.ViewerModelEvent;
06 import net.sourceforge.pmd.util.viewer.model.ViewerModelListener;
07 import net.sourceforge.pmd.util.viewer.util.NLS;
08 
09 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 6275 2008-06-25 01:21:49Z rgustav $
18  */
19 
20 public class XPathPanel extends JTabbedPane implements ViewerModelListener {
21     private ViewerModel model;
22     private JTextArea xPathArea;
23 
24     /**
25      * Constructs the panel
26      *
27      @param model model to refer to
28      */
29     public XPathPanel(ViewerModel model) {
30         super(JTabbedPane.BOTTOM);
31         this.model = model;
32         init();
33     }
34 
35     private void init() {
36         model.addViewerModelListener(this);
37         xPathArea = new JTextArea();
38         setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), NLS.nls("XPATH.PANEL.TITLE")));
39         add(new JScrollPane(xPathArea), NLS.nls("XPATH.PANEL.EXPRESSION"));
40         add(new EvaluationResultsPanel(model), NLS.nls("XPATH.PANEL.RESULTS"));
41         setPreferredSize(new Dimension(-1200));
42     }
43 
44     public String getXPathExpression() {
45         return xPathArea.getText();
46     }
47 
48     /**
49      @see ViewerModelListener#viewerModelChanged(ViewerModelEvent)
50      */
51     public void viewerModelChanged(ViewerModelEvent e) {
52         switch (e.getReason()) {
53             case ViewerModelEvent.PATH_EXPRESSION_APPENDED:
54                 if (e.getSource() != this) {
55                     xPathArea.append((Stringe.getParameter());
56                 }
57                 setSelectedIndex(0);
58                 break;
59             case ViewerModelEvent.CODE_RECOMPILED:
60                 setSelectedIndex(0);
61                 break;
62             default:
63           // Do nothing
64                 break;
65         }
66     }
67 }