package oripa.mouse;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D;
/**
* Utility Module for mouse
* @author Koji
*
*/
public class MouseUtility {
private MouseUtility() {}
/**
*
* @param event
* @return true if Ctrl key is pressed, otherwise false.
*/
public static boolean isControlKeyPressed(MouseEvent event){
return ((event.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK)
== MouseEvent.CTRL_DOWN_MASK);
}
/**
*
* @param affine
* @param p A point obtained via {@link MouseEvent}.
* @return A point in logical coordinate.
*/
public static Point2D.Double getLogicalPoint(AffineTransform affine, Point p){
Point2D.Double logicalPoint = new Point2D.Double();
try {
affine.inverseTransform(p, logicalPoint);
} catch (NoninvertibleTransformException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return logicalPoint;
}
}