/* Copyright (C) 2009 Diego Darriba 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 */ package es.uvigo.darwin.xprottest.results; import es.uvigo.darwin.prottest.util.logging.ProtTestLogFormatter; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.io.Writer; import es.uvigo.darwin.xprottest.util.TextAreaAppender; import java.util.logging.Filter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.StreamHandler; /** * * @author Diego Darriba */ public class ErrorLogView extends javax.swing.JFrame { private static final long serialVersionUID = -2022588731545645833L; private PrintWriter errorWriter; private Handler logHandler; public Handler getLogHandler() { return logHandler; } /** Creates new form ErrorLogView */ public ErrorLogView() { initComponents(); errorWriter = new PrintWriter(new TextAreaAppender(errorTextArea)); logHandler = new StreamHandler(new OutputStream() { protected Writer _writer = errorWriter; protected String _encoding; private byte[] _buf=new byte[1]; @Override public void close() throws IOException { _writer.close(); _writer=null; _encoding=null; } @Override public void flush() throws IOException { _writer.flush(); } @Override public void write(byte[] b) throws IOException { if (_encoding==null) _writer.write(new String(b)); else _writer.write(new String(b,_encoding)); } @Override public void write(byte[] b, int off, int len) throws IOException { if (_encoding==null) _writer.write(new String(b,off,len)); else _writer.write(new String(b,off,len,_encoding)); } public synchronized void write(int b) throws IOException { _buf[0]=(byte)b; write(_buf); } }, new ProtTestLogFormatter()); logHandler.setFilter(new Filter(){ public boolean isLoggable(LogRecord lr) { return lr.getLevel().equals(Level.SEVERE); } }); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { errorScrollPane = new javax.swing.JScrollPane(); errorTextArea = new javax.swing.JTextArea(); org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(es.uvigo.darwin.xprottest.XProtTestApp.class).getContext().getResourceMap(ErrorLogView.class); setTitle(resourceMap.getString("Form.title")); // NOI18N setName("Form"); // NOI18N errorScrollPane.setName("errorScrollPane"); // NOI18N errorTextArea.setColumns(15); errorTextArea.setEditable(false); errorTextArea.setFont(resourceMap.getFont("errorTextArea.font")); // NOI18N errorTextArea.setRows(30); errorTextArea.setName("errorTextArea"); // NOI18N errorScrollPane.setViewportView(errorTextArea); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(errorScrollPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(errorScrollPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE) ); pack(); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JScrollPane errorScrollPane; private javax.swing.JTextArea errorTextArea; // End of variables declaration//GEN-END:variables }