From f2cc174f1d8b6b37351dc96071d37bbd897b2d98 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Thu, 13 Jul 2017 19:46:00 -0300 Subject: [PATCH 1/9] Removed trailing whitespaces --- src/com/zebraimaging/ZebraInputHandler.java | 26 ++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/com/zebraimaging/ZebraInputHandler.java b/src/com/zebraimaging/ZebraInputHandler.java index 1e855876b8..7fe937c110 100644 --- a/src/com/zebraimaging/ZebraInputHandler.java +++ b/src/com/zebraimaging/ZebraInputHandler.java @@ -19,28 +19,28 @@ public class ZebraInputHandler extends AWTInputHandler /** All instantiations of this class are stored for internal retrieval. */ private static List<ZebraInputHandler> instances = new ArrayList<ZebraInputHandler>(); private static Timer repaintContextsTimer = null; - + final static TimerTask repaintContextsTask = new TimerTask() { - public void run() + public void run() { Iterator<ZebraInputHandler> itr = instances.iterator(); while (itr.hasNext()) { - ZebraInputHandler h = itr.next(); + ZebraInputHandler h = itr.next(); if (h.NeedsRefresh() == true) { h.SetRefresh(false); h.getWorldWindow().redraw(); - } + } } } }; - + private long hwnd = 0; - private boolean arGL2Present = false; + private boolean arGL2Present = false; private boolean refresh = false; - + public ZebraInputHandler() { /** @@ -49,7 +49,7 @@ public ZebraInputHandler() * (b) Not using the Zebra integration tools. */ try - { + { System.loadLibrary("arGL2Integrator"); arGL2Present = true; instances.add(this); @@ -59,7 +59,7 @@ public ZebraInputHandler() { System.out.println("FAILED to load arGL2Integrator.dll"); } - + if (repaintContextsTimer == null) { repaintContextsTimer = new Timer(); @@ -68,15 +68,15 @@ public ZebraInputHandler() } private synchronized void SetRefresh(boolean value) - { + { refresh = value; } - + private synchronized boolean NeedsRefresh() { return refresh; } - + public void keyPressed(KeyEvent e) { boolean consumed = false; @@ -198,7 +198,7 @@ private static ZebraInputHandler getInstance(long hwnd) // Java static methods executed by arGL2Integrator.dll via JNI public static void forceRepaint(long hwnd) - { + { /** Force the instance of the ZebraViewInputHandler class to redraw it's associated OpenGL window. */ ZebraInputHandler h = getInstance(hwnd); if (h != null) From 2572069dd313653c6d2bbf97a7d1c927515654f9 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Thu, 13 Jul 2017 20:04:34 -0300 Subject: [PATCH 2/9] =?UTF-8?q?Remove=20some=20trailing=20whitespaces?= =?UTF-8?q?=C2=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gov/nasa/worldwind/Restorable.java | 2 +- src/gov/nasa/worldwind/animation/AngleAnimator.java | 4 +--- src/gov/nasa/worldwind/animation/AnimationController.java | 2 +- src/gov/nasa/worldwind/animation/BasicAnimator.java | 2 +- src/gov/nasa/worldwind/animation/DoubleAnimator.java | 4 ++-- src/gov/nasa/worldwind/animation/PositionAnimator.java | 4 ++-- src/gov/nasa/worldwind/animation/SmoothInterpolator.java | 2 +- .../nasa/worldwind/view/firstperson/FlyViewInputHandler.java | 4 ++-- 8 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/gov/nasa/worldwind/Restorable.java b/src/gov/nasa/worldwind/Restorable.java index ea3d0c9eb5..669835be27 100644 --- a/src/gov/nasa/worldwind/Restorable.java +++ b/src/gov/nasa/worldwind/Restorable.java @@ -27,7 +27,7 @@ public interface Restorable /** * Returns an XML document string describing the object's state. This state can be restored later by calling * <code>restoreState</code> and passing the XML document. - * + * * @return an XML document string describing the object's state. */ String getRestorableState(); diff --git a/src/gov/nasa/worldwind/animation/AngleAnimator.java b/src/gov/nasa/worldwind/animation/AngleAnimator.java index 3125354726..b62b12a384 100644 --- a/src/gov/nasa/worldwind/animation/AngleAnimator.java +++ b/src/gov/nasa/worldwind/animation/AngleAnimator.java @@ -112,7 +112,7 @@ public Angle getEnd() /** * Get the {@link gov.nasa.worldwind.util.PropertyAccessor} in use by this animation - * + * * @return the {@link gov.nasa.worldwind.util.PropertyAccessor} in use by this animation */ public PropertyAccessor.AngleAccessor getPropertyAccessor() @@ -150,7 +150,5 @@ private Angle nextAngle(double interpolant) interpolant, this.begin, this.end); - - } } diff --git a/src/gov/nasa/worldwind/animation/AnimationController.java b/src/gov/nasa/worldwind/animation/AnimationController.java index 5eef377394..8d0d1ce603 100644 --- a/src/gov/nasa/worldwind/animation/AnimationController.java +++ b/src/gov/nasa/worldwind/animation/AnimationController.java @@ -84,7 +84,7 @@ public boolean stepAnimators() /** * Returns <code>true</code> if the controller has any active <code>Animations</code> - * + * * @return true if there are any active animations in this <code>CompountAnimation</code> */ public boolean hasActiveAnimation() diff --git a/src/gov/nasa/worldwind/animation/BasicAnimator.java b/src/gov/nasa/worldwind/animation/BasicAnimator.java index cff870e8a1..4ed8970ccf 100644 --- a/src/gov/nasa/worldwind/animation/BasicAnimator.java +++ b/src/gov/nasa/worldwind/animation/BasicAnimator.java @@ -27,7 +27,7 @@ public class BasicAnimator implements Animator /** * Constructs a <code>BasicAnimator</code>. Sets the <code>Animator</code>'s <code>Interpolator</code> to - * <code>null</code>. + * <code>null</code>. */ public BasicAnimator() { diff --git a/src/gov/nasa/worldwind/animation/DoubleAnimator.java b/src/gov/nasa/worldwind/animation/DoubleAnimator.java index bb33a91405..444d8ad742 100644 --- a/src/gov/nasa/worldwind/animation/DoubleAnimator.java +++ b/src/gov/nasa/worldwind/animation/DoubleAnimator.java @@ -28,7 +28,7 @@ public DoubleAnimator(Interpolator interpolator, { this.interpolator = new ScheduledInterpolator(10000); } - + if (propertyAccessor == null) { String message = Logging.getMessage("nullValue.ViewPropertyAccessorIsNull"); @@ -90,5 +90,5 @@ public Double nextDouble(double interpolant) this.end); } - + } diff --git a/src/gov/nasa/worldwind/animation/PositionAnimator.java b/src/gov/nasa/worldwind/animation/PositionAnimator.java index 14645e7518..acc5fdceb3 100644 --- a/src/gov/nasa/worldwind/animation/PositionAnimator.java +++ b/src/gov/nasa/worldwind/animation/PositionAnimator.java @@ -14,7 +14,7 @@ */ public class PositionAnimator extends BasicAnimator { - + protected Position begin; protected Position end; protected final PropertyAccessor.PositionAccessor propertyAccessor; @@ -47,7 +47,7 @@ public PositionAnimator( this.end = end; this.propertyAccessor = propertyAccessor; } - + public void setBegin(Position begin) { this.begin = begin; diff --git a/src/gov/nasa/worldwind/animation/SmoothInterpolator.java b/src/gov/nasa/worldwind/animation/SmoothInterpolator.java index d6d9fbc499..456360d1cb 100644 --- a/src/gov/nasa/worldwind/animation/SmoothInterpolator.java +++ b/src/gov/nasa/worldwind/animation/SmoothInterpolator.java @@ -42,5 +42,5 @@ protected static double basicInterpolant(double interpolant, double startInterpo // ============== Helper Functions ======================= // // Map amount range [startAmount, stopAmount] to [0, 1] when amount is inside range. - + } diff --git a/src/gov/nasa/worldwind/view/firstperson/FlyViewInputHandler.java b/src/gov/nasa/worldwind/view/firstperson/FlyViewInputHandler.java index 3637ad96a7..7755cb6916 100644 --- a/src/gov/nasa/worldwind/view/firstperson/FlyViewInputHandler.java +++ b/src/gov/nasa/worldwind/view/firstperson/FlyViewInputHandler.java @@ -76,7 +76,7 @@ public boolean inputActionPerformed(AbstractViewInputHandler inputHandler, KeyEv } return true; } - } + } AnimationController uiAnimControl = new AnimationController(); AnimationController gotoAnimControl = new AnimationController(); @@ -182,7 +182,7 @@ public FlyViewInputHandler() RollActionListener rollActionListener = new RollActionListener(); this.getAttributes().setActionListener( ViewInputAttributes.DEVICE_KEYBOARD, ViewInputAttributes.VIEW_ROLL_KEYS, rollActionListener); - + // Arrow Keys horizontal translate this.getAttributes().setValues(ViewInputAttributes.DEVICE_KEYBOARD, ViewInputAttributes.VIEW_HORIZONTAL_TRANS_KEYS, From 52a9da8a65929e11855d378283fd5e609c56037e Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Fri, 14 Jul 2017 17:09:47 -0300 Subject: [PATCH 3/9] Change the if-then-else Statement --- src/com/zebraimaging/ZebraInputHandler.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/com/zebraimaging/ZebraInputHandler.java b/src/com/zebraimaging/ZebraInputHandler.java index 7fe937c110..a1a1e12d47 100644 --- a/src/com/zebraimaging/ZebraInputHandler.java +++ b/src/com/zebraimaging/ZebraInputHandler.java @@ -82,7 +82,7 @@ public void keyPressed(KeyEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraKeyPressed(getGLCanvasHandle(), e.getKeyCode()); - if (consumed == true) + if (consumed) e.consume(); else super.keyPressed(e); @@ -93,7 +93,7 @@ public void keyReleased(KeyEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraKeyReleased(getGLCanvasHandle(), e.getKeyCode()); - if (consumed == true) + if (consumed) e.consume(); else super.keyReleased(e); @@ -104,7 +104,7 @@ public void mouseClicked(MouseEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraMouseReleased(getGLCanvasHandle(), e.getButton(), e.getX(), e.getY()); - if (consumed == true) + if (consumed) e.consume(); else super.mouseClicked(e); @@ -115,7 +115,7 @@ public void mousePressed(MouseEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraMousePressed(getGLCanvasHandle(), e.getButton(), e.getX(), e.getY()); - if (consumed == true) + if (consumed) e.consume(); else super.mousePressed(e); @@ -126,7 +126,7 @@ public void mouseReleased(MouseEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraMouseReleased(getGLCanvasHandle(), e.getButton(), e.getX(), e.getY()); - if (consumed == true) + if (consumed) e.consume(); else super.mouseReleased(e); @@ -143,7 +143,7 @@ public void mouseDragged(MouseEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraMouseMoved(getGLCanvasHandle(), button, e.getX(), e.getY()); - if (consumed == true) + if (consumed) e.consume(); else super.mouseDragged(e); @@ -154,7 +154,7 @@ public void mouseWheelMoved(MouseWheelEvent e) boolean consumed = false; if (arGL2Present) consumed = zebraMouseWheel(getGLCanvasHandle(), e.getWheelRotation()); - if (consumed == true) + if (consumed) e.consume(); else super.mouseWheelMoved(e); From 7ef2c8434b4e43beda0eeef533599700c4dad999 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Wed, 19 Jul 2017 19:53:07 -0300 Subject: [PATCH 4/9] Add the key method --- .../nasa/worldwind/awt/AWTInputHandler.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/gov/nasa/worldwind/awt/AWTInputHandler.java b/src/gov/nasa/worldwind/awt/AWTInputHandler.java index 8c4f78a581..f2d8eb438f 100644 --- a/src/gov/nasa/worldwind/awt/AWTInputHandler.java +++ b/src/gov/nasa/worldwind/awt/AWTInputHandler.java @@ -244,6 +244,26 @@ public ViewInputHandler getViewInputHandler() } */ + private void keyMethod(KeyEvent keyEvent) + { + if (this.wwd == null) + { + return; + } + + if (keyEvent == null) + { + return; + } + + this.callKeyTypedListeners(keyEvent); + + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); + } + } + public void keyTyped(KeyEvent keyEvent) { if (this.wwd == null) From 95df27b3a3ff7fdc9789304695de5162dd68bed2 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Wed, 19 Jul 2017 19:55:51 -0300 Subject: [PATCH 5/9] Add the key method --- .../nasa/worldwind/awt/AWTInputHandler.java | 896 ------------------ 1 file changed, 896 deletions(-) delete mode 100644 src/gov/nasa/worldwind/awt/AWTInputHandler.java diff --git a/src/gov/nasa/worldwind/awt/AWTInputHandler.java b/src/gov/nasa/worldwind/awt/AWTInputHandler.java deleted file mode 100644 index f2d8eb438f..0000000000 --- a/src/gov/nasa/worldwind/awt/AWTInputHandler.java +++ /dev/null @@ -1,896 +0,0 @@ -/* - * Copyright (C) 2012 United States Government as represented by the Administrator of the - * National Aeronautics and Space Administration. - * All Rights Reserved. - */ -package gov.nasa.worldwind.awt; - -import gov.nasa.worldwind.*; -import gov.nasa.worldwind.avlist.AVKey; -import gov.nasa.worldwind.event.*; -import gov.nasa.worldwind.pick.*; -import gov.nasa.worldwind.util.Logging; - -import javax.media.opengl.awt.GLJPanel; -import javax.swing.event.*; -import java.awt.*; -import java.awt.event.*; -import java.beans.PropertyChangeEvent; - -/** - * @author tag - * @version $Id: AWTInputHandler.java 2258 2014-08-22 22:08:33Z dcollins $ - */ -public class AWTInputHandler extends WWObjectImpl - implements KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, FocusListener, InputHandler, - Disposable -{ - protected WorldWindow wwd = null; - protected EventListenerList eventListeners = new EventListenerList(); - protected java.awt.Point mousePoint = new java.awt.Point(); - protected PickedObjectList hoverObjects; - protected PickedObjectList objectsAtButtonPress; - protected boolean isHovering = false; - protected boolean isDragging = false; - protected boolean forceRedrawOnMousePressed = Configuration.getBooleanValue(AVKey.REDRAW_ON_MOUSE_PRESSED, false); - protected javax.swing.Timer hoverTimer = new javax.swing.Timer(600, new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - if (AWTInputHandler.this.pickMatches(AWTInputHandler.this.hoverObjects)) - { - AWTInputHandler.this.isHovering = true; - AWTInputHandler.this.callSelectListeners(new SelectEvent(AWTInputHandler.this.wwd, - SelectEvent.HOVER, mousePoint, AWTInputHandler.this.hoverObjects)); - AWTInputHandler.this.hoverTimer.stop(); - } - } - }); - // Delegate handler for View. - protected SelectListener selectListener; - - public AWTInputHandler() - { - } - - public void dispose() - { - this.hoverTimer.stop(); - this.hoverTimer = null; - - this.setEventSource(null); - - if (this.hoverObjects != null) - this.hoverObjects.clear(); - this.hoverObjects = null; - - if (this.objectsAtButtonPress != null) - this.objectsAtButtonPress.clear(); - this.objectsAtButtonPress = null; - } - - public void setEventSource(WorldWindow newWorldWindow) - { - if (newWorldWindow != null && !(newWorldWindow instanceof Component)) - { - String message = Logging.getMessage("Awt.AWTInputHandler.EventSourceNotAComponent"); - Logging.logger().finer(message); - throw new IllegalArgumentException(message); - } - - if (newWorldWindow == this.wwd) - { - return; - } - - this.eventListeners = new EventListenerList(); // make orphans of listener references - - if (this.wwd != null) - { - Component c = (Component) this.wwd; - c.removeKeyListener(this); - c.removeMouseMotionListener(this); - c.removeMouseListener(this); - c.removeMouseWheelListener(this); - c.removeFocusListener(this); - - if (this.selectListener != null) - this.wwd.removeSelectListener(this.selectListener); - - if (this.wwd.getSceneController() != null) - this.wwd.getSceneController().removePropertyChangeListener(AVKey.VIEW, this); - } - - this.wwd = newWorldWindow; - if (this.wwd == null) - { - return; - } - - this.wwd.getView().getViewInputHandler().setWorldWindow(this.wwd); - Component c = (java.awt.Component) this.wwd; - c.addKeyListener(this); - c.addMouseMotionListener(this); - c.addMouseListener(this); - c.addMouseWheelListener(this); - c.addFocusListener(this); - - this.selectListener = new SelectListener() - { - public void selected(SelectEvent event) - { - if (event.getEventAction().equals(SelectEvent.ROLLOVER)) - { - doHover(true); - } - } - }; - this.wwd.addSelectListener(this.selectListener); - - if (this.wwd.getSceneController() != null) - this.wwd.getSceneController().addPropertyChangeListener(AVKey.VIEW, this); - } - - public void removeHoverSelectListener() - { - hoverTimer.stop(); - hoverTimer = null; - this.wwd.removeSelectListener(selectListener); - } - - public WorldWindow getEventSource() - { - return this.wwd; - } - - public void setHoverDelay(int delay) - { - this.hoverTimer.setDelay(delay); - } - - public int getHoverDelay() - { - return this.hoverTimer.getDelay(); - } - - public boolean isSmoothViewChanges() - { - return this.wwd.getView().getViewInputHandler().isEnableSmoothing(); - } - - public void setSmoothViewChanges(boolean smoothViewChanges) - { - this.wwd.getView().getViewInputHandler().setEnableSmoothing(smoothViewChanges); - } - - public boolean isLockViewHeading() - { - return this.wwd.getView().getViewInputHandler().isLockHeading(); - } - - public void setLockViewHeading(boolean lockHeading) - { - this.wwd.getView().getViewInputHandler().setLockHeading(lockHeading); - } - - public boolean isStopViewOnFocusLost() - { - return this.wwd.getView().getViewInputHandler().isStopOnFocusLost(); - } - - public void setStopViewOnFocusLost(boolean stopView) - { - this.wwd.getView().getViewInputHandler().setStopOnFocusLost(stopView); - } - - protected WorldWindow getWorldWindow() - { - return wwd; - } - - protected Point getMousePoint() - { - return mousePoint; - } - - protected void setMousePoint(Point mousePoint) - { - this.mousePoint = mousePoint; - } - - protected boolean isHovering() - { - return isHovering; - } - - protected void setHovering(boolean hovering) - { - isHovering = hovering; - } - - protected PickedObjectList getHoverObjects() - { - return hoverObjects; - } - - protected void setHoverObjects(PickedObjectList hoverObjects) - { - this.hoverObjects = hoverObjects; - } - - protected PickedObjectList getObjectsAtButtonPress() - { - return objectsAtButtonPress; - } - - protected void setObjectsAtButtonPress(PickedObjectList objectsAtButtonPress) - { - this.objectsAtButtonPress = objectsAtButtonPress; - } - - public boolean isForceRedrawOnMousePressed() - { - return forceRedrawOnMousePressed; - } - - public void setForceRedrawOnMousePressed(boolean forceRedrawOnMousePressed) - { - this.forceRedrawOnMousePressed = forceRedrawOnMousePressed; - } -/* - public ViewInputHandler getViewInputHandler() - { - return viewInputHandler; - } - */ - - private void keyMethod(KeyEvent keyEvent) - { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - this.callKeyTypedListeners(keyEvent); - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); - } - } - - public void keyTyped(KeyEvent keyEvent) - { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - this.callKeyTypedListeners(keyEvent); - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); - } - } - - public void keyPressed(KeyEvent keyEvent) - { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - this.callKeyPressedListeners(keyEvent); - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyPressed(keyEvent); - } - } - - public void keyReleased(KeyEvent keyEvent) - { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - this.callKeyReleasedListeners(keyEvent); - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyReleased(keyEvent); - } - } - - public void mouseClicked(final MouseEvent mouseEvent) - { - if (this.wwd == null) - { - return; - } - - if (this.wwd.getView() == null) - { - return; - } - - if (mouseEvent == null) - { - return; - } - - PickedObjectList pickedObjects = this.wwd.getObjectsAtCurrentPosition(); - - this.callMouseClickedListeners(mouseEvent); - - if (pickedObjects != null && pickedObjects.getTopPickedObject() != null - && !pickedObjects.getTopPickedObject().isTerrain()) - { - // Something is under the cursor, so it's deemed "selected". - if (MouseEvent.BUTTON1 == mouseEvent.getButton()) - { - if (mouseEvent.getClickCount() <= 1) - { - this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_CLICK, - mouseEvent, pickedObjects)); - } - else - { - this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_DOUBLE_CLICK, - mouseEvent, pickedObjects)); - } - } - else if (MouseEvent.BUTTON3 == mouseEvent.getButton()) - { - this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.RIGHT_CLICK, - mouseEvent, pickedObjects)); - } - - this.wwd.getView().firePropertyChange(AVKey.VIEW, null, this.wwd.getView()); - } - else - { - if (!mouseEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().mouseClicked(mouseEvent); - } - } - } - - public void mousePressed(MouseEvent mouseEvent) - { - if (this.wwd == null) - { - return; - } - - if (mouseEvent == null) - { - return; - } - - // Determine if the mouse point has changed since the last mouse move event. This can happen if user switches to - // another window, moves the mouse, and then switches back to the World Wind window. - boolean mousePointChanged = !mouseEvent.getPoint().equals(this.mousePoint); - - this.mousePoint = mouseEvent.getPoint(); - this.cancelHover(); - this.cancelDrag(); - - // If the mouse point has changed then we need to set a new pick point, and redraw the scene because the current - // picked object list may not reflect the current mouse position. - if (mousePointChanged && this.wwd.getSceneController() != null) - this.wwd.getSceneController().setPickPoint(this.mousePoint); - - if (this.isForceRedrawOnMousePressed() || mousePointChanged) - this.wwd.redrawNow(); - - this.objectsAtButtonPress = this.wwd.getObjectsAtCurrentPosition(); - - this.callMousePressedListeners(mouseEvent); - - if (this.objectsAtButtonPress != null && objectsAtButtonPress.getTopPickedObject() != null - && !this.objectsAtButtonPress.getTopPickedObject().isTerrain()) - { - // Something is under the cursor, so it's deemed "selected". - if (MouseEvent.BUTTON1 == mouseEvent.getButton()) - { - this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_PRESS, - mouseEvent, this.objectsAtButtonPress)); - } - else if (MouseEvent.BUTTON3 == mouseEvent.getButton()) - { - this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.RIGHT_PRESS, - mouseEvent, this.objectsAtButtonPress)); - } - - // Initiate a repaint. - this.wwd.getView().firePropertyChange(AVKey.VIEW, null, this.wwd.getView()); - } - - if (!mouseEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().mousePressed(mouseEvent); - } - - // GLJPanel does not take keyboard focus when the user clicks on it, thereby suppressing key events normally - // sent to the InputHandler. This workaround calls requestFocus on the GLJPanel each time the user presses the - // mouse on the GLJPanel, causing GLJPanel to take the focus in the same manner as GLCanvas. Note that focus is - // passed only when the user clicks the primary mouse button. See - // http://issues.worldwind.arc.nasa.gov/jira/browse/WWJ-272. - if (MouseEvent.BUTTON1 == mouseEvent.getButton() && this.wwd instanceof GLJPanel) - { - ((GLJPanel) this.wwd).requestFocusInWindow(); - } - } - - public void mouseReleased(MouseEvent mouseEvent) - { - if (this.wwd == null) - { - return; - } - - if (mouseEvent == null) - { - return; - } - - this.mousePoint = mouseEvent.getPoint(); - this.callMouseReleasedListeners(mouseEvent); - if (!mouseEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().mouseReleased(mouseEvent); - } - this.doHover(true); - this.cancelDrag(); - } - - public void mouseEntered(MouseEvent mouseEvent) - { - if (this.wwd == null) - { - return; - } - - if (mouseEvent == null) - { - return; - } - - this.callMouseEnteredListeners(mouseEvent); - this.wwd.getView().getViewInputHandler().mouseEntered(mouseEvent); - this.cancelHover(); - this.cancelDrag(); - } - - public void mouseExited(MouseEvent mouseEvent) - { - if (this.wwd == null) - { - return; - } - - if (mouseEvent == null) - { - return; - } - - this.callMouseExitedListeners(mouseEvent); - this.wwd.getView().getViewInputHandler().mouseExited(mouseEvent); - - // Enqueue a redraw to update the current position and selection. - if (this.wwd.getSceneController() != null) - { - this.wwd.getSceneController().setPickPoint(null); - this.wwd.redraw(); - } - - this.cancelHover(); - this.cancelDrag(); - } - - public void mouseDragged(MouseEvent mouseEvent) - { - if (this.wwd == null) - return; - - if (mouseEvent == null) - { - return; - } - - Point prevMousePoint = this.mousePoint; - this.mousePoint = mouseEvent.getPoint(); - this.callMouseDraggedListeners(mouseEvent); - - if ((MouseEvent.BUTTON1_DOWN_MASK & mouseEvent.getModifiersEx()) != 0) - { - PickedObjectList pickedObjects = this.objectsAtButtonPress; - if (this.isDragging - || (pickedObjects != null && pickedObjects.getTopPickedObject() != null - && !pickedObjects.getTopPickedObject().isTerrain())) - { - this.isDragging = true; - DragSelectEvent selectEvent = new DragSelectEvent(this.wwd, SelectEvent.DRAG, mouseEvent, pickedObjects, - prevMousePoint); - this.callSelectListeners(selectEvent); - - // If no listener consumed the event, then cancel the drag. - if (!selectEvent.isConsumed()) - this.cancelDrag(); - } - } - - if (!this.isDragging) - { - if (!mouseEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().mouseDragged(mouseEvent); - } - } - - // Redraw to update the current position and selection. - if (this.wwd.getSceneController() != null) - { - this.wwd.getSceneController().setPickPoint(mouseEvent.getPoint()); - this.wwd.redraw(); - } - } - - public void mouseMoved(MouseEvent mouseEvent) - { - if (this.wwd == null) - { - return; - } - - if (mouseEvent == null) - { - return; - } - - this.mousePoint = mouseEvent.getPoint(); - this.callMouseMovedListeners(mouseEvent); - - if (!mouseEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().mouseMoved(mouseEvent); - } - - // Redraw to update the current position and selection. - if (this.wwd.getSceneController() != null) - { - this.wwd.getSceneController().setPickPoint(mouseEvent.getPoint()); - this.wwd.redraw(); - } - } - - public void mouseWheelMoved(MouseWheelEvent mouseWheelEvent) - { - if (this.wwd == null) - { - return; - } - - if (mouseWheelEvent == null) - { - return; - } - - this.callMouseWheelMovedListeners(mouseWheelEvent); - - if (!mouseWheelEvent.isConsumed()) - this.wwd.getView().getViewInputHandler().mouseWheelMoved(mouseWheelEvent); - } - - public void focusGained(FocusEvent focusEvent) - { - if (this.wwd == null) - { - return; - } - - if (focusEvent == null) - { - return; - } - - this.wwd.getView().getViewInputHandler().focusGained(focusEvent); - } - - public void focusLost(FocusEvent focusEvent) - { - if (this.wwd == null) - { - return; - } - - if (focusEvent == null) - { - return; - } - - this.wwd.getView().getViewInputHandler().focusLost(focusEvent); - } - - protected boolean isPickListEmpty(PickedObjectList pickList) - { - return pickList == null || pickList.size() < 1; - } - - protected void doHover(boolean reset) - { - PickedObjectList pickedObjects = this.wwd.getObjectsAtCurrentPosition(); - if (!(this.isPickListEmpty(this.hoverObjects) || this.isPickListEmpty(pickedObjects))) - { - PickedObject hover = this.hoverObjects.getTopPickedObject(); - PickedObject last = pickedObjects.getTopPickedObject(); - - Object oh = hover == null ? null : hover.getObject() != null ? hover.getObject() : - hover.getParentLayer() != null ? hover.getParentLayer() : null; - Object ol = last == null ? null : last.getObject() != null ? last.getObject() : - last.getParentLayer() != null ? last.getParentLayer() : null; - if (oh != null && ol != null && oh.equals(ol)) - { - return; // object picked is the hover object. don't do anything but wait for the timer to expire. - } - } - - this.cancelHover(); - - if (!reset) - { - return; - } - - if ((pickedObjects != null) - && (pickedObjects.getTopObject() != null) - && pickedObjects.getTopPickedObject().isTerrain()) - { - return; - } - - this.hoverObjects = pickedObjects; - this.hoverTimer.restart(); - } - - protected void cancelHover() - { - if (this.isHovering) - { - this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.HOVER, this.mousePoint, null)); - } - - this.isHovering = false; - this.hoverObjects = null; - this.hoverTimer.stop(); - } - - protected boolean pickMatches(PickedObjectList pickedObjects) - { - if (this.isPickListEmpty(this.wwd.getObjectsAtCurrentPosition()) || this.isPickListEmpty(pickedObjects)) - { - return false; - } - - PickedObject lastTop = this.wwd.getObjectsAtCurrentPosition().getTopPickedObject(); - - if (null != lastTop && lastTop.isTerrain()) - { - return false; - } - - PickedObject newTop = pickedObjects.getTopPickedObject(); - //noinspection SimplifiableIfStatement - if (lastTop == null || newTop == null || lastTop.getObject() == null || newTop.getObject() == null) - { - return false; - } - - return lastTop.getObject().equals(newTop.getObject()); - } - - protected void cancelDrag() - { - if (this.isDragging) - { - this.callSelectListeners(new DragSelectEvent(this.wwd, SelectEvent.DRAG_END, null, - this.objectsAtButtonPress, this.mousePoint)); - } - - this.isDragging = false; - } - - public void addSelectListener(SelectListener listener) - { - this.eventListeners.add(SelectListener.class, listener); - } - - public void removeSelectListener(SelectListener listener) - { - this.eventListeners.remove(SelectListener.class, listener); - } - - protected void callSelectListeners(SelectEvent event) - { - for (SelectListener listener : this.eventListeners.getListeners(SelectListener.class)) - { - listener.selected(event); - } - } - - public void addKeyListener(KeyListener listener) - { - this.eventListeners.add(KeyListener.class, listener); - } - - public void removeKeyListener(KeyListener listener) - { - this.eventListeners.remove(KeyListener.class, listener); - } - - public void addMouseListener(MouseListener listener) - { - this.eventListeners.add(MouseListener.class, listener); - } - - public void removeMouseListener(MouseListener listener) - { - this.eventListeners.remove(MouseListener.class, listener); - } - - public void addMouseMotionListener(MouseMotionListener listener) - { - this.eventListeners.add(MouseMotionListener.class, listener); - } - - public void removeMouseMotionListener(MouseMotionListener listener) - { - this.eventListeners.remove(MouseMotionListener.class, listener); - } - - public void addMouseWheelListener(MouseWheelListener listener) - { - this.eventListeners.add(MouseWheelListener.class, listener); - } - - public void removeMouseWheelListener(MouseWheelListener listener) - { - this.eventListeners.remove(MouseWheelListener.class, listener); - } - - protected void callKeyPressedListeners(KeyEvent event) - { - for (KeyListener listener : this.eventListeners.getListeners(KeyListener.class)) - { - listener.keyPressed(event); - } - } - - protected void callKeyReleasedListeners(KeyEvent event) - { - for (KeyListener listener : this.eventListeners.getListeners(KeyListener.class)) - { - listener.keyReleased(event); - } - } - - protected void callKeyTypedListeners(KeyEvent event) - { - for (KeyListener listener : this.eventListeners.getListeners(KeyListener.class)) - { - listener.keyTyped(event); - } - } - - protected void callMousePressedListeners(MouseEvent event) - { - for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) - { - listener.mousePressed(event); - } - } - - protected void callMouseReleasedListeners(MouseEvent event) - { - for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) - { - listener.mouseReleased(event); - } - } - - protected void callMouseClickedListeners(MouseEvent event) - { - for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) - { - listener.mouseClicked(event); - } - } - - protected void callMouseDraggedListeners(MouseEvent event) - { - for (MouseMotionListener listener : this.eventListeners.getListeners(MouseMotionListener.class)) - { - listener.mouseDragged(event); - } - } - - protected void callMouseMovedListeners(MouseEvent event) - { - for (MouseMotionListener listener : this.eventListeners.getListeners(MouseMotionListener.class)) - { - listener.mouseMoved(event); - } - } - - protected void callMouseWheelMovedListeners(MouseWheelEvent event) - { - for (MouseWheelListener listener : this.eventListeners.getListeners(MouseWheelListener.class)) - { - listener.mouseWheelMoved(event); - } - } - - protected void callMouseEnteredListeners(MouseEvent event) - { - for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) - { - listener.mouseEntered(event); - } - } - - protected void callMouseExitedListeners(MouseEvent event) - { - for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) - { - listener.mouseExited(event); - } - } - - public void propertyChange(PropertyChangeEvent event) - { - if (this.wwd == null) - { - return; - } - - if (this.wwd.getView() == null) - { - return; - } - - if (event == null) - { - return; - } - - if (event.getPropertyName().equals(AVKey.VIEW) && - (event.getSource() == this.getWorldWindow().getSceneController())) - { - this.wwd.getView().getViewInputHandler().setWorldWindow(this.wwd); - } - } -} From 95d29ea5d85137420840ae0d5734060e0f4d1d53 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Wed, 19 Jul 2017 20:05:52 -0300 Subject: [PATCH 6/9] Add switch case to the key method --- .../nasa/worldwind/awt/AWTInputHandler.java | 908 ++++++++++++++++++ 1 file changed, 908 insertions(+) create mode 100644 src/gov/nasa/worldwind/awt/AWTInputHandler.java diff --git a/src/gov/nasa/worldwind/awt/AWTInputHandler.java b/src/gov/nasa/worldwind/awt/AWTInputHandler.java new file mode 100644 index 0000000000..cb1f813377 --- /dev/null +++ b/src/gov/nasa/worldwind/awt/AWTInputHandler.java @@ -0,0 +1,908 @@ +/* + * Copyright (C) 2012 United States Government as represented by the Administrator of the + * National Aeronautics and Space Administration. + * All Rights Reserved. + */ +package gov.nasa.worldwind.awt; + +import gov.nasa.worldwind.*; +import gov.nasa.worldwind.avlist.AVKey; +import gov.nasa.worldwind.event.*; +import gov.nasa.worldwind.pick.*; +import gov.nasa.worldwind.util.Logging; + +import javax.media.opengl.awt.GLJPanel; +import javax.swing.event.*; +import java.awt.*; +import java.awt.event.*; +import java.beans.PropertyChangeEvent; + +/** + * @author tag + * @version $Id: AWTInputHandler.java 2258 2014-08-22 22:08:33Z dcollins $ + */ +public class AWTInputHandler extends WWObjectImpl + implements KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, FocusListener, InputHandler, + Disposable +{ + protected WorldWindow wwd = null; + protected EventListenerList eventListeners = new EventListenerList(); + protected java.awt.Point mousePoint = new java.awt.Point(); + protected PickedObjectList hoverObjects; + protected PickedObjectList objectsAtButtonPress; + protected boolean isHovering = false; + protected boolean isDragging = false; + protected boolean forceRedrawOnMousePressed = Configuration.getBooleanValue(AVKey.REDRAW_ON_MOUSE_PRESSED, false); + protected javax.swing.Timer hoverTimer = new javax.swing.Timer(600, new ActionListener() + { + public void actionPerformed(ActionEvent actionEvent) + { + if (AWTInputHandler.this.pickMatches(AWTInputHandler.this.hoverObjects)) + { + AWTInputHandler.this.isHovering = true; + AWTInputHandler.this.callSelectListeners(new SelectEvent(AWTInputHandler.this.wwd, + SelectEvent.HOVER, mousePoint, AWTInputHandler.this.hoverObjects)); + AWTInputHandler.this.hoverTimer.stop(); + } + } + }); + // Delegate handler for View. + protected SelectListener selectListener; + + public AWTInputHandler() + { + } + + public void dispose() + { + this.hoverTimer.stop(); + this.hoverTimer = null; + + this.setEventSource(null); + + if (this.hoverObjects != null) + this.hoverObjects.clear(); + this.hoverObjects = null; + + if (this.objectsAtButtonPress != null) + this.objectsAtButtonPress.clear(); + this.objectsAtButtonPress = null; + } + + public void setEventSource(WorldWindow newWorldWindow) + { + if (newWorldWindow != null && !(newWorldWindow instanceof Component)) + { + String message = Logging.getMessage("Awt.AWTInputHandler.EventSourceNotAComponent"); + Logging.logger().finer(message); + throw new IllegalArgumentException(message); + } + + if (newWorldWindow == this.wwd) + { + return; + } + + this.eventListeners = new EventListenerList(); // make orphans of listener references + + if (this.wwd != null) + { + Component c = (Component) this.wwd; + c.removeKeyListener(this); + c.removeMouseMotionListener(this); + c.removeMouseListener(this); + c.removeMouseWheelListener(this); + c.removeFocusListener(this); + + if (this.selectListener != null) + this.wwd.removeSelectListener(this.selectListener); + + if (this.wwd.getSceneController() != null) + this.wwd.getSceneController().removePropertyChangeListener(AVKey.VIEW, this); + } + + this.wwd = newWorldWindow; + if (this.wwd == null) + { + return; + } + + this.wwd.getView().getViewInputHandler().setWorldWindow(this.wwd); + Component c = (java.awt.Component) this.wwd; + c.addKeyListener(this); + c.addMouseMotionListener(this); + c.addMouseListener(this); + c.addMouseWheelListener(this); + c.addFocusListener(this); + + this.selectListener = new SelectListener() + { + public void selected(SelectEvent event) + { + if (event.getEventAction().equals(SelectEvent.ROLLOVER)) + { + doHover(true); + } + } + }; + this.wwd.addSelectListener(this.selectListener); + + if (this.wwd.getSceneController() != null) + this.wwd.getSceneController().addPropertyChangeListener(AVKey.VIEW, this); + } + + public void removeHoverSelectListener() + { + hoverTimer.stop(); + hoverTimer = null; + this.wwd.removeSelectListener(selectListener); + } + + public WorldWindow getEventSource() + { + return this.wwd; + } + + public void setHoverDelay(int delay) + { + this.hoverTimer.setDelay(delay); + } + + public int getHoverDelay() + { + return this.hoverTimer.getDelay(); + } + + public boolean isSmoothViewChanges() + { + return this.wwd.getView().getViewInputHandler().isEnableSmoothing(); + } + + public void setSmoothViewChanges(boolean smoothViewChanges) + { + this.wwd.getView().getViewInputHandler().setEnableSmoothing(smoothViewChanges); + } + + public boolean isLockViewHeading() + { + return this.wwd.getView().getViewInputHandler().isLockHeading(); + } + + public void setLockViewHeading(boolean lockHeading) + { + this.wwd.getView().getViewInputHandler().setLockHeading(lockHeading); + } + + public boolean isStopViewOnFocusLost() + { + return this.wwd.getView().getViewInputHandler().isStopOnFocusLost(); + } + + public void setStopViewOnFocusLost(boolean stopView) + { + this.wwd.getView().getViewInputHandler().setStopOnFocusLost(stopView); + } + + protected WorldWindow getWorldWindow() + { + return wwd; + } + + protected Point getMousePoint() + { + return mousePoint; + } + + protected void setMousePoint(Point mousePoint) + { + this.mousePoint = mousePoint; + } + + protected boolean isHovering() + { + return isHovering; + } + + protected void setHovering(boolean hovering) + { + isHovering = hovering; + } + + protected PickedObjectList getHoverObjects() + { + return hoverObjects; + } + + protected void setHoverObjects(PickedObjectList hoverObjects) + { + this.hoverObjects = hoverObjects; + } + + protected PickedObjectList getObjectsAtButtonPress() + { + return objectsAtButtonPress; + } + + protected void setObjectsAtButtonPress(PickedObjectList objectsAtButtonPress) + { + this.objectsAtButtonPress = objectsAtButtonPress; + } + + public boolean isForceRedrawOnMousePressed() + { + return forceRedrawOnMousePressed; + } + + public void setForceRedrawOnMousePressed(boolean forceRedrawOnMousePressed) + { + this.forceRedrawOnMousePressed = forceRedrawOnMousePressed; + } +/* + public ViewInputHandler getViewInputHandler() + { + return viewInputHandler; + } + */ + + private void keyMethod(KeyEvent keyEvent, int caseNumber) + { + if (this.wwd == null) + { + return; + } + + if (keyEvent == null) + { + return; + } + + switch (caseNumber) + { + case 1: + this.callKeyTypedListeners(keyEvent); + break; + case 2: + this.callKeyPressedListeners(keyEvent); + break; + case 3: + this.callKeyReleasedListeners(keyEvent); + break; + } + + + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); + } + } + + public void keyTyped(KeyEvent keyEvent) + { + if (this.wwd == null) + { + return; + } + + if (keyEvent == null) + { + return; + } + + this.callKeyTypedListeners(keyEvent); + + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); + } + } + + public void keyPressed(KeyEvent keyEvent) + { + if (this.wwd == null) + { + return; + } + + if (keyEvent == null) + { + return; + } + + + + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyPressed(keyEvent); + } + } + + public void keyReleased(KeyEvent keyEvent) + { + if (this.wwd == null) + { + return; + } + + if (keyEvent == null) + { + return; + } + + + + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyReleased(keyEvent); + } + } + + public void mouseClicked(final MouseEvent mouseEvent) + { + if (this.wwd == null) + { + return; + } + + if (this.wwd.getView() == null) + { + return; + } + + if (mouseEvent == null) + { + return; + } + + PickedObjectList pickedObjects = this.wwd.getObjectsAtCurrentPosition(); + + this.callMouseClickedListeners(mouseEvent); + + if (pickedObjects != null && pickedObjects.getTopPickedObject() != null + && !pickedObjects.getTopPickedObject().isTerrain()) + { + // Something is under the cursor, so it's deemed "selected". + if (MouseEvent.BUTTON1 == mouseEvent.getButton()) + { + if (mouseEvent.getClickCount() <= 1) + { + this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_CLICK, + mouseEvent, pickedObjects)); + } + else + { + this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_DOUBLE_CLICK, + mouseEvent, pickedObjects)); + } + } + else if (MouseEvent.BUTTON3 == mouseEvent.getButton()) + { + this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.RIGHT_CLICK, + mouseEvent, pickedObjects)); + } + + this.wwd.getView().firePropertyChange(AVKey.VIEW, null, this.wwd.getView()); + } + else + { + if (!mouseEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().mouseClicked(mouseEvent); + } + } + } + + public void mousePressed(MouseEvent mouseEvent) + { + if (this.wwd == null) + { + return; + } + + if (mouseEvent == null) + { + return; + } + + // Determine if the mouse point has changed since the last mouse move event. This can happen if user switches to + // another window, moves the mouse, and then switches back to the World Wind window. + boolean mousePointChanged = !mouseEvent.getPoint().equals(this.mousePoint); + + this.mousePoint = mouseEvent.getPoint(); + this.cancelHover(); + this.cancelDrag(); + + // If the mouse point has changed then we need to set a new pick point, and redraw the scene because the current + // picked object list may not reflect the current mouse position. + if (mousePointChanged && this.wwd.getSceneController() != null) + this.wwd.getSceneController().setPickPoint(this.mousePoint); + + if (this.isForceRedrawOnMousePressed() || mousePointChanged) + this.wwd.redrawNow(); + + this.objectsAtButtonPress = this.wwd.getObjectsAtCurrentPosition(); + + this.callMousePressedListeners(mouseEvent); + + if (this.objectsAtButtonPress != null && objectsAtButtonPress.getTopPickedObject() != null + && !this.objectsAtButtonPress.getTopPickedObject().isTerrain()) + { + // Something is under the cursor, so it's deemed "selected". + if (MouseEvent.BUTTON1 == mouseEvent.getButton()) + { + this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_PRESS, + mouseEvent, this.objectsAtButtonPress)); + } + else if (MouseEvent.BUTTON3 == mouseEvent.getButton()) + { + this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.RIGHT_PRESS, + mouseEvent, this.objectsAtButtonPress)); + } + + // Initiate a repaint. + this.wwd.getView().firePropertyChange(AVKey.VIEW, null, this.wwd.getView()); + } + + if (!mouseEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().mousePressed(mouseEvent); + } + + // GLJPanel does not take keyboard focus when the user clicks on it, thereby suppressing key events normally + // sent to the InputHandler. This workaround calls requestFocus on the GLJPanel each time the user presses the + // mouse on the GLJPanel, causing GLJPanel to take the focus in the same manner as GLCanvas. Note that focus is + // passed only when the user clicks the primary mouse button. See + // http://issues.worldwind.arc.nasa.gov/jira/browse/WWJ-272. + if (MouseEvent.BUTTON1 == mouseEvent.getButton() && this.wwd instanceof GLJPanel) + { + ((GLJPanel) this.wwd).requestFocusInWindow(); + } + } + + public void mouseReleased(MouseEvent mouseEvent) + { + if (this.wwd == null) + { + return; + } + + if (mouseEvent == null) + { + return; + } + + this.mousePoint = mouseEvent.getPoint(); + this.callMouseReleasedListeners(mouseEvent); + if (!mouseEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().mouseReleased(mouseEvent); + } + this.doHover(true); + this.cancelDrag(); + } + + public void mouseEntered(MouseEvent mouseEvent) + { + if (this.wwd == null) + { + return; + } + + if (mouseEvent == null) + { + return; + } + + this.callMouseEnteredListeners(mouseEvent); + this.wwd.getView().getViewInputHandler().mouseEntered(mouseEvent); + this.cancelHover(); + this.cancelDrag(); + } + + public void mouseExited(MouseEvent mouseEvent) + { + if (this.wwd == null) + { + return; + } + + if (mouseEvent == null) + { + return; + } + + this.callMouseExitedListeners(mouseEvent); + this.wwd.getView().getViewInputHandler().mouseExited(mouseEvent); + + // Enqueue a redraw to update the current position and selection. + if (this.wwd.getSceneController() != null) + { + this.wwd.getSceneController().setPickPoint(null); + this.wwd.redraw(); + } + + this.cancelHover(); + this.cancelDrag(); + } + + public void mouseDragged(MouseEvent mouseEvent) + { + if (this.wwd == null) + return; + + if (mouseEvent == null) + { + return; + } + + Point prevMousePoint = this.mousePoint; + this.mousePoint = mouseEvent.getPoint(); + this.callMouseDraggedListeners(mouseEvent); + + if ((MouseEvent.BUTTON1_DOWN_MASK & mouseEvent.getModifiersEx()) != 0) + { + PickedObjectList pickedObjects = this.objectsAtButtonPress; + if (this.isDragging + || (pickedObjects != null && pickedObjects.getTopPickedObject() != null + && !pickedObjects.getTopPickedObject().isTerrain())) + { + this.isDragging = true; + DragSelectEvent selectEvent = new DragSelectEvent(this.wwd, SelectEvent.DRAG, mouseEvent, pickedObjects, + prevMousePoint); + this.callSelectListeners(selectEvent); + + // If no listener consumed the event, then cancel the drag. + if (!selectEvent.isConsumed()) + this.cancelDrag(); + } + } + + if (!this.isDragging) + { + if (!mouseEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().mouseDragged(mouseEvent); + } + } + + // Redraw to update the current position and selection. + if (this.wwd.getSceneController() != null) + { + this.wwd.getSceneController().setPickPoint(mouseEvent.getPoint()); + this.wwd.redraw(); + } + } + + public void mouseMoved(MouseEvent mouseEvent) + { + if (this.wwd == null) + { + return; + } + + if (mouseEvent == null) + { + return; + } + + this.mousePoint = mouseEvent.getPoint(); + this.callMouseMovedListeners(mouseEvent); + + if (!mouseEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().mouseMoved(mouseEvent); + } + + // Redraw to update the current position and selection. + if (this.wwd.getSceneController() != null) + { + this.wwd.getSceneController().setPickPoint(mouseEvent.getPoint()); + this.wwd.redraw(); + } + } + + public void mouseWheelMoved(MouseWheelEvent mouseWheelEvent) + { + if (this.wwd == null) + { + return; + } + + if (mouseWheelEvent == null) + { + return; + } + + this.callMouseWheelMovedListeners(mouseWheelEvent); + + if (!mouseWheelEvent.isConsumed()) + this.wwd.getView().getViewInputHandler().mouseWheelMoved(mouseWheelEvent); + } + + public void focusGained(FocusEvent focusEvent) + { + if (this.wwd == null) + { + return; + } + + if (focusEvent == null) + { + return; + } + + this.wwd.getView().getViewInputHandler().focusGained(focusEvent); + } + + public void focusLost(FocusEvent focusEvent) + { + if (this.wwd == null) + { + return; + } + + if (focusEvent == null) + { + return; + } + + this.wwd.getView().getViewInputHandler().focusLost(focusEvent); + } + + protected boolean isPickListEmpty(PickedObjectList pickList) + { + return pickList == null || pickList.size() < 1; + } + + protected void doHover(boolean reset) + { + PickedObjectList pickedObjects = this.wwd.getObjectsAtCurrentPosition(); + if (!(this.isPickListEmpty(this.hoverObjects) || this.isPickListEmpty(pickedObjects))) + { + PickedObject hover = this.hoverObjects.getTopPickedObject(); + PickedObject last = pickedObjects.getTopPickedObject(); + + Object oh = hover == null ? null : hover.getObject() != null ? hover.getObject() : + hover.getParentLayer() != null ? hover.getParentLayer() : null; + Object ol = last == null ? null : last.getObject() != null ? last.getObject() : + last.getParentLayer() != null ? last.getParentLayer() : null; + if (oh != null && ol != null && oh.equals(ol)) + { + return; // object picked is the hover object. don't do anything but wait for the timer to expire. + } + } + + this.cancelHover(); + + if (!reset) + { + return; + } + + if ((pickedObjects != null) + && (pickedObjects.getTopObject() != null) + && pickedObjects.getTopPickedObject().isTerrain()) + { + return; + } + + this.hoverObjects = pickedObjects; + this.hoverTimer.restart(); + } + + protected void cancelHover() + { + if (this.isHovering) + { + this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.HOVER, this.mousePoint, null)); + } + + this.isHovering = false; + this.hoverObjects = null; + this.hoverTimer.stop(); + } + + protected boolean pickMatches(PickedObjectList pickedObjects) + { + if (this.isPickListEmpty(this.wwd.getObjectsAtCurrentPosition()) || this.isPickListEmpty(pickedObjects)) + { + return false; + } + + PickedObject lastTop = this.wwd.getObjectsAtCurrentPosition().getTopPickedObject(); + + if (null != lastTop && lastTop.isTerrain()) + { + return false; + } + + PickedObject newTop = pickedObjects.getTopPickedObject(); + //noinspection SimplifiableIfStatement + if (lastTop == null || newTop == null || lastTop.getObject() == null || newTop.getObject() == null) + { + return false; + } + + return lastTop.getObject().equals(newTop.getObject()); + } + + protected void cancelDrag() + { + if (this.isDragging) + { + this.callSelectListeners(new DragSelectEvent(this.wwd, SelectEvent.DRAG_END, null, + this.objectsAtButtonPress, this.mousePoint)); + } + + this.isDragging = false; + } + + public void addSelectListener(SelectListener listener) + { + this.eventListeners.add(SelectListener.class, listener); + } + + public void removeSelectListener(SelectListener listener) + { + this.eventListeners.remove(SelectListener.class, listener); + } + + protected void callSelectListeners(SelectEvent event) + { + for (SelectListener listener : this.eventListeners.getListeners(SelectListener.class)) + { + listener.selected(event); + } + } + + public void addKeyListener(KeyListener listener) + { + this.eventListeners.add(KeyListener.class, listener); + } + + public void removeKeyListener(KeyListener listener) + { + this.eventListeners.remove(KeyListener.class, listener); + } + + public void addMouseListener(MouseListener listener) + { + this.eventListeners.add(MouseListener.class, listener); + } + + public void removeMouseListener(MouseListener listener) + { + this.eventListeners.remove(MouseListener.class, listener); + } + + public void addMouseMotionListener(MouseMotionListener listener) + { + this.eventListeners.add(MouseMotionListener.class, listener); + } + + public void removeMouseMotionListener(MouseMotionListener listener) + { + this.eventListeners.remove(MouseMotionListener.class, listener); + } + + public void addMouseWheelListener(MouseWheelListener listener) + { + this.eventListeners.add(MouseWheelListener.class, listener); + } + + public void removeMouseWheelListener(MouseWheelListener listener) + { + this.eventListeners.remove(MouseWheelListener.class, listener); + } + + protected void callKeyPressedListeners(KeyEvent event) + { + for (KeyListener listener : this.eventListeners.getListeners(KeyListener.class)) + { + listener.keyPressed(event); + } + } + + protected void callKeyReleasedListeners(KeyEvent event) + { + for (KeyListener listener : this.eventListeners.getListeners(KeyListener.class)) + { + listener.keyReleased(event); + } + } + + protected void callKeyTypedListeners(KeyEvent event) + { + for (KeyListener listener : this.eventListeners.getListeners(KeyListener.class)) + { + listener.keyTyped(event); + } + } + + protected void callMousePressedListeners(MouseEvent event) + { + for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) + { + listener.mousePressed(event); + } + } + + protected void callMouseReleasedListeners(MouseEvent event) + { + for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) + { + listener.mouseReleased(event); + } + } + + protected void callMouseClickedListeners(MouseEvent event) + { + for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) + { + listener.mouseClicked(event); + } + } + + protected void callMouseDraggedListeners(MouseEvent event) + { + for (MouseMotionListener listener : this.eventListeners.getListeners(MouseMotionListener.class)) + { + listener.mouseDragged(event); + } + } + + protected void callMouseMovedListeners(MouseEvent event) + { + for (MouseMotionListener listener : this.eventListeners.getListeners(MouseMotionListener.class)) + { + listener.mouseMoved(event); + } + } + + protected void callMouseWheelMovedListeners(MouseWheelEvent event) + { + for (MouseWheelListener listener : this.eventListeners.getListeners(MouseWheelListener.class)) + { + listener.mouseWheelMoved(event); + } + } + + protected void callMouseEnteredListeners(MouseEvent event) + { + for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) + { + listener.mouseEntered(event); + } + } + + protected void callMouseExitedListeners(MouseEvent event) + { + for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class)) + { + listener.mouseExited(event); + } + } + + public void propertyChange(PropertyChangeEvent event) + { + if (this.wwd == null) + { + return; + } + + if (this.wwd.getView() == null) + { + return; + } + + if (event == null) + { + return; + } + + if (event.getPropertyName().equals(AVKey.VIEW) && + (event.getSource() == this.getWorldWindow().getSceneController())) + { + this.wwd.getView().getViewInputHandler().setWorldWindow(this.wwd); + } + } +} From 2ce2cf54a5bd5bb5a3b33ba9879cd84901b5a008 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Wed, 19 Jul 2017 20:22:30 -0300 Subject: [PATCH 7/9] Finalize keyMethod --- .../nasa/worldwind/awt/AWTInputHandler.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gov/nasa/worldwind/awt/AWTInputHandler.java b/src/gov/nasa/worldwind/awt/AWTInputHandler.java index cb1f813377..fc671057c5 100644 --- a/src/gov/nasa/worldwind/awt/AWTInputHandler.java +++ b/src/gov/nasa/worldwind/awt/AWTInputHandler.java @@ -260,20 +260,26 @@ private void keyMethod(KeyEvent keyEvent, int caseNumber) { case 1: this.callKeyTypedListeners(keyEvent); + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); + } break; case 2: this.callKeyPressedListeners(keyEvent); + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyPressed(keyEvent); + } break; case 3: this.callKeyReleasedListeners(keyEvent); + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyReleased(keyEvent); + } break; } - - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); - } } public void keyTyped(KeyEvent keyEvent) From 809d3cb52c6af73e3762318d8c5ca07aed8b7732 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Wed, 19 Jul 2017 20:26:37 -0300 Subject: [PATCH 8/9] Change the unnecessary repetition of code to a method --- .../nasa/worldwind/awt/AWTInputHandler.java | 51 ++----------------- 1 file changed, 3 insertions(+), 48 deletions(-) diff --git a/src/gov/nasa/worldwind/awt/AWTInputHandler.java b/src/gov/nasa/worldwind/awt/AWTInputHandler.java index fc671057c5..71f54a5f50 100644 --- a/src/gov/nasa/worldwind/awt/AWTInputHandler.java +++ b/src/gov/nasa/worldwind/awt/AWTInputHandler.java @@ -284,62 +284,17 @@ private void keyMethod(KeyEvent keyEvent, int caseNumber) public void keyTyped(KeyEvent keyEvent) { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - this.callKeyTypedListeners(keyEvent); - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); - } + keyMethod(keyEvent, 1); } public void keyPressed(KeyEvent keyEvent) { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyPressed(keyEvent); - } + keyMethod(keyEvent, 2); } public void keyReleased(KeyEvent keyEvent) { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - - - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyReleased(keyEvent); - } + keyMethod(keyEvent, 3); } public void mouseClicked(final MouseEvent mouseEvent) From d60ffc00ce1536f0c7f91b08a1e917510940acc7 Mon Sep 17 00:00:00 2001 From: GabrielDS <gabriel.santosti01@gmail.com> Date: Wed, 19 Jul 2017 20:28:15 -0300 Subject: [PATCH 9/9] Change the local of the code --- .../nasa/worldwind/awt/AWTInputHandler.java | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/gov/nasa/worldwind/awt/AWTInputHandler.java b/src/gov/nasa/worldwind/awt/AWTInputHandler.java index 71f54a5f50..032a5e8d49 100644 --- a/src/gov/nasa/worldwind/awt/AWTInputHandler.java +++ b/src/gov/nasa/worldwind/awt/AWTInputHandler.java @@ -244,44 +244,6 @@ public ViewInputHandler getViewInputHandler() } */ - private void keyMethod(KeyEvent keyEvent, int caseNumber) - { - if (this.wwd == null) - { - return; - } - - if (keyEvent == null) - { - return; - } - - switch (caseNumber) - { - case 1: - this.callKeyTypedListeners(keyEvent); - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); - } - break; - case 2: - this.callKeyPressedListeners(keyEvent); - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyPressed(keyEvent); - } - break; - case 3: - this.callKeyReleasedListeners(keyEvent); - if (!keyEvent.isConsumed()) - { - this.wwd.getView().getViewInputHandler().keyReleased(keyEvent); - } - break; - } - } - public void keyTyped(KeyEvent keyEvent) { keyMethod(keyEvent, 1); @@ -779,6 +741,44 @@ protected void callKeyTypedListeners(KeyEvent event) } } + private void keyMethod(KeyEvent keyEvent, int caseNumber) + { + if (this.wwd == null) + { + return; + } + + if (keyEvent == null) + { + return; + } + + switch (caseNumber) + { + case 1: + this.callKeyTypedListeners(keyEvent); + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyTyped(keyEvent); + } + break; + case 2: + this.callKeyPressedListeners(keyEvent); + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyPressed(keyEvent); + } + break; + case 3: + this.callKeyReleasedListeners(keyEvent); + if (!keyEvent.isConsumed()) + { + this.wwd.getView().getViewInputHandler().keyReleased(keyEvent); + } + break; + } + } + protected void callMousePressedListeners(MouseEvent event) { for (MouseListener listener : this.eventListeners.getListeners(MouseListener.class))