KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > rcp > exceptionhandler > dialog > ThrowableHandlerDetailArea


1 /*
2  * Created on Nov 10, 2004
3  * by Alexander Bieber
4  *
5  */

6 package com.nightlabs.rcp.exceptionhandler.dialog;
7
8 import java.io.PrintWriter JavaDoc;
9 import java.io.StringWriter JavaDoc;
10
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.layout.GridData;
13 import org.eclipse.swt.layout.GridLayout;
14 import org.eclipse.swt.widgets.Composite;
15 import org.eclipse.swt.widgets.Text;
16
17 /**
18  * @author Alexander Bieber
19  */

20 public class ThrowableHandlerDetailArea extends Composite {
21
22     private Text textAreaStackTrace = null;
23     public ThrowableHandlerDetailArea(Composite parent, int style) {
24         super(parent, style);
25         initialize();
26     }
27     private void initialize() {
28         GridData gridDataTextArea = new GridData(GridData.FILL_BOTH);
29         textAreaStackTrace = new Text(this, SWT.MULTI | SWT.V_SCROLL | SWT.READ_ONLY);
30         this.setLayout(new GridLayout());
31         gridDataTextArea.grabExcessHorizontalSpace = true;
32         gridDataTextArea.grabExcessVerticalSpace = true;
33         gridDataTextArea.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
34         textAreaStackTrace.setForeground(new org.eclipse.swt.graphics.Color(org.eclipse.swt.widgets.Display.getDefault(), 240, 0, 0));
35         textAreaStackTrace.setLayoutData(gridDataTextArea);
36         this.setSize(new org.eclipse.swt.graphics.Point(426,200));
37     }
38     
39     private Throwable JavaDoc error = null;
40     public void setThrowable(Throwable JavaDoc err) {
41         this.error = err;
42         if (error != null) {
43             StringWriter JavaDoc sw = new StringWriter JavaDoc();
44             PrintWriter JavaDoc pw = new PrintWriter JavaDoc(sw);
45             error.printStackTrace(pw);
46             textAreaStackTrace.setText(sw.toString());
47 //
48
// StringBuffer stackTraceBuf = new StringBuffer();
49
// err.printStackTrace();
50
// ByteArrayOutputStream os = new ByteArrayOutputStream();
51
// StackTraceElement[] stackTrace = error.getStackTrace();
52
// stackTraceBuf.append(err+" in:\n");
53
// for(int i=0; i<stackTrace.length; i++) {
54
// stackTraceBuf.append(" "+stackTrace[i].toString()+"\n");
55
// }
56
// Throwable cause = err.getCause();
57
// while (cause != null) {
58
// stackTraceBuf.append("Caused by "+cause+" in:\n");
59
// stackTrace = cause.getStackTrace();
60
// for(int i=0; (i<stackTrace.length) && (i<5); i++) {
61
// stackTraceBuf.append(" "+stackTrace[i].toString()+"\n");
62
// }
63
// cause = cause.getCause();
64
// }
65
// textAreaStackTrace.setText(stackTraceBuf.toString());
66
}
67     }
68 }
69
Popular Tags