edu.umd.cs.piccolo.event
Class PZoomEventHandler

java.lang.Object
  extended by edu.umd.cs.piccolo.event.PBasicInputEventHandler
      extended by edu.umd.cs.piccolo.event.PDragSequenceEventHandler
          extended by edu.umd.cs.piccolo.event.PZoomEventHandler
All Implemented Interfaces:
PInputEventListener, java.util.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 Summary
PZoomEventHandler()
          Creates a new zoom handler.
 
Method Summary
protected  void dragActivityFirstStep(PInputEvent aEvent)
          Override this method to get notified when the drag activity starts stepping.
protected  void dragActivityStep(PInputEvent aEvent)
          During a drag sequence an activity is scheduled that runs continuously while the drag sequence is active.
 double getMaxScale()
          Returns the maximum view magnification factor that this event handler is bound by.
 double getMinScale()
          Returns the minimum view magnification factor that this event handler is bound by.
protected  java.lang.String paramString()
          Returns a string representing the state of this node.
 void setMaxScale(double maxScale)
          Sets the maximum view magnification factor that this event handler is bound by.
 void setMinScale(double minScale)
          Sets the minimum view magnification factor that this event handler is bound by.
 
Methods inherited from class edu.umd.cs.piccolo.event.PDragSequenceEventHandler
drag, dragActivityFinalStep, endDrag, getDragActivity, getMinDragStartDistance, getMousePressedCanvasPoint, isDragging, mouseDragged, mousePressed, mouseReleased, setIsDragging, setMinDragStartDistance, shouldStartDragInteraction, startDrag, startDragActivity, stopDragActivity
 
Methods inherited from class edu.umd.cs.piccolo.event.PBasicInputEventHandler
acceptsEvent, getEventFilter, keyboardFocusGained, keyboardFocusLost, keyPressed, keyReleased, keyTyped, mouseClicked, mouseEntered, mouseExited, mouseMoved, mouseWheelRotated, mouseWheelRotatedByBlock, processEvent, setEventFilter, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PZoomEventHandler

public PZoomEventHandler()
Creates a new zoom handler.

Method Detail

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 aEvent)
Description copied from class: PDragSequenceEventHandler
Override this method to get notified when the drag activity starts stepping.

Overrides:
dragActivityFirstStep in class PDragSequenceEventHandler

dragActivityStep

protected void dragActivityStep(PInputEvent aEvent)
Description copied from class: PDragSequenceEventHandler
During a drag sequence an activity is scheduled that runs continuously while the drag sequence is active. This can be used to support some additional behavior that is not driven directly by mouse events. For example PZoomEventHandler uses it for zooming and PPanEventHandler uses it for auto panning.

Overrides:
dragActivityStep in class PDragSequenceEventHandler

paramString

protected java.lang.String paramString()
Returns a string representing the state of this node. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be null.

Overrides:
paramString in class PDragSequenceEventHandler
Returns:
a string representation of this node's state


Copyright © 2008 by University of Maryland, College Park, MD 20742, USA All rights reserved.