
package interfazgrafica7;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JRadioButton;
import javax.swing.JToggleButton;
import javax.swing.event.MouseInputAdapter;

public class GestorEventos extends MouseInputAdapter implements WindowListener, ActionListener, ItemListener {
    
    private Componentes componentes;
    
    public GestorEventos(Componentes componentes) {
        this.componentes = componentes;
    }

         // MÉTODOS DE WindowListener  
    public void windowClosing(WindowEvent e) {
       System.exit(0);
    }    
       
    public void windowActivated(WindowEvent e) {
    }    
    
    public void windowDeactivated(WindowEvent e) {
    }        
    
    public void windowClosed(WindowEvent e) {
    }        
    
    public void windowIconified(WindowEvent e) {
    }    

    public void windowDeiconified(WindowEvent e) {
    }    

    public void windowOpened(WindowEvent e) {
    }        
    
    
          // MÉTODOS DE MouseInputAdapter   
    public void mouseMoved(MouseEvent e) { 
       componentes.getjLabelVisualizaPosicionRaton().setText("Posicion raton:   coordenada x: "+e.getX()+"    coordenada y: "+e.getY());
    } 

   public void mousePressed(MouseEvent e) { 
      componentes.getAreaDibujo().recibirCoordenadas1(e.getX(),e.getY());
    }   

   public void mouseReleased(MouseEvent e) { 
      componentes.getAreaDibujo().recibirCoordenadas2(e.getX(),e.getY());
      componentes.getAreaDibujo().repaint();  
    }    
   
 
         // MÉTODO DE ActionListener    
    public void actionPerformed(ActionEvent e) { 
        
        switch(e.getSource().getClass().getName())
        {
            case "javax.swing.JToggleButton" :      //  SELECCION DE FIGURAS MEDIANTE JToggleButton
                      JToggleButton jToggleButton = (JToggleButton) e.getSource();
  
                      if (jToggleButton == componentes.getjToggleButtonLineas())
                        { componentes.setTipoFigura((byte)1);
                        }
                       else
                          if (jToggleButton == componentes.getjToggleButtonRectangulos())
                            { componentes.setTipoFigura((byte)2);
                            }
                           else
                              if (jToggleButton == componentes.getjToggleButtonOvalos())
                                { componentes.setTipoFigura((byte)3);
                                }   
                      break;
            case "javax.swing.JRadioButton" :      //  SELECCION DE FIGURAS MEDIANTE JRadioButton
                      JRadioButton jRadioButton = (JRadioButton) e.getSource();
  
                      if (jRadioButton == componentes.getjRadioButtonLineas())
                        { componentes.setTipoFigura((byte)1);
                        }
                       else
                          if (jRadioButton == componentes.getjRadioButtonRectangulos())
                            { componentes.setTipoFigura((byte)2);
                            }
                           else
                              if (jRadioButton == componentes.getjRadioButtonOvalos())
                                { componentes.setTipoFigura((byte)3);
                                }   
                      break;                      
        }
    }    
  
    
         // MÉTODO DE ItemListener     
   public void itemStateChanged(ItemEvent e)
    { Object fuente = e.getItemSelectable();
               //  SELECCION DE FIGURAS MEDIANTE JCheckBox
      if (fuente == componentes.getjCheckBoxLineas())
           componentes.setTipoFigura((byte)1);
         else
           if (fuente == componentes.getjCheckBoxRectangulos())
                componentes.setTipoFigura((byte)2);
              else
                if (fuente == componentes.getjCheckBoxOvalos())
                     componentes.setTipoFigura((byte)3);
    }
}
