001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.awt.BorderLayout; 006 import java.awt.Component; 007 import java.awt.Dimension; 008 import java.util.logging.Logger; 009 import javax.swing.JComponent; 010 import javax.swing.JFrame; 011 import javax.swing.JPanel; 012 import javax.swing.JScrollPane; 013 import javax.swing.JTextArea; 014 import javax.swing.JTextField; 015 import javax.swing.UIManager; 016 import javax.swing.border.EtchedBorder; 017 import javax.swing.border.TitledBorder; 018 019 @SideOnly(Side.SERVER) 020 public class ServerGUI extends JComponent 021 { 022 /** Reference to the logger. */ 023 public static Logger logger = Logger.getLogger("Minecraft"); 024 private static boolean field_79008_b = false; 025 private DedicatedServer field_79009_c; 026 027 public static void func_79003_a(DedicatedServer par0DedicatedServer) 028 { 029 try 030 { 031 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 032 } 033 catch (Exception var3) 034 { 035 ; 036 } 037 038 ServerGUI var1 = new ServerGUI(par0DedicatedServer); 039 field_79008_b = true; 040 JFrame var2 = new JFrame("Minecraft server"); 041 var2.add(var1); 042 var2.pack(); 043 var2.setLocationRelativeTo((Component)null); 044 var2.setVisible(true); 045 var2.addWindowListener(new ServerWindowAdapter(par0DedicatedServer)); 046 } 047 048 public ServerGUI(DedicatedServer par1DedicatedServer) 049 { 050 this.field_79009_c = par1DedicatedServer; 051 this.setPreferredSize(new Dimension(854, 480)); 052 this.setLayout(new BorderLayout()); 053 054 try 055 { 056 this.add(this.getLogComponent(), "Center"); 057 this.add(this.getStatsComponent(), "West"); 058 } 059 catch (Exception var3) 060 { 061 var3.printStackTrace(); 062 } 063 } 064 065 /** 066 * Returns a new JPanel with a new GuiStatsComponent inside. 067 */ 068 private JComponent getStatsComponent() 069 { 070 JPanel var1 = new JPanel(new BorderLayout()); 071 var1.add(new GuiStatsComponent(this.field_79009_c), "North"); 072 var1.add(this.getPlayerListComponent(), "Center"); 073 var1.setBorder(new TitledBorder(new EtchedBorder(), "Stats")); 074 return var1; 075 } 076 077 /** 078 * Returns a new JScrollPane with a new PlayerListBox inside. 079 */ 080 private JComponent getPlayerListComponent() 081 { 082 PlayerListBox var1 = new PlayerListBox(this.field_79009_c); 083 JScrollPane var2 = new JScrollPane(var1, 22, 30); 084 var2.setBorder(new TitledBorder(new EtchedBorder(), "Players")); 085 return var2; 086 } 087 088 /** 089 * Returns a new JPanel with a new GuiStatsComponent inside. 090 */ 091 private JComponent getLogComponent() 092 { 093 JPanel var1 = new JPanel(new BorderLayout()); 094 JTextArea var2 = new JTextArea(); 095 logger.addHandler(new GuiLogOutputHandler(var2)); 096 JScrollPane var3 = new JScrollPane(var2, 22, 30); 097 var2.setEditable(false); 098 JTextField var4 = new JTextField(); 099 var4.addActionListener(new ServerGuiCommandListener(this, var4)); 100 var2.addFocusListener(new ServerGuiFocusAdapter(this)); 101 var1.add(var3, "Center"); 102 var1.add(var4, "South"); 103 var1.setBorder(new TitledBorder(new EtchedBorder(), "Log and chat")); 104 return var1; 105 } 106 107 static DedicatedServer func_79004_a(ServerGUI par0ServerGUI) 108 { 109 return par0ServerGUI.field_79009_c; 110 } 111 }