// Path: src/cn/com/jautoitx/Mouse.java
// public static enum MouseButton {
// 	LEFT("left"),
// 
// 	RIGHT("right"),
// 
// 	MIDDLE("middle"),
// 
// 	MAIN("main"),
// 
// 	MENU("menu"),
// 
// 	PRIMARY("primary"),
// 
// 	SECONDARY("secondary");
// 
// 	private final String button;
// 
// 	private MouseButton(final String button) {
// 		this.button = button;
// 	}
// 
// 	public String getButton() {
// 		return button;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return button;
// 	}
// }
// 
// Path: src/cn/com/jautoitx/Mouse.java
// public static enum MouseCursor {
// 	/* this includes pointing and grabbing hand icons */
// 	UNKNOWN(0),
// 
// 	APPSTARTING(1),
// 
// 	ARROW(2),
// 
// 	CROSS(3),
// 
// 	HELP(4),
// 
// 	IBEAM(5),
// 
// 	ICON(6),
// 
// 	NO(7),
// 
// 	SIZE(8),
// 
// 	SIZEALL(9),
// 
// 	SIZENESW(10),
// 
// 	SIZENS(11),
// 
// 	SIZENWSE(12),
// 
// 	SIZEWE(13),
// 
// 	UPARROW(14),
// 
// 	WAIT(15);
// 
// 	private final int id;
// 
// 	private MouseCursor(final int id) {
// 		this.id = id;
// 	}
// 
// 	public int getId() {
// 		return id;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		switch (this) {
// 		case UNKNOWN:
// 			return "UNKNOWN";
// 		case APPSTARTING:
// 			return "APPSTARTING";
// 		case ARROW:
// 			return "ARROW";
// 		case CROSS:
// 			return "CROSS";
// 		case HELP:
// 			return "HELP";
// 		case IBEAM:
// 			return "IBEAM";
// 		case ICON:
// 			return "ICON";
// 		case NO:
// 			return "NO";
// 		case SIZE:
// 			return "SIZE";
// 		case SIZEALL:
// 			return "SIZEALL";
// 		case SIZENESW:
// 			return "SIZENESW";
// 		case SIZENS:
// 			return "SIZENS";
// 		case SIZENWSE:
// 			return "SIZENWSE";
// 		case SIZEWE:
// 			return "SIZEWE";
// 		case UPARROW:
// 			return "UPARROW";
// 		case WAIT:
// 			return "WAIT";
// 		default:
// 			return "UNKNOWN";
// 		}
// 	}
// }
// 
// Path: src/cn/com/jautoitx/Mouse.java
// public static enum MouseWheelDirection {
// 	UP(MOUSE_WHEEL_DIRECTION_UP),
// 
// 	DOWN(MOUSE_WHEEL_DIRECTION_DOWN);
// 
// 	private final String direction;
// 
// 	private MouseWheelDirection(final String direction) {
// 		this.direction = direction;
// 	}
// 
// 	public String getDirection() {
// 		return direction;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		switch (this) {
// 		case UP:
// 			return "up";
// 		case DOWN:
// 			return "down";
// 		default:
// 			return "Unknown mouse wheel direction";
// 		}
// 	}
// }


