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 );
}
}
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
}