1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.gui;
21
22 import javax.swing.SwingUtilities;
23
24 import org.xnap.XNap;
25 import org.xnap.util.Preferences;
26 import org.xnap.util.UncaughtExceptionListener;
27
28 public class ErrorHandler implements UncaughtExceptionListener
29 {
30
31
32
33
34
35 private static Preferences prefs = Preferences.getInstance();
36
37 private ErrorDialog dialog;
38
39
40
41 public ErrorHandler()
42 {
43 }
44
45
46
47 /***
48 * @see xnap.util.UncaughtExceptionListener#uncaughtException(java.lang.Thread, java.lang.Throwable)
49 */
50 public void uncaughtException(final Thread t, final Throwable e)
51 {
52 if (Dialogs.getShowDialog("Error")) {
53 Runnable runner = new Runnable()
54 {
55 public void run()
56 {
57 if (dialog == null || dialog.isBusy()) {
58 dialog = new ErrorDialog(XNap.tr("An unknown problem has occured!"));
59 dialog.show((XNapFrame.getInstance() != null)
60 ? XNapFrame.getInstance()
61 : null);
62 }
63 dialog.add(t, e);
64 }
65 };
66 SwingUtilities.invokeLater(runner);
67 }
68 }
69
70 }