   import java.awt.event.*;


/**
 * A controller for a ControllableAlarmClock class
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
    public class AlarmController implements ActionListener
   {
      private ControllableAlarmClock       clock;
    
    /**
     * Explicit Value Constructor
     *
     * @param clock   The clock to be controller
     */
       public AlarmController(ControllableAlarmClock clock)
      {
         this.clock = clock;       
      }
    
   
   
   
   
    /**
     * Handle actionPerformed calls from buttons on the GUI
     * (required by ActionListener)
     *
     * @param event   The ActionEvent containing details
     */
       public void actionPerformed(ActionEvent event)
      {
         String      ac, ampm;
       
      
         ac = event.getActionCommand();
         System.out.println (ac);
       
         int      value;
      
      
         if      (ac.equals("HOUR_DOWN"))
         {
            value = clock.getAlarmHour();
            value--;
            if (value < 1) value = 12;          
            clock.setAlarmHour(value);          
         }
         else if (ac.equals("HOUR_UP"))
         {
            value = clock.getAlarmHour();
            value++;
            if (value > 12) value = 1;          
            clock.setAlarmHour(value);          
         }
         else if (ac.equals("MINUTE_UP"))
         {
            value = clock.getAlarmMinute();
            value++;
            if (value > 60) value = 1;
            clock.setAlarmMinute(value);
         }
         else if (ac.equals("MINUTE_DOWN"))
         {
            value = clock.getAlarmMinute();
            value--;
            if (value < 0) value = 60;
            clock.setAlarmMinute(value);
         }    
         else if (ac.equals("AMPM_CHANGE"))
         {
            ampm = clock.getAlarmAMPM();
            if (ampm.equals("PM"))
               clock.setAlarmAMPM("AM");
            else	 
               clock.setAlarmAMPM("PM");
         }
         else if (ac.equals("ON_OFF"))
         {
            if (clock.isAlarmOn())
               clock.turnAlarmOff();
            else
               clock.turnAlarmOn();
         }
      }
    
   
   }
