diva.canvas.toolbox
Class SwingWrapper

java.lang.Object
  extended by diva.canvas.AbstractFigure
      extended by diva.canvas.toolbox.SwingWrapper
All Implemented Interfaces:
CanvasComponent, Figure, VisibleComponent, UserObjectContainer

public class SwingWrapper
extends AbstractFigure

A figure that embeds swing components in canvas drawings.

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

Field Summary
private  javax.swing.JComponent _component
          The embedded swing component.
 
Constructor Summary
SwingWrapper(javax.swing.JComponent c)
          Construct a new swing wrapper instance to wrap the given component.
 
Method Summary
 java.awt.geom.Rectangle2D getBounds()
          Get the bounding box of this figure.
 javax.swing.JComponent getComponent()
          Return the component that this is wrapping.
 java.awt.Shape getShape()
          Get the shape of this figure.
 void paint(java.awt.Graphics2D g)
          Ask the wrapped component to paint itself.
 void setComponent(javax.swing.JComponent c)
          Replace the currently wrapped component with the given component and reshape/repaint the figure.
 void setParent(CanvasComponent fc)
          Set the parent of this figure.
 void transform(java.awt.geom.AffineTransform at)
          Transform the figure with the supplied transform.
 void translate(double x, double y)
          Translate the figure by the given distance.
 
Methods inherited from class diva.canvas.AbstractFigure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, getTransformContext, getUserObject, hit, intersects, isVisible, paint, repaint, repaint, setInteractor, setToolTipText, setUserObject, setVisible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_component

private javax.swing.JComponent _component
The embedded swing component.

Constructor Detail

SwingWrapper

public SwingWrapper(javax.swing.JComponent c)
Construct a new swing wrapper instance to wrap the given component.

Method Detail

getBounds

public java.awt.geom.Rectangle2D getBounds()
Get the bounding box of this figure. This method overrides the inherited method to take account of the thickness of the stroke, if there is one.

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

getComponent

public javax.swing.JComponent getComponent()
Return the component that this is wrapping.


getShape

public java.awt.Shape getShape()
Get the shape of this figure.

Specified by:
getShape in interface Figure
Specified by:
getShape in class AbstractFigure

paint

public void paint(java.awt.Graphics2D g)
Ask the wrapped component to paint itself.

Specified by:
paint in interface VisibleComponent
Specified by:
paint in class AbstractFigure

setComponent

public void setComponent(javax.swing.JComponent c)
Replace the currently wrapped component with the given component and reshape/repaint the figure.


setParent

public void setParent(CanvasComponent fc)
Set the parent of this figure. This method overrides the inherited method to deal with the Swing component hierarchy.

Specified by:
setParent in interface Figure
Overrides:
setParent in class AbstractFigure

transform

public void transform(java.awt.geom.AffineTransform at)
Transform the figure with the supplied transform. For now this throws an UnsupportedOperationException because it is unclear how we want to deal with transformations that are not shape-preserving, such as shears and rotations.

Specified by:
transform in interface Figure
Specified by:
transform in class AbstractFigure

translate

public void translate(double x,
                      double y)
Translate the figure by the given distance.

Specified by:
translate in interface Figure
Overrides:
translate in class AbstractFigure