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
15
16
17
18
19
20 public class ParseExceptionHandler extends JDialog implements ActionListener {
21 private Exception exc;
22 private JButton okBtn;
23
24
25
26
27
28
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
60
61 public void actionPerformed(ActionEvent e) {
62 if (e.getSource() == okBtn) {
63 dispose();
64 }
65 }
66 }