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$
    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(-1, 200));
    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((String) e.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  }