edu.umd.cs.piccolox.nodes
Class PLens

java.lang.Object
  extended by edu.umd.cs.piccolo.PNode
      extended by edu.umd.cs.piccolox.nodes.PLens
All Implemented Interfaces:
Printable, Serializable, Cloneable

public class PLens
extends PNode

PLens is a simple default lens implementation for Piccolo2D. See piccolo2d/examples LensExample for one possible use of this lens. Lens's are often application specific, it may be easiest to study this code, and then implement your own custom lens using the general principles illustrated here.

The basic design here is to add a PCamera as the child of a PNode (the lens node). The camera is the viewing part of the lens, and the node is the title bar that can be used to move the lens around. Users of this lens will probably want to set up some lens specific event handler and attach it to the camera.

A lens also needs a layer that it will look at (it should not be the same as the layer that it's added to because then it will draw itself in a recursive loop. Last of all the PLens will need to be added to the PCanvas layer (so that it can be seen by the main camera).

Version:
1.0
Author:
Jesse Grosjean
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class edu.umd.cs.piccolo.PNode
PNode.PSceneGraphDelegate
 
Field Summary
static Paint DEFAULT_DRAGBAR_PAINT
          Default paint to use for the drag bar.
static Paint DEFAULT_LENS_PAINT
          Default paint to use when drawing the background of the lens.
static double LENS_DRAGBAR_HEIGHT
          The height of the drag bar.
 
Fields inherited from class edu.umd.cs.piccolo.PNode
FILL_STRATEGY_ASPECT_COVER, FILL_STRATEGY_ASPECT_FIT, FILL_STRATEGY_EXACT_FIT, PROPERTY_BOUNDS, PROPERTY_CHILDREN, PROPERTY_CHILDREN_PICKABLE, PROPERTY_CLIENT_PROPERTIES, PROPERTY_CODE_BOUNDS, PROPERTY_CODE_CHILDREN, PROPERTY_CODE_CHILDREN_PICKABLE, PROPERTY_CODE_CLIENT_PROPERTIES, PROPERTY_CODE_FULL_BOUNDS, PROPERTY_CODE_PAINT, PROPERTY_CODE_PARENT, PROPERTY_CODE_PICKABLE, PROPERTY_CODE_TRANSFORM, PROPERTY_CODE_TRANSPARENCY, PROPERTY_CODE_VISIBLE, PROPERTY_FULL_BOUNDS, PROPERTY_PAINT, PROPERTY_PARENT, PROPERTY_PICKABLE, PROPERTY_TRANSFORM, PROPERTY_TRANSPARENCY, PROPERTY_VISIBLE, SCENE_GRAPH_DELEGATE
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Constructor Summary
PLens()
          Constructs the default PLens.
PLens(PLayer layer)
          Creates the default PLens and attaches the given layer to it.
 
Method Summary
 void addLayer(int index, PLayer layer)
          Adds the layer to the camera.
 PCamera getCamera()
          Returns the camera on which this lens is appearing.
 PPath getDragBar()
          Returns the drag bar for this lens.
 PDragEventHandler getLensDraggerHandler()
          Returns the event handler that this lens uses for its drag bar.
protected  void layoutChildren()
          When the lens is resized this method gives us a chance to layout the lenses camera child appropriately.
 void removeLayer(PLayer layer)
          Removes the provided layer from the camera.
 
Methods inherited from class edu.umd.cs.piccolo.PNode
addActivity, addAttribute, addChild, addChild, addChildren, addClientProperty, addInputEventListener, addPropertyChangeListener, addPropertyChangeListener, animateToBounds, animateToColor, animateToPositionScaleRotation, animateToRelativePosition, animateToTransform, animateToTransparency, animateTransformToBounds, centerBoundsOnPoint, centerFullBoundsOnPoint, clone, computeFullBounds, endResizeBounds, findIntersectingNodes, fireChildPropertyChange, firePropertyChange, fullIntersects, fullPaint, fullPick, getAllNodes, getAllNodes, getAttribute, getAttribute, getBooleanAttribute, getBounds, getBoundsChanged, getBoundsReference, getBoundsVolatile, getChild, getChildBoundsInvalid, getChildBoundsVolatile, getChildPaintInvalid, getChildrenCount, getChildrenIterator, getChildrenPickable, getChildrenReference, getClientProperties, getClientProperty, getClientPropertyKeysEnumeration, getClientPropertyKeysIterator, getDoubleAttribute, getFullBounds, getFullBoundsInvalid, getFullBoundsReference, getGlobalBounds, getGlobalFullBounds, getGlobalRotation, getGlobalScale, getGlobalToLocalTransform, getGlobalTranslation, getHeight, getInputEventListeners, getIntegerAttribute, getInverseTransform, getListenerList, getLocalToGlobalTransform, getName, getOccluded, getOffset, getPaint, getPaintInvalid, getParent, getPickable, getPropertyChangeParentMask, getRoot, getRotation, getScale, getTransform, getTransformReference, getTransparency, getUnionOfChildrenBounds, getVisible, getWidth, getX, getXOffset, getY, getYOffset, globalToLocal, globalToLocal, globalToLocal, indexOfChild, internalUpdateBounds, intersects, invalidateFullBounds, invalidateLayout, invalidatePaint, isAncestorOf, isDescendentOf, isDescendentOfRoot, isOpaque, lerp, localToGlobal, localToGlobal, localToGlobal, localToParent, localToParent, localToParent, moveInBackOf, moveInFrontOf, moveToBack, moveToFront, offset, paint, paintAfterChildren, paramString, parentBoundsChanged, parentToLocal, parentToLocal, parentToLocal, pick, pickAfterChildren, position, print, print, removeAllChildren, removeChild, removeChild, removeChildren, removeFromParent, removeInputEventListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaintFrom, reparent, replaceWith, resetBounds, rotate, rotateAboutPoint, rotateAboutPoint, rotateInPlace, scale, scaleAboutPoint, scaleAboutPoint, setBounds, setBounds, setBoundsChanged, setChildBoundsInvalid, setChildBoundsVolatile, setChildPaintInvalid, setChildrenPickable, setFullBoundsInvalid, setGlobalRotation, setGlobalScale, setGlobalTranslation, setHeight, setName, setOccluded, setOffset, setOffset, setPaint, setPaintInvalid, setParent, setPickable, setPropertyChangeParentMask, setRotation, setScale, setTransform, setTransparency, setVisible, setWidth, setX, setY, signalBoundsChanged, startResizeBounds, toImage, toImage, toImage, toImage, transformBy, translate, validateFullBounds, validateFullPaint
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LENS_DRAGBAR_HEIGHT

public static double LENS_DRAGBAR_HEIGHT
The height of the drag bar.


DEFAULT_DRAGBAR_PAINT

public static Paint DEFAULT_DRAGBAR_PAINT
Default paint to use for the drag bar.


DEFAULT_LENS_PAINT

public static Paint DEFAULT_LENS_PAINT
Default paint to use when drawing the background of the lens.

Constructor Detail

PLens

public PLens()
Constructs the default PLens.


PLens

public PLens(PLayer layer)
Creates the default PLens and attaches the given layer to it.

Parameters:
layer - layer to attach to this PLens
Method Detail

getCamera

public PCamera getCamera()
Returns the camera on which this lens is appearing.

Returns:
camera on which lens is appearing

getDragBar

public PPath getDragBar()
Returns the drag bar for this lens.

Returns:
this lens' drag bar

getLensDraggerHandler

public PDragEventHandler getLensDraggerHandler()
Returns the event handler that this lens uses for its drag bar.

Returns:
drag bar's drag event handler

addLayer

public void addLayer(int index,
                     PLayer layer)
Adds the layer to the camera.

Parameters:
index - index at which to add the layer to the camera
layer - layer to add to the camera

removeLayer

public void removeLayer(PLayer layer)
Removes the provided layer from the camera.

Parameters:
layer - layer to be removed

layoutChildren

protected void layoutChildren()
When the lens is resized this method gives us a chance to layout the lenses camera child appropriately.

Overrides:
layoutChildren in class PNode


Copyright © 1995-2010 Piccolo2D. All Rights Reserved.