X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2Fhumaninput%2FHIDInputTracker.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2Fhumaninput%2FHIDInputTracker.java;h=af0ae3104fa42dfe325ea2e4e0bb5a533ea52cf4;hp=b5061dddf9919672cb0c6e19c82eb2b895280351;hb=4d8ec2cf940099ca17f075effd1c310a99f3c3a6;hpb=7e3faa91462a3639b58e83b766b9d5a01bb9cfd2 diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java index b5061dd..af0ae31 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java @@ -1,5 +1,5 @@ /* - * Sixth 3D engine. Author: Svjatoslav Agejenko. + * Sixth 3D engine. Author: Svjatoslav Agejenko. * This project is released under Creative Commons Zero (CC0) license. */ package eu.svjatoslav.sixth.e3d.gui.humaninput; @@ -16,6 +16,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +/** + * Human input device input tracker. + *

+ * Idea is to capture all keyboard and mouse inputs from underlying operating system in this class + * and forward those as needed to subsequent virtual components. + */ public class HIDInputTracker implements MouseMotionListener, KeyListener, MouseListener, MouseWheelListener, ViewRenderListener { @@ -69,7 +75,7 @@ public class HIDInputTracker implements * @return true if view needs to be repainted. */ private boolean handleKeyboardEvents() { - final UserInputHandler currentFocusOwner = viewPanel.getKeyboardFocusStack().getCurrentFocusOwner(); + final KeyboardInputHandler currentFocusOwner = viewPanel.getKeyboardFocusStack().getCurrentFocusOwner(); ArrayList unprocessedKeyboardEvents = getUnprocessedKeyboardEvents(); return currentFocusOwner != null @@ -88,7 +94,7 @@ public class HIDInputTracker implements * @return true if view update is needed. */ private boolean forwardKeyboardEventsToFocusOwner( - UserInputHandler currentFocusOwner, ArrayList keyEvents) { + KeyboardInputHandler currentFocusOwner, ArrayList keyEvents) { boolean viewUpdateNeeded = false; for (KeyEvent keyEvent : keyEvents) @@ -97,7 +103,7 @@ public class HIDInputTracker implements return viewUpdateNeeded; } - private boolean processKeyEvent(UserInputHandler currentFocusOwner, KeyEvent keyEvent) { + private boolean processKeyEvent(KeyboardInputHandler currentFocusOwner, KeyEvent keyEvent) { switch (keyEvent.getID()) { case KeyEvent.KEY_PRESSED: return currentFocusOwner.keyPressed(keyEvent, viewPanel); @@ -114,7 +120,7 @@ public class HIDInputTracker implements private synchronized boolean handleMouseClicksAndHover(final ViewPanel viewPanel) { boolean rerenderNeeded = false; MouseEvent event = findClickLocationToTrace(); - if (event != null){ + if (event != null) { // process mouse clicks as a first priority rerenderNeeded = true; } else { @@ -240,7 +246,8 @@ public class HIDInputTracker implements * @return true if view needs to be repainted. */ private boolean handleMouseDragging() { - // TODO: need to detect whether user moved mouse or touch screen + // TODO: It would be nice here to detect somehow whether user moved mouse or touch screen. + // in case of touch screen, we would like to reverse movement along X and Y axis. final Avatar avatar = viewPanel.getAvatar(); // for mouse