import java.awt.*;

public class JanelaClientes extends Frame {
    List listaClientes;

    JanelaDadosCliente janelaDadosCliente;

    Button adiciona;
    Button limpa;
    Button cancela;

    BancoApplet bancoApplet;
 
    public JanelaClientes(BancoApplet bancoApplet) {
	setLayout(new FlowLayout());
	setTitle("Clientes");

	this.bancoApplet = bancoApplet;

	listaClientes = new List(6, false);
    	atualizaListaClientes();
	add(listaClientes);
 
	adiciona = new Button("Adiciona");
	add(adiciona);

	limpa = new Button("Limpa");
	add(limpa);

	cancela = new Button("Cancela");
	add(cancela);
	
    	janelaDadosCliente = new JanelaDadosCliente(this);

    }

    public Dimension preferredSize() {
	return new Dimension(200,250);
    }

    public boolean handleEvent(Event e) {
	if (e.id == Event.ACTION_EVENT) {
            if (e.target == adiciona) {
		janelaDadosCliente.adicionaCliente();
	    } else if (e.target == limpa) {
		bancoApplet.limpaClientes();
    		atualizaListaClientes();
	    } else if (e.target == cancela) {
		hide();
		janelaDadosCliente.hide();
	    }
	} else if (e.target == listaClientes && e.id == Event.LIST_SELECT) 
	    janelaDadosCliente.alteraCliente(clienteSelecionado());
	return super.handleEvent(e);
    }

    public Cliente clienteSelecionado() {
	int index = listaClientes.getSelectedIndex();
	if (index >= 0) 
	    return bancoApplet.cliente(index);
	else
	    return null;
    }
	
    public void atualizaListaClientes() {
	listaClientes.clear();
	layout();
	for (int i = 0; i < bancoApplet.qtdClientes() ; i++) 
	    listaClientes.addItem("Nome:"+ bancoApplet.cliente(i).nome+
                    " CPF:"+bancoApplet.cliente(i).cpf);
    }

    public void adicionaCliente(String nome, String cpf) {
        bancoApplet.adicionaCliente(nome, cpf);
    	atualizaListaClientes();
    }

    public void removeCliente(Cliente cliente) {
        bancoApplet.removeCliente(cliente);
    	atualizaListaClientes();
    }

}