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%2FUserInputTracker.java;h=63bfd19eb58c2edcc53ba5e49e4ce7b7c3ad7796;hp=1dd6f7a3f54a1a9349ea68dde8e86277e0125c65;hb=8bceefbdb7316557ee77902cc6ac216f5c1ff160;hpb=96f76bab30b47db83a1c9061b8916c69657f1e13 diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/UserInputTracker.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/UserInputTracker.java index 1dd6f7a..63bfd19 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/UserInputTracker.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/UserInputTracker.java @@ -12,7 +12,6 @@ package eu.svjatoslav.sixth.e3d.gui.humaninput; import eu.svjatoslav.sixth.e3d.geometry.Point2D; import eu.svjatoslav.sixth.e3d.gui.Avatar; import eu.svjatoslav.sixth.e3d.gui.ViewPanel; -import eu.svjatoslav.sixth.e3d.gui.ViewContext; import eu.svjatoslav.sixth.e3d.gui.ViewRenderListener; import javax.swing.*; @@ -39,26 +38,27 @@ public class UserInputTracker private int wheelMovedDirection = 0; private Point2D mouseDraggedDirection = new Point2D(); private Point2D oldMouseCoordinatesWhenDragging; - private ViewContext viewContext; + private ViewPanel viewPanel; private Point2D currentMouseLocation; private boolean mouseMoved; private boolean mouseWithinWindow = false; - public UserInputTracker(final ViewContext viewContext) { - this.viewContext = viewContext; + public UserInputTracker(final ViewPanel viewPanel) { + this.viewPanel = viewPanel; + bind(viewPanel); } /** * {@inheritDoc} */ @Override - public boolean beforeRender(final ViewContext viewContext, final int millisecondsSinceLastFrame) { + public boolean beforeRender(final ViewPanel viewPanel, final int millisecondsSinceLastFrame) { - boolean viewUpdateNeeded = handleDetectedMouseClicks(viewContext.getViewPanel()); + boolean viewUpdateNeeded = handleDetectedMouseClicks(viewPanel); viewUpdateNeeded |= handleDetectedKeyEvents(); - viewContext.getKeyboardFocusTracker().getCurrentFocusOwner().beforeRender(viewContext, + viewPanel.getKeyboardFocusTracker().getCurrentFocusOwner().beforeRender(viewPanel, millisecondsSinceLastFrame); viewUpdateNeeded |= trackMouse(); @@ -66,7 +66,7 @@ public class UserInputTracker return viewUpdateNeeded; } - public void bind(final JPanel panel) { + private void bind(final JPanel panel) { panel.addMouseMotionListener(this); panel.addKeyListener(this); @@ -79,7 +79,7 @@ public class UserInputTracker private boolean handleDetectedKeyEvents() { boolean keyEventsHandled = false; - final UserInputHandler currentFocusOwner = viewContext.getKeyboardFocusTracker().getCurrentFocusOwner(); + final UserInputHandler currentFocusOwner = viewPanel.getKeyboardFocusTracker().getCurrentFocusOwner(); synchronized (detectedKeyEvents) { if (currentFocusOwner == null) { @@ -92,12 +92,12 @@ public class UserInputTracker switch (keyEvent.getID()) { case KeyEvent.KEY_PRESSED: - currentFocusOwner.keyPressed(keyEvent, viewContext); + currentFocusOwner.keyPressed(keyEvent, viewPanel); keyEventsHandled = true; break; case KeyEvent.KEY_RELEASED: - currentFocusOwner.keyReleased(keyEvent, viewContext); + currentFocusOwner.keyReleased(keyEvent, viewPanel); keyEventsHandled = true; break; } @@ -137,7 +137,7 @@ public class UserInputTracker synchronized (detectedKeyEvents) { pressedKeysToPressedTimeMap.put(evt.getKeyCode(), System.currentTimeMillis()); detectedKeyEvents.add(evt); - viewContext.getViewPanel().repaintDuringNextViewUpdate(); + viewPanel.repaintDuringNextViewUpdate(); } } @@ -146,7 +146,7 @@ public class UserInputTracker synchronized (detectedKeyEvents) { pressedKeysToPressedTimeMap.remove(evt.getKeyCode()); detectedKeyEvents.add(evt); - viewContext.getViewPanel().repaintDuringNextViewUpdate(); + viewPanel.repaintDuringNextViewUpdate(); } } @@ -210,7 +210,7 @@ public class UserInputTracker * Interpret mouse movement */ private boolean trackMouse() { - final Avatar avatar = viewContext.getAvatar(); + final Avatar avatar = viewPanel.getAvatar(); trackDragging(avatar); trackVerticalScrolling(avatar);