package uk.co.mmscomputing.application.install; import java.text.SimpleDateFormat; import java.util.Date; import java.awt.*; import javax.swing.*; import javax.swing.text.*; import java.io.*; public class Log extends JPanel{ SimpleAttributeSet black, blue, red; JTextPane pane; Document doc; public Log(){ black=new SimpleAttributeSet(); StyleConstants.setForeground(black,Color.black); blue=new SimpleAttributeSet(); StyleConstants.setForeground(blue,Color.blue); red=new SimpleAttributeSet(); StyleConstants.setForeground(red,Color.red); SimpleDateFormat defaultDate=new SimpleDateFormat("yyyy-MM-dd--hh-mm-ss"); String date=defaultDate.format(new Date()); pane=new JTextPane(); pane.setFont(new Font("Courier",Font.PLAIN,12)); pane.setText("Log started at : "+date+"\n\n"); doc=pane.getDocument(); setLayout(new BorderLayout()); add(new JScrollPane(pane),BorderLayout.CENTER); } private void write(String s, SimpleAttributeSet a){ try{ doc.insertString(0,s+"\n",a); // doc.insertString(doc.getLength(),s+"\n",a); }catch(/*BadLocation*/Exception e){ System.err.println(e.getMessage()); System.err.println(s); } } public void msg(InputStream in){ try{ BufferedReader r=new BufferedReader(new InputStreamReader(in)); String s=""; while((s=r.readLine())!=null){ write(s,black); } in.close(); }catch(IOException ioe){ msg(ioe.getMessage()); } } public void msg(String s){ write(s,black); repaint(); // JOptionPane.showMessageDialog(null, s, "Message", JOptionPane.ERROR_MESSAGE); } // public void msg(Object s){ // msg(s.toString()); // } public void err(String s){ System.err.println(s); write(s,red); JOptionPane.showMessageDialog(null, s, "Exception", JOptionPane.ERROR_MESSAGE); } public void err(Exception e){ e.printStackTrace(); // System.err.println("err : "+e.getMessage()); write(e.getMessage(),blue); JOptionPane.showMessageDialog(null, e.getMessage(), "Exception", JOptionPane.ERROR_MESSAGE); } public void err(String s, Exception e){ e.printStackTrace(); // System.err.println("err : "+e.getMessage()); // System.err.println(s); write(s+"\r\n"+e.getMessage(),blue); JOptionPane.showMessageDialog(null, s+"\r\n"+e.getMessage(), "Exception", JOptionPane.ERROR_MESSAGE); } }