+++ /dev/null
-/*******************************************************************************\r
- * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.proconf.g3d.input;\r
-\r
-import java.awt.event.KeyEvent;\r
-import java.awt.event.KeyListener;\r
-import java.awt.event.MouseEvent;\r
-import java.awt.event.MouseListener;\r
-import java.awt.event.MouseMotionListener;\r
-\r
-public class AWTInputProvider implements KeyListener, MouseListener, MouseMotionListener , InputProvider{\r
- \r
- private boolean keyPressed[] = new boolean[1024];\r
- private boolean keyTemp[] = new boolean[1024];\r
- private boolean keyDown[] = new boolean[1024];\r
- private boolean keyUp[] = new boolean[1024];\r
- \r
- private int awtMouseX = 0;\r
- private int awtMouseY = 0;\r
- private boolean awtPressed = false;\r
- private boolean awtDragged = false;\r
- private boolean awtReleased = false;\r
- private boolean awtMouseClicked = false;\r
- private boolean awtMouseMoved = false;\r
- \r
- private int awtPressModifiers = 0;\r
- private int awtDragModifiers = 0;\r
- private int awtClickModifiers = 0;\r
- private int awtMoveModifiers = 0;\r
- private int awtClickButton = 0;\r
- \r
- private int mouseX = 0;\r
- private int mouseY = 0;\r
- \r
- private int prevMouseX = 0;\r
- private int prevMouseY = 0;\r
- \r
- private boolean mousePressed = false;\r
- private boolean mouseDragged = false;\r
- private boolean mouseReleased = false;\r
- private boolean mouseClicked = false;\r
- private boolean mouseMoved = false;\r
- \r
- private int pressModifiers = 0;\r
- private int clickModifiers = 0;\r
- private int dragModifiers = 0;\r
- private int clickButton = 0;\r
- private int moveModifiers = 0;\r
- \r
- public AWTInputProvider() {\r
- for (int i = 0; i < keyDown.length; i++) {\r
- keyDown[i] = false;\r
- keyTemp[i] = false;\r
- keyPressed[i] = false; \r
- keyUp[i] = false;\r
- }\r
- }\r
- \r
- public boolean keyPressed(int i) {\r
- return keyPressed[i];\r
- }\r
- \r
- public boolean keyDown(int i) {\r
- return keyDown[i];\r
- }\r
- \r
- public boolean keyUp(int i) {\r
- return keyUp[i];\r
- }\r
- \r
- public int mouseX() {\r
- return mouseX;\r
- }\r
- \r
- public int mouseY() {\r
- return mouseY;\r
- }\r
- \r
- public int prevMouseX() {\r
- return prevMouseX;\r
- }\r
- \r
- public int prevMouseY() {\r
- return prevMouseY;\r
- }\r
- \r
- public boolean mousePressed() {\r
- return mousePressed;\r
- }\r
- \r
- public boolean mouseMoved() {\r
- return mouseMoved;\r
- }\r
- \r
- public boolean mouseReleased() {\r
- return mouseReleased;\r
- }\r
- \r
- public boolean mouseClicked() {\r
- return mouseClicked;\r
- }\r
- \r
- public boolean mouseDragged() {\r
- return mouseDragged;\r
- }\r
- \r
- public int pressModifiers() {\r
- return pressModifiers;\r
- }\r
- \r
- public int clickModifiers() {\r
- return clickModifiers;\r
- }\r
- \r
- public int dragModifiers() {\r
- return dragModifiers;\r
- }\r
- \r
- public int moveModifiers() {\r
- return moveModifiers;\r
- }\r
- \r
- public int clickButton() {\r
- return clickButton;\r
- }\r
- \r
- \r
- public void update() {\r
- prevMouseX = mouseX;\r
- prevMouseY = mouseY;\r
- mouseX = awtMouseX;\r
- mouseY = awtMouseY;\r
- //System.out.println(mouseX + " " + mouseY);\r
- mousePressed = awtPressed;\r
- awtPressed = false;\r
- mouseReleased = awtReleased;\r
- awtReleased = false;\r
- mouseMoved = awtMouseMoved;\r
- awtMouseMoved = false;\r
- mouseDragged = awtDragged;\r
- awtDragged = false;\r
- mouseClicked = awtMouseClicked;\r
- awtMouseClicked = false;\r
- pressModifiers = awtPressModifiers;\r
- // awtPressModifiers = 0;\r
- clickModifiers = awtClickModifiers;\r
- //awtClickModifiers = 0;\r
- dragModifiers = awtDragModifiers;\r
- // awtDragModifiers = 0;\r
- moveModifiers = awtMoveModifiers;\r
- //awtMoveModifiers = 0;\r
- clickButton = awtClickButton;\r
- awtClickButton = 0;\r
- for (int i = 0; i < keyDown.length; i++) {\r
- if (keyDown[i] && !keyTemp[i]) {\r
- keyTemp[i] = true;\r
- keyPressed[i] = true;\r
- }\r
- else if (keyDown[i] && keyTemp[i]) {\r
- keyPressed[i] = false;\r
- }\r
- else if (!keyDown[i] && keyTemp[i]) {\r
- keyUp[i] = true;\r
- keyTemp[i] = false;\r
- keyPressed[i] = false;\r
- }\r
- else if (!keyDown[i]) {\r
- keyTemp[i] = false;\r
- keyPressed[i] = false;\r
- keyUp[i] = false;\r
- }\r
- }\r
- \r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)\r
- */\r
- public void mouseDragged(MouseEvent e) {\r
- awtMouseX = e.getX();\r
- awtMouseY = e.getY();\r
- awtDragged = true;\r
- awtDragModifiers = e.getModifiers() | e.getButton();\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)\r
- */\r
- public void mouseReleased(MouseEvent e) {\r
- awtReleased = true;\r
- //ms.set(msTmp);\r
-\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- * \r
- * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
- */\r
- public void mouseClicked(MouseEvent e) {\r
-\r
- awtMouseX = e.getX();\r
- awtMouseY = e.getY();\r
- e.getButton();\r
- \r
- awtClickModifiers = e.getModifiersEx();\r
- awtClickButton = e.getButton();\r
- awtMouseClicked = true;\r
-\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- * \r
- * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)\r
- */\r
- public void mouseEntered(MouseEvent arg0) {\r
-\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- * \r
- * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)\r
- */\r
- public void mouseExited(MouseEvent arg0) {\r
-\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- * \r
- * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)\r
- */\r
- public void mouseMoved(MouseEvent arg0) {\r
-\r
- awtMouseMoved = true;\r
- awtMouseX = arg0.getX();\r
- awtMouseY = arg0.getY();\r
- awtMoveModifiers = arg0.getModifiersEx();\r
-\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)\r
- */\r
- public void keyPressed(KeyEvent arg0) {\r
- keyDown[arg0.getKeyCode()] = true;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)\r
- */\r
- public void keyReleased(KeyEvent arg0) {\r
- keyDown[arg0.getKeyCode()] = false;\r
- }\r
- \r
- \r
- /* (non-Javadoc)\r
- * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)\r
- */\r
- public void keyTyped(KeyEvent e) {\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)\r
- */\r
- public void mousePressed(MouseEvent e) {\r
- awtMouseX = e.getX();\r
- awtMouseY = e.getY();\r
- awtPressed = true;\r
- awtPressModifiers = e.getModifiers() | e.getButton();\r
- }\r
- \r
- public void setMouseMoved(boolean b) {\r
-\r
- }\r
- \r
- public void setMouseX(int x) {\r
-\r
- }\r
- \r
- public void setMouseY(int y) {\r
-\r
- }\r
- \r
- public String toString() {\r
- String s = "";\r
- s += "(" + mouseX + "," + mouseY + ")\n";\r
- s += "Pressed " + mousePressed + "\n";\r
- s += "Released " + mouseReleased + "\n";\r
- s += "Moved " + mouseMoved + "\n";\r
- s += "Dragged " + mouseDragged + "\n";\r
- s += "Clicked " + mouseClicked + "\n";\r
- s += "DragModifiers " + dragModifiers + "\n";\r
- s += "ClickModifiers " + clickModifiers + "\n";\r
- s += "PressModifiers " + pressModifiers + "\n";\r
- return s;\r
- }\r
-}
\ No newline at end of file