KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > swing > dialogs > ErrorDialog


1 /*
2  * Created on Aug 31, 2003
3  *
4  */

5 package net.sf.panoptes.swing.dialogs;
6
7 import java.awt.BorderLayout JavaDoc;
8 import java.awt.Frame JavaDoc;
9 import java.awt.HeadlessException JavaDoc;
10 import java.awt.event.ActionEvent JavaDoc;
11 import java.awt.event.ActionListener JavaDoc;
12 import java.io.ByteArrayOutputStream JavaDoc;
13 import java.io.PrintStream JavaDoc;
14
15 import javax.swing.JButton JavaDoc;
16 import javax.swing.JFrame JavaDoc;
17 import javax.swing.JLabel JavaDoc;
18 import javax.swing.JPanel JavaDoc;
19 import javax.swing.JScrollPane JavaDoc;
20 import javax.swing.JTextArea JavaDoc;
21 import javax.swing.UIManager JavaDoc;
22
23 import net.sf.panoptes.swing.DefaultFormBuilder;
24
25 import com.jgoodies.forms.layout.FormLayout;
26
27 /**
28  *
29  *
30  * @author Dag Liodden
31  * @version 0.1
32  */

33 public class ErrorDialog extends BannerDialog {
34
35     JTextArea JavaDoc stackTrace;
36
37     /**
38      * @param owner
39      * @param title
40      * @param shortDescription
41      * @param fullDescription
42      * @param bannerIcon
43      * @param modal
44      * @throws HeadlessException
45      */

46     public ErrorDialog(
47         Frame JavaDoc owner,
48         String JavaDoc title,
49         String JavaDoc shortDescription,
50         String JavaDoc fullDescription,
51         Throwable JavaDoc throwable)
52         throws HeadlessException JavaDoc {
53         super(
54             owner,
55             title,
56             shortDescription,
57             fullDescription,
58             "icons/banners/error.gif",
59             true,
60             false);
61         FormLayout layout = new FormLayout("right:max(20dlu;pref), 3dlu, 170dlu:grow, 7dlu", "");
62         DefaultFormBuilder builder = new DefaultFormBuilder(layout);
63         builder.setDefaultDialogBorder();
64
65         if (throwable != null) {
66             String JavaDoc message = throwable.getMessage();
67             if (message == null || message.equals(""))
68                 message = "No message";
69             builder.append("Message:", new JLabel JavaDoc(message));
70
71             builder.appendSeparator("Details:");
72             builder.appendRow("fill:max(200dlu;min)");
73             stackTrace = new JTextArea JavaDoc(buildStackTrace(throwable));
74             stackTrace.setEditable(false);
75             builder.append(new JScrollPane JavaDoc(stackTrace), 4);
76         }
77         setMainPanel(builder.getPanel());
78
79         JPanel JavaDoc buttonPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
80         JButton JavaDoc btnOK = new JButton JavaDoc("OK");
81         btnOK.addActionListener(new ActionListener JavaDoc() {
82             public void actionPerformed(ActionEvent JavaDoc e) {
83                 setVisible(false);
84             }
85         });
86         buttonPanel.add(btnOK, BorderLayout.EAST);
87         setButtonPanel(buttonPanel);
88     }
89
90     /**
91      * @param throwable
92      * @return
93      */

94     private String JavaDoc buildStackTrace(Throwable JavaDoc throwable) {
95         ByteArrayOutputStream JavaDoc bout = new ByteArrayOutputStream JavaDoc();
96         PrintStream JavaDoc s = new PrintStream JavaDoc(bout);
97         throwable.printStackTrace(s);
98         return bout.toString();
99
100     }
101
102     public static void main(String JavaDoc[] args) {
103         try {
104             UIManager.setLookAndFeel("com.jgoodies.plaf.plastic.PlasticXPLookAndFeel");
105         } catch (Exception JavaDoc e) {
106             e.printStackTrace();
107         }
108
109         ErrorDialog d =
110             new ErrorDialog(
111                 new JFrame JavaDoc(),
112                 "An error occured",
113                 "Error",
114                 "An error occured during...",
115                 new Exception JavaDoc());
116         d.pack();
117         d.show();
118         System.exit(0);
119     }
120
121 }
122
Popular Tags