package VistaControlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JOptionPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import Logica.Gestion;

public class ControladorAniadirVisualizar implements ActionListener{

	private VistaAniadirVisualizar vista;
	public ControladorAniadirVisualizar(VistaAniadirVisualizar vista) {
		this.vista = vista;
		this.aniadirListeners();
	}

	public void actionPerformed(ActionEvent e) {
		switch(e.getActionCommand()) {
			case "Aniadir":{
				String nombre=JOptionPane.showInputDialog("Introduce un nuevo gasto o ingreso");
				if(nombre == null) return;
				if(nombre.equals("")) {
					JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE);
					return;
				}
				String dinero = JOptionPane.showInputDialog("Introduce a cuanto asciende");
				if(dinero == null) return;
				if(dinero.equals("")) {
					JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE);
					return;
				}
				
				try {
					this.vista.aniadirElemento(nombre, Float.parseFloat(dinero),this);
					this.vista.menu.panelGestion.actualizarDatos(this.vista.gestiones);
					this.vista.menu.panelGestion.revalidate();
					this.vista.menu.panelGestion.repaint();
				}catch (NumberFormatException ex) {
					JOptionPane.showMessageDialog(null, "Debe introducir un numero", "error", JOptionPane.WARNING_MESSAGE);
				}
				break;
			}
			case "pulsar":{
				JCheckBox pulsado = (JCheckBox)e.getSource();
				for(int i = 0; i < vista.gestiones.getElementos().size();i++) {
					if(vista.gestiones.getElementos().get(i).toString().equals(pulsado.getText())) {
						vista.gestiones.alterarVisibilidad(i);
						this.vista.menu.panelGestion.actualizarDatos(this.vista.gestiones);
						this.vista.menu.panelGestion.revalidate();
						this.vista.menu.panelGestion.repaint();
					}
				}
			}
				
		}
	}
	
	/**
	 * Aniade los listeners a la lista de objetos
	 */
	private void aniadirListeners() {
		vista.boton.addActionListener(this);
		vista.boton.setActionCommand("Aniadir");
		for(JCheckBox check:this.vista.transacciones) {
			check.addActionListener(this);
			check.setActionCommand("pulsar");
		}
	}
	
}
