package com.croftsoft.apps.exemplar; import java.awt.event.*; import java.util.*; import com.croftsoft.core.gui.controller.NilController; import com.croftsoft.core.lang.NullArgumentException; import com.croftsoft.core.lang.lifecycle.Startable; /********************************************************************* * Exemplar controller. * * Modifies the Model based on user input. * * @version * $Id: Controller.java,v 1.11 2006/06/22 13:46:22 croft Exp $ * @since * 2005-03-16 * @author * David Wallace Croft *********************************************************************/ public final class Controller extends NilController implements Startable ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// { private final Config config; private final Queue requestQueue; // private boolean mouseClicked; ////////////////////////////////////////////////////////////////////// // constructor method ////////////////////////////////////////////////////////////////////// public Controller ( final Config config, final Queue requestQueue ) ////////////////////////////////////////////////////////////////////// { NullArgumentException.checkArgs ( this.config = config, this.requestQueue = requestQueue ); } ////////////////////////////////////////////////////////////////////// // listener methods ////////////////////////////////////////////////////////////////////// @Override public void mouseClicked ( final MouseEvent mouseEvent ) ////////////////////////////////////////////////////////////////////// { mouseClicked = true; } ////////////////////////////////////////////////////////////////////// // lifecycle methods ////////////////////////////////////////////////////////////////////// public void start ( ) ////////////////////////////////////////////////////////////////////// { mouseClicked = false; } @Override public void update ( ) ////////////////////////////////////////////////////////////////////// { if ( mouseClicked ) { mouseClicked = !requestQueue.offer ( Message.INCREMENT_CLICK_COUNT_INSTANCE ); } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// }