Class PZoomEventHandler

All Implemented Interfaces:
PInputEventListener, EventListener

public class PZoomEventHandler extends PDragSequenceEventHandler
ZoomEventhandler provides event handlers for basic zooming of the canvas view with the right (third) button. The interaction is that the initial mouse press defines the zoom anchor point, and then moving the mouse to the right zooms with a speed proportional to the amount the mouse is moved to the right of the anchor point. Similarly, if the mouse is moved to the left, the the view is zoomed out.

On a Mac with its single mouse button one may wish to change the standard right mouse button zooming behavior. This can be easily done with the PInputEventFilter. For example to zoom with button one and shift you would do this:

zoomEventHandler.getEventFilter().setAndMask(InputEvent.BUTTON1_MASK | InputEvent.SHIFT_MASK);

Version:
1.0
Author:
Jesse Grosjean
  • Constructor Details

    • PZoomEventHandler

      public PZoomEventHandler()
      Creates a new zoom handler.
  • Method Details

    • getMinScale

      public double getMinScale()
      Returns the minimum view magnification factor that this event handler is bound by. The default is 0.
      Returns:
      the minimum camera view scale
    • setMinScale

      public void setMinScale(double minScale)
      Sets the minimum view magnification factor that this event handler is bound by. The camera is left at its current scale even if minScale is larger than the current scale.
      Parameters:
      minScale - the minimum scale, must not be negative.
    • getMaxScale

      public double getMaxScale()
      Returns the maximum view magnification factor that this event handler is bound by. The default is Double.MAX_VALUE.
      Returns:
      the maximum camera view scale
    • setMaxScale

      public void setMaxScale(double maxScale)
      Sets the maximum view magnification factor that this event handler is bound by. The camera is left at its current scale even if maxScale is smaller than the current scale. Use Double.MAX_VALUE to specify the largest possible scale.
      Parameters:
      maxScale - the maximum scale, must not be negative.
    • dragActivityFirstStep

      protected void dragActivityFirstStep(PInputEvent event)
      Records the start point of the zoom. Used when calculating the delta for zoom speed.
      Overrides:
      dragActivityFirstStep in class PDragSequenceEventHandler
      Parameters:
      event - event responsible for starting the zoom interaction
    • dragActivityStep

      protected void dragActivityStep(PInputEvent event)
      Updates the current zoom periodically, regardless of whether the mouse has moved recently.
      Overrides:
      dragActivityStep in class PDragSequenceEventHandler
      Parameters:
      event - contains information about the current state of the mouse