package gui.mouse;
import gui.ClosableJFrame;
import java.awt.event.MouseMotionListener;
public abstract class MouseController
implements java.awt.event.MouseListener, MouseMotionListener {
private java.awt.Point pressPoint;
public void mouseMoved(java.awt.event.MouseEvent e) {
}
public void mouseReleased(java.awt.event.MouseEvent e) {
released(e.getPoint());
}
public void mouseEntered(java.awt.event.MouseEvent e) {
}
public void mouseExited(java.awt.event.MouseEvent e) {
}
public void mouseClicked(java.awt.event.MouseEvent e) {
if (e.getClickCount() == 2) {
doubleClicked(e.getPoint());
return;
}
if (e.isShiftDown() && e.getClickCount() == 1) {
shiftClicked(e.getPoint());
return;
}
clicked(e.getPoint());
}
public void mousePressed(java.awt.event.MouseEvent e) {
pressPoint = e.getPoint();
pressed(pressPoint);
}
public void mouseDragged(java.awt.event.MouseEvent e) {
if (e.isShiftDown())
dragShift(pressPoint, e.getPoint());
else
dragged(pressPoint, e.getPoint());
}
public abstract void released(java.awt.Point p);
public abstract void dragged(
java.awt.Point p1, java.awt.Point p2);
public abstract void dragShift(
java.awt.Point p1, java.awt.Point p2);
public abstract void pressed(java.awt.Point p);
public abstract void doubleClicked(java.awt.Point p);
public abstract void clicked(java.awt.Point p);
public abstract void shiftClicked(java.awt.Point p);
public static void main(String args[]) {
ClosableJFrame cf = new ClosableJFrame();
cf.addMouseController(new MouseController() {
public void pressed(java.awt.Point p) {
System.out.println("pressed:x,y=" + p.x + "," + p.y);
}
public void released(java.awt.Point p) {
System.out.println("rel:x,y=" + p.x + "," + p.y);
}
public void dragShift(
java.awt.Point p1, java.awt.Point p2) {
System.out.println(
"draShift:x1,y1,x2,y2=" + p1 + ": " + p2);
}
public void doubleClicked(java.awt.Point p) {
System.out.println("d 2 clicked:x,y=" + p.x + "," + p.y);
}
public void clicked(java.awt.Point p) {
System.out.println("clicked:x,y=" + p.x + "," + p.y);
}
public void shiftClicked(java.awt.Point p) {
System.out.println("Sh clicked:x,y=" + p.x + "," + p.y);
}
public void dragged(
java.awt.Point p1, java.awt.Point p2) {
System.out.println(
"dra:x1,y1,x2,y2=" + p1 + ": " + p2);
}
});
cf.setSize(200, 200);
cf.setVisible(true);
}
}