/** *
* EventHandler.java * * Revisions: 1.0 Nov. 10, 2002 * Created the EventHandler class * 1.1 Nov. 10, 2002 * Compiled, Commented, Finished * ** * Collaboration Statement: * I worked on the homework assignment alone, using only * course materials. * * Created with JCreatorLE, some indents are off when viewed through notepad * or EMACS * * @author Jose Manuel Caban * @version Version 1.0, Nov. 10, 2002 */ import java.awt.event.*; import javax.swing.event.*; import java.util.*; import javax.swing.*; public class EventHandler implements ActionListener{ /** *Displays user actions to console (y/n) */ public static boolean bVerbose; //similar to bDebug, but doesn't interefere with the program /** *Holds the currently selected sort */ private AbstractSort sort; /** *ChangeListener, notified of changes */ private ChangeListener chgListener; //////////////// //Constructors// //////////////// /** *Default Constructor *@param cl, the Listener it will Handle */ public EventHandler(ChangeListener cl){ chgListener = cl; bVerbose = true; } /** *Constructor that is used for the P5 driver *sets bVerbose to false */ public EventHandler(ChangeListener cl, boolean bVerbose){ chgListener = cl; this.bVerbose = bVerbose; } /////////// //Methods// /////////// /** *Handles the events taken from the ChangeListener *@param ae, the ActionEvent to be analyzed */ public void actionPerformed(ActionEvent ae){ if(ae.getSource() instanceof JMenuItem){ if(bVerbose)System.out.print("Creating Array..."); ArrayWrapper aw = new ArrayWrapper(ArrayWrapper.getRandomIntegerArray(60)); aw.addChangeListener(chgListener); if(bVerbose)System.out.println("Done."); String str = ae.getActionCommand(); if(str.equals("Bubble Sort")){ if(bVerbose)System.out.println("User chose Bubble Sort"); BubbleSort bs = new BubbleSort(aw); sort = bs; } else if(str.equals("Insertion Sort")){ if(bVerbose)System.out.println("User chose Insertion Sort"); InsertionSort is = new InsertionSort(aw); sort = is; } else if(str.equals("Merge Sort")){ if(bVerbose)System.out.println("User chose Merge Sort"); MergeSort M$ = new MergeSort(aw); sort = M$; } else{//if(str.equals("Quick Sort"){ if(bVerbose)System.out.println("User chose Quick Sort"); QuickSort qs = new QuickSort(aw); sort = qs; } }//end if(ae.getSource() instanceof JMenuItem) else if(ae.getSource() instanceof JButton){ if(sort == null){ if(bVerbose) System.out.println( "User attempted to start without selecting a sort"); } else{ if(bVerbose)System.out.println("User selected Begin Sort"); sort.doSort(); } }//end if(ae.getSource() instanceof JButton }//end actionPerformed() /***********************************************************************/ /** * Debugging main for class EventHandler. * This method will rigorously test my code. * *