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  }