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