
package presentacion;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class GestorEventos extends WindowAdapter implements ChangeListener, ActionListener {
    
      private Componentes componentes;
    
    public GestorEventos(Componentes componentes) {
        this.componentes = componentes;
    }

         // MÉTODOS DE WindowAdapter     
   public void windowClosing(WindowEvent e) {
      System.exit(0);
   }     
   
         // MÉTODO DE ChangeListener   
   public void stateChanged(ChangeEvent e) {
        JTabbedPane componenteFuente=(JTabbedPane) e.getSource();
    
        if (componenteFuente == componentes.getjTabbedPane())
          { switch(componentes.getjTabbedPane().getSelectedIndex())
             { case 0: componentes.getOpcion1().iniciarPantalla();  
                       break;
               case 1: componentes.getOpcion2().iniciarPantalla(); 
                       break;
               case 2: componentes.getOpcion3().iniciarPantalla(); 
                       break;             
             }   
          }
   }
   
         // MÉTODO DE ActionListener   
    public void actionPerformed(ActionEvent e) { 
        
          switch(e.getActionCommand())
          {                                    
             case "botonOpcion1" :   
                     componentes.setContadorOpcion1(componentes.getContadorOpcion1() + 1);
                     componentes.getjLabelParcialOpcion1().setText("Pulsaciones botón opción 1:     "+componentes.getContadorOpcion1());
                     componentes.setContadorGlobal(componentes.getContadorGlobal() + 1);
                     componentes.getjLabelGlobalOpcion1().setText("Pulsaciones acumuladas de los botones de todas las opciones:     "+componentes.getContadorGlobal());
                     break;    
             case "botonOpcion2" :  
                     componentes.setContadorOpcion2(componentes.getContadorOpcion2() + 1);
                     componentes.getjLabelParcialOpcion2().setText("Pulsaciones botón opción 2:     "+componentes.getContadorOpcion2());
                     componentes.setContadorGlobal(componentes.getContadorGlobal() + 1);
                     componentes.getjLabelGlobalOpcion2().setText("Pulsaciones acumuladas de los botones de todas las opciones:     "+componentes.getContadorGlobal());                     
                     break;
             case "botonOpcion3" :    
                     componentes.setContadorOpcion3(componentes.getContadorOpcion3() + 1);
                     componentes.getjLabelParcialOpcion3().setText("Pulsaciones botón opción 3:     "+componentes.getContadorOpcion3());
                     componentes.setContadorGlobal(componentes.getContadorGlobal() + 1);
                     componentes.getjLabelGlobalOpcion3().setText("Pulsaciones acumuladas de los botones de todas las opciones:     "+componentes.getContadorGlobal());              
                     break;                     
          }
    } 
}
