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    }