001 import java.net.*; 002 import java.io.*; 003 import org.util.xml.io.*; 004 import org.util.xml.element.*; 005 import java.awt.*; 006 import java.awt.event.*; 007 import javax.swing.*; 008 009 public class TeamManagerGUI { 010 011 public TeamManagerGUI(TeamManager manager, XMLConfigManager config) throws Exception { 012 init(manager, config); 013 } 014 015 private TeamManager manager_; 016 private XMLConfigManager config_; 017 018 public void init(TeamManager manager, XMLConfigManager config) throws Exception { 019 020 manager_ = manager; 021 config_ = config; 022 023 createAndShowGUI(); 024 } 025 026 public void createAndShowGUI() { 027 JFrame frame = new JFrame(); 028 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 029 frame.setContentPane(createContent()); 030 //frame.pack(); 031 frame.setSize(500, 500); 032 frame.setLocationRelativeTo(null); 033 frame.setVisible(true); 034 } 035 036 public JComponent createContent() { 037 JPanel contentpane = new JPanel(new BorderLayout()); 038 contentpane.add(new JLabel("TeamManager"), BorderLayout.NORTH); 039 final JPanel player_map_panel = new JPanel(); 040 manager_.addTeamManagerListener(new TeamManagerListener(){ 041 public void addPlayer(RealPlayer real) { 042 player_map_panel.add(new RealPlayerGUI(real)); 043 player_map_panel.revalidate(); 044 } 045 public void connected(RealPlayer real, VirtualPlayer virtual) { 046 } 047 public void disconnected(RealPlayer real, VirtualPlayer virtual) { 048 } 049 }); 050 contentpane.add(new JScrollPane(player_map_panel), BorderLayout.CENTER); 051 final JTextArea log = new JTextArea(); 052 manager_.addLogWriter(new Writer() { 053 @Override 054 public void close() {} 055 @Override 056 public void flush() {} 057 @Override 058 public void write(char[] cbuf, int off, int len) { 059 log.append(new String(cbuf, off, len)); 060 } 061 }); 062 JScrollPane sp = new JScrollPane(log); 063 sp.setPreferredSize(new Dimension(100, 100)); 064 contentpane.add(sp, BorderLayout.SOUTH); 065 return contentpane; 066 } 067 068 public static void alert(Object message) { 069 // javax.swing.JOptionPane.showMessageDialog(null, message); 070 } 071 072 }