View Javadoc

    1   package net.sourceforge.pmd.util.viewer.gui;
    2
    3
    4   import net.sourceforge.pmd.util.viewer.util.NLS;
    5
    6   import javax.swing.*;
    7   import java.awt.BorderLayout;
    8   import java.awt.FlowLayout;
    9   import java.awt.event.ActionEvent;
    10  import java.awt.event.ActionListener;
    11
    12
    13  /**
    14   * handles parsing exceptions
    15   *
    16   * @author Boris Gruschko ( boris at gruschko.org )
    17   * @version $Id$
    18   */
    19
    20  public class ParseExceptionHandler extends JDialog implements ActionListener {
    21      private Exception exc;
    22      private JButton okBtn;
    23
    24      /**
    25       * creates the dialog
    26       *
    27       * @param parent dialog's parent
    28       * @param exc    exception to be handled
    29       */
    30      public ParseExceptionHandler(JFrame parent, Exception exc) {
    31          super(parent, NLS.nls("COMPILE_ERROR.DIALOG.TITLE"), true);
    32          this.exc = exc;
    33          init();
    34      }
    35
    36      private void init() {
    37      	JTextArea errorArea = new JTextArea();
    38          errorArea.setEditable(false);
    39          errorArea.setText(exc.getMessage() + "\n");
    40          getContentPane().setLayout(new BorderLayout());
    41          JPanel messagePanel = new JPanel(new BorderLayout());
    42          messagePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(),
    43                  BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
    44                          NLS.nls("COMPILE_ERROR.PANEL.TITLE"))));
    45          messagePanel.add(new JScrollPane(errorArea), BorderLayout.CENTER);
    46          getContentPane().add(messagePanel, BorderLayout.CENTER);
    47          JPanel btnPane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    48          okBtn = new JButton(NLS.nls("COMPILE_ERROR.OK_BUTTON.CAPTION"));
    49          okBtn.addActionListener(this);
    50          btnPane.add(okBtn);
    51          getRootPane().setDefaultButton(okBtn);
    52          getContentPane().add(btnPane, BorderLayout.SOUTH);
    53          pack();
    54          setLocationRelativeTo(getParent());
    55          setVisible(true);
    56      }
    57
    58      /**
    59       * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    60       */
    61      public void actionPerformed(ActionEvent e) {
    62          if (e.getSource() == okBtn) {
    63              dispose();
    64          }
    65      }
    66  }