jsky.image.graphics
Class ImageFigure

java.lang.Object
  extended by diva.canvas.AbstractFigure
      extended by diva.canvas.toolbox.BasicFigure
          extended by jsky.image.graphics.ImageFigure
All Implemented Interfaces:
diva.canvas.CanvasComponent, diva.canvas.Figure, diva.canvas.interactor.ShapedFigure, diva.canvas.VisibleComponent, diva.util.UserObjectContainer, CanvasFigure

public class ImageFigure
extends diva.canvas.toolbox.BasicFigure
implements CanvasFigure

Represents a figure or drawing in an image overlay. For now, this is just a simple subclass of the Diva BasicFigure class. See the Diva documentation and examples for more information.

Version:
$Revision: 1.1 $
Author:
Allan Brighton

Field Summary
protected  java.lang.Object clientData
          An arbitrary object to store with the figure for later reference
protected  CanvasFigureListenerManager listenerManager
          Manages a list of listeners for figure events
protected  java.util.LinkedList slaves
          Optional linked list of slave figures, which should be moved with this figure.
 
Fields inherited from interface jsky.graphics.CanvasFigure
DESELECTED, MOVED, RESIZED, SELECTED
 
Constructor Summary
ImageFigure(java.awt.Shape shape, java.awt.Paint fill, java.awt.Paint outline, float lineWidth, diva.canvas.interactor.Interactor interactor)
          Create an image figure with the given shape, fill, outline and line width.
 
Method Summary
 void addCanvasFigureListener(CanvasFigureListener listener)
          Add a listener for events on the canvas figure
 void addSlave(CanvasFigure fig)
          Add a slave figure.
 void fireCanvasFigureEvent(int eventType)
          Fire an event on the canvas figure.
 java.awt.geom.Rectangle2D getBoundsWithoutLabel()
          Return the bounds of this figure, ignoring the label, if there is one.
 java.lang.Object getClientData()
          Return the client data object, or null if none was set
 boolean hit(java.awt.geom.Rectangle2D r)
          Test if this shape is hit by the given rectangle (Override parent class version, since the 25-sep-00 version only hits the outline).
 boolean isSelected()
          Return true if the figure is selected.
 void removeCanvasFigureListener(CanvasFigureListener listener)
          Remove a listener for events on the canvas figure
 void setClientData(java.lang.Object o)
          Store an arbitrary object with the figure for later reference
 void setVisible(boolean flag)
          Set the visibility flag of this object.
 void translate(double x, double y)
          Translate the figure by the given distance.
 
Methods inherited from class diva.canvas.toolbox.BasicFigure
getBounds, getComposite, getDashArray, getFillPaint, getLineWidth, getShape, getStrokePaint, paint, setComposite, setDashArray, setFillPaint, setLineWidth, setShape, setStroke, setStrokePaint, transform
 
Methods inherited from class diva.canvas.AbstractFigure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, getTransformContext, getUserObject, intersects, isVisible, paint, repaint, repaint, setInteractor, setParent, setToolTipText, setUserObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jsky.graphics.CanvasFigure
getBounds, isVisible
 
Methods inherited from interface diva.canvas.Figure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, intersects, setInteractor, setParent, setToolTipText
 
Methods inherited from interface diva.canvas.VisibleComponent
isVisible, paint
 
Methods inherited from interface diva.canvas.CanvasComponent
getTransformContext, repaint, repaint
 
Methods inherited from interface diva.util.UserObjectContainer
getUserObject, setUserObject
 

Field Detail

clientData

protected java.lang.Object clientData
An arbitrary object to store with the figure for later reference


listenerManager

protected CanvasFigureListenerManager listenerManager
Manages a list of listeners for figure events


slaves

protected java.util.LinkedList slaves
Optional linked list of slave figures, which should be moved with this figure.

Constructor Detail

ImageFigure

public ImageFigure(java.awt.Shape shape,
                   java.awt.Paint fill,
                   java.awt.Paint outline,
                   float lineWidth,
                   diva.canvas.interactor.Interactor interactor)
Create an image figure with the given shape, fill, outline and line width.

Parameters:
shape - the shape to draw
fill - the paint to use to fill the shape
outline - the paint to use for the outline
lineWidth - the width of the shape lines in pixels
interactor - determines the behavior of the figure (may be null)
Method Detail

setClientData

public void setClientData(java.lang.Object o)
Store an arbitrary object with the figure for later reference

Specified by:
setClientData in interface CanvasFigure

getClientData

public java.lang.Object getClientData()
Return the client data object, or null if none was set

Specified by:
getClientData in interface CanvasFigure

getBoundsWithoutLabel

public java.awt.geom.Rectangle2D getBoundsWithoutLabel()
Return the bounds of this figure, ignoring the label, if there is one.

Specified by:
getBoundsWithoutLabel in interface CanvasFigure

hit

public boolean hit(java.awt.geom.Rectangle2D r)
Test if this shape is hit by the given rectangle (Override parent class version, since the 25-sep-00 version only hits the outline).

Specified by:
hit in interface diva.canvas.Figure
Overrides:
hit in class diva.canvas.toolbox.BasicFigure

setVisible

public void setVisible(boolean flag)
Set the visibility flag of this object. If the flag is false, then the object will not be painted on the screen.

Specified by:
setVisible in interface diva.canvas.VisibleComponent
Specified by:
setVisible in interface CanvasFigure
Overrides:
setVisible in class diva.canvas.AbstractFigure

isSelected

public boolean isSelected()
Return true if the figure is selected.

Specified by:
isSelected in interface CanvasFigure

addCanvasFigureListener

public void addCanvasFigureListener(CanvasFigureListener listener)
Add a listener for events on the canvas figure

Specified by:
addCanvasFigureListener in interface CanvasFigure

removeCanvasFigureListener

public void removeCanvasFigureListener(CanvasFigureListener listener)
Remove a listener for events on the canvas figure

Specified by:
removeCanvasFigureListener in interface CanvasFigure

fireCanvasFigureEvent

public void fireCanvasFigureEvent(int eventType)
Fire an event on the canvas figure.

Specified by:
fireCanvasFigureEvent in interface CanvasFigure
Parameters:
eventType - one of the CanvasFigure constants: SELECTED, DESELECTED, RESIZED, MOVED

addSlave

public void addSlave(CanvasFigure fig)
Add a slave figure. When this figure is moved, the slaves will also move.

Specified by:
addSlave in interface CanvasFigure

translate

public void translate(double x,
                      double y)
Translate the figure by the given distance. As much as possible, this method attempts to preserve the type of the shape: if the shape of this figure is an of RectangularShape or Polyline, then the shape may be modified directly. Otherwise, a general transformation is used that loses the type of the shape, converting it into a GeneralPath.

Specified by:
translate in interface diva.canvas.Figure
Overrides:
translate in class diva.canvas.toolbox.BasicFigure