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: ParseExceptionHandler.java,v 1.10 2006/02/10 14:15:31 tomcopeland Exp $
18   */
19  
20  public class ParseExceptionHandler extends JDialog implements ActionListener {
21      private Exception exc;
22      private JTextArea errorArea;
23      private JButton okBtn;
24  
25      /***
26       * creates the dialog
27       *
28       * @param parent dialog's parent
29       * @param exc    exception to be handled
30       */
31      public ParseExceptionHandler(JFrame parent, Exception exc) {
32          super(parent, NLS.nls("COMPILE_ERROR.DIALOG.TITLE"), true);
33          this.exc = exc;
34          init();
35      }
36  
37      private void init() {
38          errorArea = new JTextArea();
39          errorArea.setEditable(false);
40          errorArea.setText(exc.getMessage() + "\n");
41          getContentPane().setLayout(new BorderLayout());
42          JPanel messagePanel = new JPanel(new BorderLayout());
43          messagePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(),
44                  BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
45                          NLS.nls("COMPILE_ERROR.PANEL.TITLE"))));
46          messagePanel.add(new JScrollPane(errorArea), BorderLayout.CENTER);
47          getContentPane().add(messagePanel, BorderLayout.CENTER);
48          JPanel btnPane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
49          okBtn = new JButton(NLS.nls("COMPILE_ERROR.OK_BUTTON.CAPTION"));
50          okBtn.addActionListener(this);
51          btnPane.add(okBtn);
52          getRootPane().setDefaultButton(okBtn);
53          getContentPane().add(btnPane, BorderLayout.SOUTH);
54          pack();
55          setLocationRelativeTo(getParent());
56          setVisible(true);
57      }
58  
59      /***
60       * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
61       */
62      public void actionPerformed(ActionEvent e) {
63          if (e.getSource() == okBtn) {
64              dispose();
65          }
66      }
67  }