import java.awt.Cursor;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import org.junit.Assert;
import org.junit.Test;
import org.omg.CORBA.IntHolder;
import cn.com.jautoitx.Mouse.MouseButton;
import cn.com.jautoitx.Mouse.MouseCursor;
import cn.com.jautoitx.Mouse.MouseWheelDirection;

		frame.getContentPane().add(scrollPane);
		frame.setBounds(0, 0, 400, 300);

		// add mouse wheel listener to textArea
		final IntHolder wheelCount = new IntHolder();
		final IntHolder wheelUpCount = new IntHolder();
		final IntHolder wheelDownCount = new IntHolder();
		textArea.addMouseWheelListener(new MouseWheelListener() {
			public void mouseWheelMoved(MouseWheelEvent e) {
				wheelCount.value++;
				if (e.getWheelRotation() < 0) {
					wheelUpCount.value++;
				} else {
					wheelDownCount.value++;
				}
			}
		});

		// show frame
		frame.setVisible(true);

		// move mouse to the center of the frame
		Mouse.move(200, 150);

		// focus textArea
		Mouse.click(MouseButton.LEFT);

		try {
			// scroll down 5 times
			for (int i = 0; i < 4; i++) {

// Path: src/cn/com/jautoitx/Mouse.java
// public static enum MouseButton {
// 	LEFT("left"),
// 
// 	RIGHT("right"),
// 
// 	MIDDLE("middle"),
// 
// 	MAIN("main"),
// 
// 	MENU("menu"),
// 
// 	PRIMARY("primary"),
// 
// 	SECONDARY("secondary");
// 
// 	private final String button;
// 
// 	private MouseButton(final String button) {
// 		this.button = button;
// 	}
// 
// 	public String getButton() {
// 		return button;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return button;
// 	}
// }
// 
// Path: src/cn/com/jautoitx/Mouse.java
// public static enum MouseCursor {
// 	/* this includes pointing and grabbing hand icons */
// 	UNKNOWN(0),
// 
// 	APPSTARTING(1),
// 
// 	ARROW(2),
// 
// 	CROSS(3),
// 
// 	HELP(4),
// 
// 	IBEAM(5),
// 
// 	ICON(6),
// 
// 	NO(7),
// 
// 	SIZE(8),
// 
// 	SIZEALL(9),
// 
// 	SIZENESW(10),
// 
// 	SIZENS(11),
// 
// 	SIZENWSE(12),
// 
// 	SIZEWE(13),
// 
// 	UPARROW(14),
// 
// 	WAIT(15);
// 
// 	private final int id;
// 
// 	private MouseCursor(final int id) {
// 		this.id = id;
// 	}
// 
// 	public int getId() {
// 		return id;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		switch (this) {
// 		case UNKNOWN:
// 			return "UNKNOWN";
// 		case APPSTARTING:
// 			return "APPSTARTING";
// 		case ARROW:
// 			return "ARROW";
// 		case CROSS:
// 			return "CROSS";
// 		case HELP:
// 			return "HELP";
// 		case IBEAM:
// 			return "IBEAM";
// 		case ICON:
// 			return "ICON";
// 		case NO:
// 			return "NO";
// 		case SIZE:
// 			return "SIZE";
// 		case SIZEALL:
// 			return "SIZEALL";
// 		case SIZENESW:
// 			return "SIZENESW";
// 		case SIZENS:
// 			return "SIZENS";
// 		case SIZENWSE:
// 			return "SIZENWSE";
// 		case SIZEWE:
// 			return "SIZEWE";
// 		case UPARROW:
// 			return "UPARROW";
// 		case WAIT:
// 			return "WAIT";
// 		default:
// 			return "UNKNOWN";
// 		}
// 	}
// }
// 
// Path: src/cn/com/jautoitx/Mouse.java
// public static enum MouseWheelDirection {
// 	UP(MOUSE_WHEEL_DIRECTION_UP),
// 
// 	DOWN(MOUSE_WHEEL_DIRECTION_DOWN);
// 
// 	private final String direction;
// 
// 	private MouseWheelDirection(final String direction) {
// 		this.direction = direction;
// 	}
// 
// 	public String getDirection() {
// 		return direction;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		switch (this) {
// 		case UP:
// 			return "up";
// 		case DOWN:
// 			return "down";
// 		default:
// 			return "Unknown mouse wheel direction";
// 		}
// 	}
// }


// Path: test/cn/com/jautoitx/MouseTest.java
import java.awt.Cursor;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import org.junit.Assert;
import org.junit.Test;
import org.omg.CORBA.IntHolder;
import cn.com.jautoitx.Mouse.MouseButton;
import cn.com.jautoitx.Mouse.MouseCursor;
import cn.com.jautoitx.Mouse.MouseWheelDirection;

		frame.getContentPane().add(scrollPane);
		frame.setBounds(0, 0, 400, 300);

		// add mouse wheel listener to textArea
		final IntHolder wheelCount = new IntHolder();
		final IntHolder wheelUpCount = new IntHolder();
		final IntHolder wheelDownCount = new IntHolder();
		textArea.addMouseWheelListener(new MouseWheelListener() {
			public void mouseWheelMoved(MouseWheelEvent e) {
				wheelCount.value++;
				if (e.getWheelRotation() < 0) {
					wheelUpCount.value++;
				} else {
					wheelDownCount.value++;
				}
			}
		});

		// show frame
		frame.setVisible(true);

		// move mouse to the center of the frame
		Mouse.move(200, 150);

		// focus textArea
		Mouse.click(MouseButton.LEFT);

		try {
			// scroll down 5 times
			for (int i = 0; i < 4; i++) {

				Mouse.wheel(MouseWheelDirection.DOWN);
