001 package net.minecraft.server.gui;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.SideOnly;
005 import java.util.logging.Formatter;
006 import java.util.logging.Handler;
007 import java.util.logging.LogRecord;
008 import javax.swing.JTextArea;
009
010 @SideOnly(Side.SERVER)
011 public class GuiLogOutputHandler extends Handler
012 {
013 private int[] field_79023_b = new int[1024];
014 private int field_79024_c = 0;
015 Formatter field_79025_a = new GuiLogFormatter(this);
016 private JTextArea field_79022_d;
017
018 public GuiLogOutputHandler(JTextArea par1JTextArea)
019 {
020 this.setFormatter(this.field_79025_a);
021 this.field_79022_d = par1JTextArea;
022 }
023
024 public void close() {}
025
026 public void flush() {}
027
028 public void publish(LogRecord par1LogRecord)
029 {
030 int var2 = this.field_79022_d.getDocument().getLength();
031 this.field_79022_d.append(this.field_79025_a.format(par1LogRecord));
032 this.field_79022_d.setCaretPosition(this.field_79022_d.getDocument().getLength());
033 int var3 = this.field_79022_d.getDocument().getLength() - var2;
034
035 if (this.field_79023_b[this.field_79024_c] != 0)
036 {
037 this.field_79022_d.replaceRange("", 0, this.field_79023_b[this.field_79024_c]);
038 }
039
040 this.field_79023_b[this.field_79024_c] = var3;
041 this.field_79024_c = (this.field_79024_c + 1) % 1024;
042 }
043 }