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.*;
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();
return viewUpdateNeeded;
}
- public void bind(final JPanel panel) {
+ private void bind(final JPanel panel) {
panel.addMouseMotionListener(this);
panel.addKeyListener(this);
private boolean handleDetectedKeyEvents() {
boolean keyEventsHandled = false;
- final UserInputHandler currentFocusOwner = viewContext.getKeyboardFocusTracker().getCurrentFocusOwner();
+ final UserInputHandler currentFocusOwner = viewPanel.getKeyboardFocusTracker().getCurrentFocusOwner();
synchronized (detectedKeyEvents) {
if (currentFocusOwner == null) {
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;
}
synchronized (detectedKeyEvents) {
pressedKeysToPressedTimeMap.put(evt.getKeyCode(), System.currentTimeMillis());
detectedKeyEvents.add(evt);
- viewContext.getViewPanel().repaintDuringNextViewUpdate();
+ viewPanel.repaintDuringNextViewUpdate();
}
}
synchronized (detectedKeyEvents) {
pressedKeysToPressedTimeMap.remove(evt.getKeyCode());
detectedKeyEvents.add(evt);
- viewContext.getViewPanel().repaintDuringNextViewUpdate();
+ viewPanel.repaintDuringNextViewUpdate();
}
}
* Interpret mouse movement
*/
private boolean trackMouse() {
- final Avatar avatar = viewContext.getAvatar();
+ final Avatar avatar = viewPanel.getAvatar();
trackDragging(avatar);
trackVerticalScrolling(avatar);