import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Gui {

  Variablen var;
  GuiListener listener;

  public void aktionsFenster() {
    JFrame aktion = new JFrame("Befehle");
    aktion.setLocation(50,50);    
    aktion.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) { System.exit(0);}
    });

    JPanel befehle = new JPanel(new FlowLayout());
    JButton login = new JButton("Login");
    login.addActionListener(listener);
    JButton nick = new JButton("Nick");
    nick.addActionListener(listener);
    JButton away = new JButton("Away");
    away.addActionListener(listener);  
    JButton quit = new JButton("Quit");
    quit.addActionListener(listener);
    JButton list = new JButton("List");
    list.addActionListener(listener);
    JButton join = new JButton("Join");
    join.addActionListener(listener);
    JButton who = new JButton("Who");
    who.addActionListener(listener);
    JButton notice = new JButton("Notice");
    notice.addActionListener(listener);
    JButton privmsg = new JButton("PrivMsg");
    privmsg.addActionListener(listener);
    befehle.add(login);
    befehle.add(nick);
    befehle.add(away);
    befehle.add(quit);
    befehle.add(list);
    befehle.add(join);
    befehle.add(who);
    befehle.add(notice);
    befehle.add(privmsg);
     
    JPanel eingabe = new JPanel(new FlowLayout());
    JButton send = new JButton("Senden");
    send.addActionListener(listener);

    eingabe.add(var.getParameterField());
    eingabe.add(send);

    JPanel gesamt = new JPanel(new GridLayout(3,1,0,0));
    gesamt.add(befehle);
    gesamt.add(var.getBefehlLabel());
    gesamt.add(eingabe);

    aktion.getContentPane().add(gesamt);
    aktion.pack();
    aktion.setVisible(true);
  }

  public void anzeigeFenster() {
    JFrame anzeige = new JFrame("Chat");
    anzeige.setLocation(50,200);    
    anzeige.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) { System.exit(0);}
    });    
    JScrollPane scroll = new JScrollPane(var.getTextFeldArea());

    anzeige.getContentPane().add(scroll);
    anzeige.pack();
    anzeige.setVisible(true);
  }

  public void statusFenster() {
    JFrame status = new JFrame("Status");
    status.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) { System.exit(0);}
    });   
        
    JPanel sgesamt = new JPanel(new GridLayout(6,2));
    sgesamt.add(new JLabel("Server"));
    sgesamt.add(var.getServerLabel());
    sgesamt.add(new JLabel("Status"));
    sgesamt.add(var.getStatusLabel());
    sgesamt.add(new JLabel("Username"));
    sgesamt.add(var.getUserNameLabel());
    sgesamt.add(new JLabel("Nickname"));
    sgesamt.add(var.getNickNameLabel());
    sgesamt.add(new JLabel("Personen"));
    sgesamt.add(new JLabel("keine"));
    sgesamt.add(new JLabel("Channels"));
    sgesamt.add(new JLabel("keine"));

    status.getContentPane().add(sgesamt);
    status.setLocation(620,200);
    status.setSize(300,100);
    status.setVisible(true);
  }   

  public void popupFenster(String text) {
    JOptionPane.showMessageDialog(null,text); 
  }

  public Gui(Variablen v, ServerConnection s) {
    var = v;
    listener  = new GuiListener(var,s);
    anzeigeFenster();
    statusFenster();
    aktionsFenster();
  }
}

