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 }