Newer
Older
/* LogViewer.java
*
* created: Wed Aug 30 2000
*
* This file is part of Artemis
*
* Copyright (C) 2000 Genome Research Limited
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/LogViewer.java,v 1.2 2007-02-28 15:50:56 tjc Exp $
*/
package uk.ac.sanger.artemis.components;
import uk.ac.sanger.artemis.*;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;
import java.io.*;
/**
* A class for viewing log messages in a FileViewer component.
*
* @author Kim Rutherford <kmr@sanger.ac.uk>
* @version $Id: LogViewer.java,v 1.2 2007-02-28 15:50:56 tjc Exp $
public class LogViewer extends AppenderSkeleton implements Logger
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/** The FileViewer that is used to show the messages. */
private FileViewer file_viewer = null;
/**
* Create a new, empty LogViewer component.
**/
public LogViewer()
{
}
/**
* Send the given String to the log.
**/
public void log(final String message)
{
maybeMakeViewer();
file_viewer.appendString(message);
}
/**
* Read from the given Reader and send it to the log.
**/
public void log(final Reader reader)
throws IOException
{
maybeMakeViewer();
file_viewer.appendFile(reader);
}
/**
* Call setVisible() on the FileViewer that this object contains.
**/
public void setVisible(final boolean flag)
{
maybeMakeViewer();
file_viewer.setVisible(flag);
}
/**
* If file_viewer is null make a FileViewer and assign it to file_viewer.
**/
private void maybeMakeViewer()
{
if (file_viewer == null)
{
file_viewer = new FileViewer("Log Viewer", false)
{
/** */
private static final long serialVersionUID = 1L;
public void dispose()
{
// if the FileViewer is deleted we want to know
file_viewer = null;
super.dispose();
}
};
file_viewer.pack();
}
}
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
protected void append(LoggingEvent e)
{
String message = this.layout.format(e);
FileViewer fv = ((LogViewer)Splash.getLogger()).getFileViewer();
if(fv != null &&
maxLogLines < fv.getTextArea().getLineCount())
fv.getTextArea().setText("");
Splash.getLogger().log(message);
}
public void close()
{
}
public boolean requiresLayout()
{
return true;
}
public int getMaxLogLines()
{
return maxLogLines;
}
public void setMaxLogLines(int maxLogLines)
{
this.maxLogLines = maxLogLines;
}
public FileViewer getFileViewer()
{
return this.file_viewer;
}