diva.canvas.toolbox
Class BasicHighlighter

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

public class BasicHighlighter
extends FigureDecorator

A decorator figure that displays a highlight behind the figure. The highlighter has several options to control the color, transparency, and "halo." Currently, this just displays a rectangle on the figure's bounding box, but this may be changed to take notice of the figure's shape in the future.

Version:
$Id: BasicHighlighter.java 40701 2006-02-07 00:50:57Z cxh $
Author:
John Reekie

Field Summary
private  java.awt.Composite _composite
           
private  float _halo
           
private  java.awt.Paint _paint
           
private  java.awt.Stroke _stroke
           
 
Constructor Summary
BasicHighlighter()
          Create a new highlighter with a default paint and "halo"
BasicHighlighter(java.awt.Paint paint, float halo)
          Create a new highlighter with the given paint and "halo"
BasicHighlighter(java.awt.Paint paint, float halo, java.awt.Composite composite)
          Create a new highlighter with the given paint, "halo," and compositing operation.
BasicHighlighter(java.awt.Paint paint, float halo, java.awt.Composite composite, java.awt.Stroke stroke)
          Create a new highlighter with the given paint, "halo," compositing operation, and stroke.
 
Method Summary
 java.awt.geom.Rectangle2D getBounds()
          Get the bounds.
 java.awt.Composite getComposite()
          Get the composite.
 float getHalo()
          Get the halo.
 java.awt.Paint getPaint()
          Get the paint.
 java.awt.Stroke getStroke()
          Get the stroke.
 boolean hit(java.awt.geom.Rectangle2D region)
          Return false.
 FigureDecorator newInstance(Figure f)
          Create a new instance of this highlighter.
 void paint(java.awt.Graphics2D g)
          Paint the figure.
 void repaint()
          Request a repaint of the figure and highlight.
 void repaint(DamageRegion d)
          Receive repaint notification.
 
Methods inherited from class diva.canvas.FigureDecorator
add, contains, figures, figuresFromBack, figuresFromFront, getChild, getContainer, getDecoratedFigure, getFigureCount, getShape, remove, replaceChild, setChild, transform, translate
 
Methods inherited from class diva.canvas.AbstractFigureContainer
decorate, pick, 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

_composite

private java.awt.Composite _composite

_halo

private float _halo

_paint

private java.awt.Paint _paint

_stroke

private java.awt.Stroke _stroke
Constructor Detail

BasicHighlighter

public BasicHighlighter()
Create a new highlighter with a default paint and "halo"


BasicHighlighter

public BasicHighlighter(java.awt.Paint paint,
                        float halo)
Create a new highlighter with the given paint and "halo"


BasicHighlighter

public BasicHighlighter(java.awt.Paint paint,
                        float halo,
                        java.awt.Composite composite)
Create a new highlighter with the given paint, "halo," and compositing operation.


BasicHighlighter

public BasicHighlighter(java.awt.Paint paint,
                        float halo,
                        java.awt.Composite composite,
                        java.awt.Stroke stroke)
Create a new highlighter with the given paint, "halo," compositing operation, and stroke. This highlighter draws an outline only and does not fill it.

Method Detail

getComposite

public java.awt.Composite getComposite()
Get the composite.


getBounds

public java.awt.geom.Rectangle2D getBounds()
Get the bounds. This is the child's bounding box stretched by the "halo."

Specified by:
getBounds in interface Figure
Overrides:
getBounds in class FigureDecorator

getHalo

public float getHalo()
Get the halo.


getPaint

public java.awt.Paint getPaint()
Get the paint.


getStroke

public java.awt.Stroke getStroke()
Get the stroke.


hit

public boolean hit(java.awt.geom.Rectangle2D region)
Return false. This method always returns false, as it is meaningless (and dangerous!) to be able to hit a highlight.

Specified by:
hit in interface Figure
Overrides:
hit in class FigureDecorator

newInstance

public FigureDecorator newInstance(Figure f)
Create a new instance of this highlighter. The new instance will have the same paint, halo, and composite as this one.

Specified by:
newInstance in class FigureDecorator

paint

public void paint(java.awt.Graphics2D g)
Paint the figure. This method first paints the highlight over the contained figure's bounding box stretched by the halo. It then paints the contained figure.

Specified by:
paint in interface VisibleComponent
Overrides:
paint in class FigureDecorator

repaint

public void repaint(DamageRegion d)
Receive repaint notification. This method generates another repaint() call, with a larger region, in order to ensure that the highlight is repainted.

Specified by:
repaint in interface CanvasComponent
Overrides:
repaint in class AbstractFigureContainer

repaint

public void repaint()
Request a repaint of the figure and highlight. This method reads the bounding box of the highlighted figure, and requests a repaint of that box stretched in each direction by the halo.

Specified by:
repaint in interface CanvasComponent
Overrides:
repaint in class AbstractFigure