]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/adapter/AWTRemoteEventAdapter.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scenegraph / src / org / simantics / scenegraph / g2d / events / adapter / AWTRemoteEventAdapter.java
index 543c9771ed88d3cf1f8737b3df3ba795f6a20534..af9f713e1c38e52d261707796069ad4ba4d3766b 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\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.scenegraph.g2d.events.adapter;\r
-\r
-import java.awt.AWTEvent;\r
-import java.awt.event.AWTEventListener;\r
-import java.awt.event.InputEvent;\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
-import java.awt.event.MouseWheelEvent;\r
-import java.awt.event.MouseWheelListener;\r
-import java.awt.geom.Point2D;\r
-import org.simantics.scenegraph.g2d.events.IEventHandler;\r
-import org.simantics.scenegraph.g2d.events.IEventQueue;\r
-import org.simantics.scenegraph.g2d.events.KeyEvent.KeyPressedEvent;\r
-import org.simantics.scenegraph.g2d.events.KeyEvent.KeyReleasedEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonPressedEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonReleasedEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDoubleClickedEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseEnterEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseExitEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseMovedEvent;\r
-import org.simantics.scenegraph.g2d.events.MouseEvent.MouseWheelMovedEvent;\r
-import org.simantics.scenegraph.g2d.events.adapter.AbstractEventAdapter;\r
-\r
-\r
-/**\r
- * Listens to objectinput stream and reads AWT events\r
- * Adapts AWT events into G2D events.\r
- * \r
- * Sends adapted events to IEventHandler\r
- */\r
-public class AWTRemoteEventAdapter extends AbstractEventAdapter implements AWTEventListener, MouseListener, MouseMotionListener, MouseWheelListener, KeyListener {\r
-\r
-    /** Mouse id of the default mouse */\r
-    public static final int MOUSE_ID     = 0;\r
-\r
-    private long[]          pressTime    = new long[5];\r
-    int                     buttonStatus = 0;\r
-\r
-    /**\r
-     * create new adapter\r
-     * @param input the input stream where the events are read from\r
-     * @param sender the sender field in the events\r
-     * @param delegator the target of the adapted events\r
-     */\r
-    public AWTRemoteEventAdapter(Object sender, IEventHandler delegator) {\r
-        super(sender, delegator);\r
-    }\r
-\r
-    /**\r
-     * create new adapter\r
-     * @param sender the sender field in the events\r
-     * @param queue\r
-     */\r
-    public AWTRemoteEventAdapter(Object sender, IEventQueue queue) {\r
-        super(sender, queue);\r
-    }  \r
-\r
-    private Point2D getControlPosition(MouseEvent e)\r
-    {\r
-        return new Point2D.Double(e.getX(), e.getY());\r
-    }\r
-\r
-    private Point2D getScreenPosition(MouseEvent e)\r
-    {\r
-        java.awt.Point p = e.getLocationOnScreen();\r
-        return new Point2D.Double(p.x, p.y);\r
-    }\r
-\r
-    private int getMouseButton(MouseEvent e)\r
-    {\r
-        int awtMouseButton = e.getButton();\r
-        if (awtMouseButton == MouseEvent.BUTTON1)\r
-            return org.simantics.scenegraph.g2d.events.MouseEvent.LEFT_BUTTON;\r
-        if (awtMouseButton == MouseEvent.BUTTON2)\r
-            return org.simantics.scenegraph.g2d.events.MouseEvent.MIDDLE_BUTTON;\r
-        if (awtMouseButton == MouseEvent.BUTTON3)\r
-            return org.simantics.scenegraph.g2d.events.MouseEvent.RIGHT_BUTTON;\r
-        return awtMouseButton;\r
-    }\r
-\r
-    private static int getStateMask(MouseEvent e) {\r
-        int modifiers = e.getModifiersEx();\r
-        int stateMask = 0;\r
-        if((modifiers & InputEvent.CTRL_DOWN_MASK) != 0)\r
-            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.CTRL_MASK;\r
-        if((modifiers & InputEvent.ALT_DOWN_MASK) != 0)\r
-            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.ALT_MASK;\r
-        if((modifiers & InputEvent.ALT_GRAPH_DOWN_MASK) != 0)\r
-            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.ALT_GRAPH_MASK;\r
-        if((modifiers & InputEvent.SHIFT_DOWN_MASK) != 0)\r
-            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.SHIFT_MASK;\r
-        return stateMask;\r
-    }\r
-\r
-\r
-    public void mouseEntered(MouseEvent e) {\r
-        buttonStatus = 0;\r
-        MouseEnterEvent me = new MouseEnterEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e)); \r
-        handleEvent(me);\r
-    }\r
-\r
-\r
-    public void mouseExited(MouseEvent e) {\r
-        MouseExitEvent me = new MouseExitEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e));\r
-        handleEvent(me);\r
-    }\r
-\r
-\r
-    public void mousePressed(MouseEvent e) {\r
-        //System.out.println("AWT mouse pressed: " + e);\r
-        int mouseButton = getMouseButton(e);\r
-        if (mouseButton<=pressTime.length) pressTime[mouseButton-1] = e.getWhen();\r
-        buttonStatus |= 1 << (mouseButton-1);\r
-\r
-        handleEvent(new MouseButtonPressedEvent(sender, e.getWhen(), MOUSE_ID,\r
-                buttonStatus, getStateMask(e), mouseButton, getControlPosition(e), getScreenPosition(e)));\r
-        if (e.getClickCount() == 2) {\r
-            handleEvent(new MouseDoubleClickedEvent(sender, e.getWhen(),\r
-                    MOUSE_ID, buttonStatus, getStateMask(e), mouseButton, getControlPosition(e), getScreenPosition(e)));\r
-        }\r
-    }\r
-\r
-\r
-    public void mouseReleased(MouseEvent e) {\r
-        //System.out.println("AWT mouse released: " + e);\r
-        int mouseButton = getMouseButton(e);\r
-        long holdTime = Long.MAX_VALUE;\r
-        if (mouseButton<=pressTime.length) \r
-            holdTime = e.getWhen() - pressTime[mouseButton-1];\r
-\r
-        buttonStatus &=~ (1<<(mouseButton-1)); \r
-        MouseButtonReleasedEvent me = new MouseButtonReleasedEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), mouseButton, holdTime, getControlPosition(e), getScreenPosition(e));\r
-        handleEvent(me);\r
-    }\r
-\r
-\r
-    public void mouseDragged(MouseEvent e) {\r
-        MouseMovedEvent me = new MouseMovedEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e));\r
-        handleEvent(me);\r
-    }\r
-\r
-\r
-    public void mouseMoved(MouseEvent e) {\r
-        MouseMovedEvent me = new MouseMovedEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e));\r
-        handleEvent(me);\r
-    }\r
-\r
-\r
-    public void mouseWheelMoved(MouseWheelEvent e) {\r
-        int wheelRotation = 0;\r
-        if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {\r
-            wheelRotation = -e.getUnitsToScroll();\r
-        } else {\r
-            wheelRotation = -e.getWheelRotation();\r
-        }\r
-        handleEvent(new MouseWheelMovedEvent(\r
-                sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e),\r
-                e.getScrollType(), e.getScrollAmount(), wheelRotation\r
-                ));\r
-    }\r
-\r
-\r
-    public void mouseClicked(MouseEvent e) {\r
-    }\r
-\r
-\r
-    public void keyPressed(KeyEvent e) {\r
-        handleEvent(\r
-                new KeyPressedEvent(sender, e.getWhen(), e.getKeyChar(), e.getKeyCode(), e.getModifiers()));\r
-    }\r
-\r
-\r
-    public void keyReleased(KeyEvent e) {\r
-        handleEvent(\r
-                new KeyReleasedEvent(sender, e.getWhen(), e.getKeyChar(), e.getKeyCode(), e.getModifiers()));\r
-    }\r
-\r
-\r
-    public void keyTyped(KeyEvent e) {\r
-//     System.out.println("keyTyped("+e+")");\r
-//        handleEvent(\r
-//                new KeyTypedEvent(sender, e.getWhen(), e.getKeyChar(), e.getKeyCode(), e.getModifiers()));\r
-    }\r
-\r
-\r
-    public void eventDispatched(AWTEvent event) {\r
-        if(event.getID() == KeyEvent.KEY_PRESSED) {\r
-            keyPressed((KeyEvent)event);\r
-        }\r
-        if(event.getID() == KeyEvent.KEY_RELEASED) {\r
-            keyReleased((KeyEvent)event);\r
-        }\r
-        if(event.getID() == KeyEvent.KEY_TYPED) {\r
-            keyTyped((KeyEvent)event);\r
-        }\r
-\r
-        if(event.getID() == MouseEvent.MOUSE_MOVED) {\r
-            mouseMoved((MouseEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_DRAGGED) {\r
-            mouseDragged((MouseEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_PRESSED) {\r
-            mousePressed((MouseEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_RELEASED) {\r
-            mouseReleased((MouseEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_CLICKED) {\r
-            mouseClicked((MouseEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_WHEEL) {\r
-            mouseWheelMoved((MouseWheelEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_ENTERED) {\r
-            mouseEntered((MouseEvent)event);\r
-        }\r
-        if(event.getID() == MouseEvent.MOUSE_EXITED) {\r
-            mouseExited((MouseEvent)event);\r
-        }\r
-    }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.scenegraph.g2d.events.adapter;
+
+import java.awt.AWTEvent;
+import java.awt.event.AWTEventListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseWheelEvent;
+import java.awt.event.MouseWheelListener;
+import java.awt.geom.Point2D;
+import org.simantics.scenegraph.g2d.events.IEventHandler;
+import org.simantics.scenegraph.g2d.events.IEventQueue;
+import org.simantics.scenegraph.g2d.events.KeyEvent.KeyPressedEvent;
+import org.simantics.scenegraph.g2d.events.KeyEvent.KeyReleasedEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonPressedEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonReleasedEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDoubleClickedEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseEnterEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseExitEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseMovedEvent;
+import org.simantics.scenegraph.g2d.events.MouseEvent.MouseWheelMovedEvent;
+import org.simantics.scenegraph.g2d.events.adapter.AbstractEventAdapter;
+
+
+/**
+ * Listens to objectinput stream and reads AWT events
+ * Adapts AWT events into G2D events.
+ * 
+ * Sends adapted events to IEventHandler
+ */
+public class AWTRemoteEventAdapter extends AbstractEventAdapter implements AWTEventListener, MouseListener, MouseMotionListener, MouseWheelListener, KeyListener {
+
+    /** Mouse id of the default mouse */
+    public static final int MOUSE_ID     = 0;
+
+    private long[]          pressTime    = new long[5];
+    int                     buttonStatus = 0;
+
+    /**
+     * create new adapter
+     * @param input the input stream where the events are read from
+     * @param sender the sender field in the events
+     * @param delegator the target of the adapted events
+     */
+    public AWTRemoteEventAdapter(Object sender, IEventHandler delegator) {
+        super(sender, delegator);
+    }
+
+    /**
+     * create new adapter
+     * @param sender the sender field in the events
+     * @param queue
+     */
+    public AWTRemoteEventAdapter(Object sender, IEventQueue queue) {
+        super(sender, queue);
+    }  
+
+    private Point2D getControlPosition(MouseEvent e)
+    {
+        return new Point2D.Double(e.getX(), e.getY());
+    }
+
+    private Point2D getScreenPosition(MouseEvent e)
+    {
+        java.awt.Point p = e.getLocationOnScreen();
+        return new Point2D.Double(p.x, p.y);
+    }
+
+    private int getMouseButton(MouseEvent e)
+    {
+        int awtMouseButton = e.getButton();
+        if (awtMouseButton == MouseEvent.BUTTON1)
+            return org.simantics.scenegraph.g2d.events.MouseEvent.LEFT_BUTTON;
+        if (awtMouseButton == MouseEvent.BUTTON2)
+            return org.simantics.scenegraph.g2d.events.MouseEvent.MIDDLE_BUTTON;
+        if (awtMouseButton == MouseEvent.BUTTON3)
+            return org.simantics.scenegraph.g2d.events.MouseEvent.RIGHT_BUTTON;
+        return awtMouseButton;
+    }
+
+    private static int getStateMask(MouseEvent e) {
+        int modifiers = e.getModifiersEx();
+        int stateMask = 0;
+        if((modifiers & InputEvent.CTRL_DOWN_MASK) != 0)
+            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.CTRL_MASK;
+        if((modifiers & InputEvent.ALT_DOWN_MASK) != 0)
+            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.ALT_MASK;
+        if((modifiers & InputEvent.ALT_GRAPH_DOWN_MASK) != 0)
+            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.ALT_GRAPH_MASK;
+        if((modifiers & InputEvent.SHIFT_DOWN_MASK) != 0)
+            stateMask |= org.simantics.scenegraph.g2d.events.MouseEvent.SHIFT_MASK;
+        return stateMask;
+    }
+
+
+    public void mouseEntered(MouseEvent e) {
+        buttonStatus = 0;
+        MouseEnterEvent me = new MouseEnterEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e)); 
+        handleEvent(me);
+    }
+
+
+    public void mouseExited(MouseEvent e) {
+        MouseExitEvent me = new MouseExitEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e));
+        handleEvent(me);
+    }
+
+
+    public void mousePressed(MouseEvent e) {
+        //System.out.println("AWT mouse pressed: " + e);
+        int mouseButton = getMouseButton(e);
+        if (mouseButton<=pressTime.length) pressTime[mouseButton-1] = e.getWhen();
+        buttonStatus |= 1 << (mouseButton-1);
+
+        handleEvent(new MouseButtonPressedEvent(sender, e.getWhen(), MOUSE_ID,
+                buttonStatus, getStateMask(e), mouseButton, getControlPosition(e), getScreenPosition(e)));
+        if (e.getClickCount() == 2) {
+            handleEvent(new MouseDoubleClickedEvent(sender, e.getWhen(),
+                    MOUSE_ID, buttonStatus, getStateMask(e), mouseButton, getControlPosition(e), getScreenPosition(e)));
+        }
+    }
+
+
+    public void mouseReleased(MouseEvent e) {
+        //System.out.println("AWT mouse released: " + e);
+        int mouseButton = getMouseButton(e);
+        long holdTime = Long.MAX_VALUE;
+        if (mouseButton<=pressTime.length) 
+            holdTime = e.getWhen() - pressTime[mouseButton-1];
+
+        buttonStatus &=~ (1<<(mouseButton-1)); 
+        MouseButtonReleasedEvent me = new MouseButtonReleasedEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), mouseButton, holdTime, getControlPosition(e), getScreenPosition(e));
+        handleEvent(me);
+    }
+
+
+    public void mouseDragged(MouseEvent e) {
+        MouseMovedEvent me = new MouseMovedEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e));
+        handleEvent(me);
+    }
+
+
+    public void mouseMoved(MouseEvent e) {
+        MouseMovedEvent me = new MouseMovedEvent(sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e));
+        handleEvent(me);
+    }
+
+
+    public void mouseWheelMoved(MouseWheelEvent e) {
+        int wheelRotation = 0;
+        if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
+            wheelRotation = -e.getUnitsToScroll();
+        } else {
+            wheelRotation = -e.getWheelRotation();
+        }
+        handleEvent(new MouseWheelMovedEvent(
+                sender, e.getWhen(), MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e),
+                e.getScrollType(), e.getScrollAmount(), wheelRotation
+                ));
+    }
+
+
+    public void mouseClicked(MouseEvent e) {
+    }
+
+
+    public void keyPressed(KeyEvent e) {
+        handleEvent(
+                new KeyPressedEvent(sender, e.getWhen(), e.getKeyChar(), e.getKeyCode(), e.getModifiers()));
+    }
+
+
+    public void keyReleased(KeyEvent e) {
+        handleEvent(
+                new KeyReleasedEvent(sender, e.getWhen(), e.getKeyChar(), e.getKeyCode(), e.getModifiers()));
+    }
+
+
+    public void keyTyped(KeyEvent e) {
+//     System.out.println("keyTyped("+e+")");
+//        handleEvent(
+//                new KeyTypedEvent(sender, e.getWhen(), e.getKeyChar(), e.getKeyCode(), e.getModifiers()));
+    }
+
+
+    public void eventDispatched(AWTEvent event) {
+        if(event.getID() == KeyEvent.KEY_PRESSED) {
+            keyPressed((KeyEvent)event);
+        }
+        if(event.getID() == KeyEvent.KEY_RELEASED) {
+            keyReleased((KeyEvent)event);
+        }
+        if(event.getID() == KeyEvent.KEY_TYPED) {
+            keyTyped((KeyEvent)event);
+        }
+
+        if(event.getID() == MouseEvent.MOUSE_MOVED) {
+            mouseMoved((MouseEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_DRAGGED) {
+            mouseDragged((MouseEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_PRESSED) {
+            mousePressed((MouseEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_RELEASED) {
+            mouseReleased((MouseEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_CLICKED) {
+            mouseClicked((MouseEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_WHEEL) {
+            mouseWheelMoved((MouseWheelEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_ENTERED) {
+            mouseEntered((MouseEvent)event);
+        }
+        if(event.getID() == MouseEvent.MOUSE_EXITED) {
+            mouseExited((MouseEvent)event);
+        }
+    }
+}