diva.canvas.interactor
Class PathManipulator

java.lang.Object
  extended by diva.canvas.AbstractFigure
      extended by diva.canvas.AbstractFigureContainer
          extended by diva.canvas.FigureDecorator
              extended by diva.canvas.interactor.Manipulator
                  extended by diva.canvas.interactor.PathManipulator
All Implemented Interfaces:
CanvasComponent, Figure, FigureContainer, FigureSet, VisibleComponent, UserObjectContainer

public class PathManipulator
extends Manipulator

A manipulator which attaches grab handles to the sites of the child figure. It renders the grab handles and gives them a chance to intercept picks.

Version:
$Id: PathManipulator.java 38798 2005-07-08 20:00:01Z cxh $
Author:
John Reekie, Michael Shilman

Nested Class Summary
private static class PathManipulator.Resizer
          An interactor class that changes a vertex of the child figure and triggers a repaint.
 
Field Summary
private  PathGeometry _geometry
          The path geometry
 
Constructor Summary
PathManipulator()
          Construct a new manipulator that uses rectangular grab-handles.
PathManipulator(GrabHandleFactory f)
          Construct a new manipulator using the given grab-handle factory.
 
Method Summary
private  PathGeometry getGeometry()
          Return the geometry of this manipulator
 FigureDecorator newInstance(Figure f)
          Create a new instance of this manipulator.
 void refresh()
          Refresh the geometry.
 void setChild(Figure f)
          Set the child figure.
 
Methods inherited from class diva.canvas.interactor.Manipulator
addGrabHandle, clearGrabHandles, getBounds, getGrabHandleFactory, getHandleInteractor, isRepainting, paint, pick, relocateGrabHandles, removeGrabHandle, repaint, repaint, repaintAlready, setGrabHandleFactory, setHandleFilter, setHandleInteractor, setRepainting
 
Methods inherited from class diva.canvas.FigureDecorator
add, contains, figures, figuresFromBack, figuresFromFront, getChild, getContainer, getDecoratedFigure, getFigureCount, getShape, hit, remove, replaceChild, transform, translate
 
Methods inherited from class diva.canvas.AbstractFigureContainer
decorate, pick, undecorate
 
Methods inherited from class diva.canvas.AbstractFigure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, getTransformContext, getUserObject, intersects, isVisible, paint, setInteractor, setParent, setToolTipText, setUserObject, setVisible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface diva.canvas.VisibleComponent
isVisible, paint, setVisible
 
Methods inherited from interface diva.canvas.CanvasComponent
getParent, getTransformContext
 

Field Detail

_geometry

private PathGeometry _geometry
The path geometry

Constructor Detail

PathManipulator

public PathManipulator()
Construct a new manipulator that uses rectangular grab-handles.


PathManipulator

public PathManipulator(GrabHandleFactory f)
Construct a new manipulator using the given grab-handle factory.

Method Detail

getGeometry

private PathGeometry getGeometry()
Return the geometry of this manipulator


newInstance

public FigureDecorator newInstance(Figure f)
Create a new instance of this manipulator. The new instance will have the same grab handle, and interactor for grab-handles, as this one.

Specified by:
newInstance in class FigureDecorator

refresh

public void refresh()
Refresh the geometry.

Specified by:
refresh in class Manipulator

setChild

public void setChild(Figure f)
Set the child figure. If we have any grab-handles, lose them. Then get a path geometry object set on this figure (the manipulator, not the child) and create grab-handles on it.

Overrides:
setChild in class FigureDecorator