package ca.ubc.cs.spl.aspectPatterns.examples.chainOfResponsibility.java;
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* This file is part of the design patterns project at UBC
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is ca.ubc.cs.spl.aspectPatterns.
*
* For more details and the latest version of this code, please see:
* http://www.cs.ubc.ca/labs/spl/projects/aodps.html
*
* Contributor(s):
*/
import java.awt.event.ActionEvent;
/**
* Represents the <i>Request</i> in the <i>Chain of Responsibility</i>
* pattern, which is a button click in this case. Provides methods for
* accessing key masks associated with the click (to find out whether
* the SHIFT, ALT, or CTRL keys were pressed during the click).
*
* @author Jan Hannemann
* @author Gregor Kiczales
* @version 1.1, 01/27/04
*
*/
public class Click {
/**
* the ActionEvent that describes this Click
*/
protected ActionEvent description;
/**
* Creates a <code>Click</code> described by the provided <code>
* ActionEvent</code>.
*
* @param description the ActionEvent that describes this Click
*/
public Click(ActionEvent description) {
this.description = description;
}
/**
* Convenience method for inquiring whether SHIFT was pressed while
* the click occured.
*
* @return whether the SHIFT key was pressed when the click occured
*/
public boolean hasShiftMask() {
return ((description.getModifiers() & ActionEvent.SHIFT_MASK) != 0 );
}
/**
* Convenience method for inquiring whether ALT was pressed while
* the click occured.
*
* @return whether the ALT key was pressed when the click occured
*/
public boolean hasAltMask() {
return ((description.getModifiers() & ActionEvent.ALT_MASK) != 0 );
}
/**
* Convenience method for inquiring whether CTRL was pressed while
* the click occured.
*
* @return whether the CTRL key was pressed when the click occured
*/
public boolean hasCtrlMask() {
return ((description.getModifiers() & ActionEvent.CTRL_MASK) != 0 );
}
}