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    }