KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > gui > logdisplay > LogRecordPanel


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.core.gui.logdisplay;
17
18 import java.awt.BorderLayout JavaDoc;
19 import java.util.logging.LogRecord JavaDoc;
20
21 import javax.swing.JDialog JavaDoc;
22 import javax.swing.JFrame JavaDoc;
23 import javax.swing.JLabel JavaDoc;
24 import javax.swing.JPanel JavaDoc;
25 import javax.swing.JScrollPane JavaDoc;
26 import javax.swing.JTextArea JavaDoc;
27
28 import org.frapuccino.awt.WindowsUtil;
29
30 import com.jgoodies.forms.builder.DefaultFormBuilder;
31 import com.jgoodies.forms.layout.FormLayout;
32
33 /**
34  * A detailed view of a log record.
35  * @author redsolo
36  */

37 public class LogRecordPanel extends JPanel JavaDoc {
38
39     private LogRecord JavaDoc logRecord;
40
41     /**
42      * Creates a panel for the record.
43      *
44      * @param record the log record to display.
45      */

46     public LogRecordPanel(LogRecord JavaDoc record) {
47         super();
48         logRecord = record;
49         initComponents();
50     }
51
52     /**
53      * Inits the components.
54      */

55     private void initComponents() {
56
57         JPanel JavaDoc main = new JPanel JavaDoc();
58
59         FormLayout layout = new FormLayout("right:pref, 3dlu, pref:grow, 7dlu, right:pref, 3dlu, pref:grow", //"right:max(40dlu;pref),3dlu,
60
"");
61         DefaultFormBuilder builder = new DefaultFormBuilder(layout, main);
62
63         builder.appendSeparator("Details");
64
65         String JavaDoc source;
66         if (logRecord.getSourceClassName() == null) {
67             source = "Unknown";
68         } else {
69             source = logRecord.getSourceClassName() + "." + logRecord.getSourceMethodName() + "()";
70         }
71         builder.append("Source:", new JLabel JavaDoc(source), 5);
72
73         builder.append("Time:", new JLabel JavaDoc(Long.toString(logRecord.getMillis())));
74         builder.append("level:", new JLabel JavaDoc(logRecord.getLevel().toString()));
75
76         builder.append("Thread:", new JLabel JavaDoc(Integer.toString(logRecord.getThreadID())));
77         builder.append("Seq nr:", new JLabel JavaDoc(Long.toString(logRecord.getSequenceNumber())));
78
79         builder.appendSeparator("Message");
80
81         JTextArea JavaDoc area = new JTextArea JavaDoc(logRecord.getMessage());
82         area.setLineWrap(true);
83         area.setRows(5);
84         area.setEditable(false);
85         builder.append(new JScrollPane JavaDoc(area), 7);
86
87         Throwable JavaDoc thrown = logRecord.getThrown();
88         if (thrown != null) {
89             builder.appendSeparator("Exception");
90             StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
91
92             StackTraceElement JavaDoc[] stackTrace = thrown.getStackTrace();
93             for (int i = 0; i < stackTrace.length; i++) {
94                 buffer.append(stackTrace[i]);
95                 buffer.append("\n");
96             }
97             area = new JTextArea JavaDoc(buffer.toString());
98             area.setLineWrap(true);
99             area.setRows(5);
100             area.setEditable(false);
101             builder.append(new JScrollPane JavaDoc(area), 7);
102         }
103
104         setLayout(new BorderLayout JavaDoc());
105         add(main, BorderLayout.CENTER);
106     }
107
108     /**
109      * Shows the record panel in a dialog.
110      * @param owner owner to jframe.
111      * @param record the log record to display.
112      */

113     public static void showRecord(JFrame JavaDoc owner, LogRecord JavaDoc record) {
114         JDialog JavaDoc dialog = new JDialog JavaDoc(owner, "Log record", false);
115         dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
116         dialog.getContentPane().setLayout(new BorderLayout JavaDoc());
117         dialog.getContentPane().add(new LogRecordPanel(record), BorderLayout.CENTER);
118         dialog.pack();
119         dialog.setVisible(true);
120         WindowsUtil.centerInScreen(dialog);
121     }
122 }
123
Popular Tags