public class ImageFigure extends AbstractAttributedDecoratedFigure implements ImageHolderFigure
ImageHolderFigure
which can hold a
buffered image.changingDepth, listenerList
propertySupport
CONNECTABLE_PROPERTY, REMOVABLE_PROPERTY, SELECTABLE_PROPERTY, TRANSFORMABLE_PROPERTY
Constructor and Description |
---|
ImageFigure()
Creates a new instance.
|
ImageFigure(double x,
double y,
double width,
double height) |
Modifier and Type | Method and Description |
---|---|
ImageFigure |
clone()
Returns a clone of the figure, with clones of all aggregated figures,
such as children and decorators.
|
protected void |
drawFigure(java.awt.Graphics2D g) |
protected void |
drawFill(java.awt.Graphics2D g)
This method is called by method draw() to draw the fill
area of the figure.
|
protected void |
drawImage(java.awt.Graphics2D g) |
protected void |
drawStroke(java.awt.Graphics2D g)
This method is called by method draw() to draw the text of the figure
.
|
boolean |
figureContains(java.awt.geom.Point2D.Double p)
Checks if a Point2D.Double is inside the figure.
|
Connector |
findCompatibleConnector(Connector c,
boolean isStartConnector)
Gets a compatible connector.
|
Connector |
findConnector(java.awt.geom.Point2D.Double p,
ConnectionFigure prototype)
Returns the Figures connector for the specified location.
|
java.util.Collection<javax.swing.Action> |
getActions(java.awt.geom.Point2D.Double p)
Returns a collection of actions which are presented to the user
in a popup menu.
|
java.awt.geom.Rectangle2D.Double |
getBounds()
Returns the untransformed logical bounds of the figure as a Rectangle.
|
java.awt.image.BufferedImage |
getBufferedImage()
Gets the buffered image.
|
java.awt.geom.Rectangle2D.Double |
getFigureDrawingArea() |
byte[] |
getImageData()
Gets the image data.
|
java.lang.Object |
getTransformRestoreData()
Gets data which can be used to restore the transformation of the figure
without loss of precision, after a transform has been applied to it.
|
void |
loadImage(java.io.File file)
Loads an image from a File.
|
void |
loadImage(java.io.InputStream in)
Loads an image from an Input Stream.
|
void |
read(DOMInput in) |
void |
restoreTransformTo(java.lang.Object geometry)
Restores the transform of the figure to a previously stored state.
|
void |
setBounds(java.awt.geom.Point2D.Double anchor,
java.awt.geom.Point2D.Double lead)
Sets the logical and untransformed bounds of the figure.
|
void |
setBufferedImage(java.awt.image.BufferedImage image)
Sets the buffered image.
|
void |
setImage(byte[] imageData,
java.awt.image.BufferedImage bufferedImage)
Sets the image.
|
void |
setImageData(byte[] imageData)
Sets the image data.
|
void |
transform(java.awt.geom.AffineTransform tx)
Transforms the figure.
|
void |
write(DOMOutput out) |
contains, draw, drawDecorator, getDecorator, getDrawingArea, readDecorator, setDecorator, updateDecoratorBounds, writeDecorator
applyAttributesTo, drawText, get, getAttributeKey, getAttributes, getAttributesRestoreData, getStroke, getStrokeMiterLimitFactor, hasAttribute, isAttributeEnabled, readAttributes, removeAttribute, restoreAttributesTo, set, setAttributeEnabled, setAttributes, writeAttributes
addFigureListener, addNotify, changed, createHandles, findFigureInside, fireAreaInvalidated, fireAreaInvalidated, fireAreaInvalidated, fireAttributeChanged, fireFigureAdded, fireFigureChanged, fireFigureChanged, fireFigureChanged, fireFigureHandlesChanged, fireFigureRemoved, fireFigureRequestRemove, fireUndoableEditHappened, getChangingDepth, getConnectors, getCursor, getDecomposition, getDrawing, getEndPoint, getFontRenderContext, getLayer, getLock, getPreferredSize, getStartPoint, getTool, getToolTipText, handleDrop, handleMouseClick, includes, invalidate, isChanging, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, requestRemove, setBounds, setConnectable, setRemovable, setSelectable, setTransformable, setVisible, toString, validate, willChange
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addFigureListener, addNotify, addPropertyChangeListener, changed, contains, createHandles, draw, findFigureInside, get, getAttributes, getAttributesRestoreData, getConnectors, getCursor, getDecomposition, getDrawingArea, getEndPoint, getLayer, getPreferredSize, getStartPoint, getTool, getToolTipText, handleDrop, handleMouseClick, includes, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, removePropertyChangeListener, requestRemove, restoreAttributesTo, set, willChange
public ImageFigure()
public ImageFigure(double x, double y, double width, double height)
protected void drawFigure(java.awt.Graphics2D g)
drawFigure
in class AbstractAttributedDecoratedFigure
protected void drawFill(java.awt.Graphics2D g)
AbstractAttributedFigure
drawFill
in class AbstractAttributedFigure
protected void drawImage(java.awt.Graphics2D g)
protected void drawStroke(java.awt.Graphics2D g)
AbstractAttributedFigure
drawStroke
in class AbstractAttributedFigure
public java.awt.geom.Rectangle2D.Double getBounds()
Figure
The bounds are used by Handle objects for adjusting the figure and for aligning the figure on a grid.
public java.awt.geom.Rectangle2D.Double getFigureDrawingArea()
getFigureDrawingArea
in class AbstractAttributedDecoratedFigure
public boolean figureContains(java.awt.geom.Point2D.Double p)
figureContains
in class AbstractAttributedDecoratedFigure
public void setBounds(java.awt.geom.Point2D.Double anchor, java.awt.geom.Point2D.Double lead)
Figure
This is used by Tool's which create a new Figure and by Tool's which connect a Figure to another Figure.
This is a basic operation which does not fire events. Use the following code sequence, if you need event firing:
figure.willChange(); figure.setBounds(...); figure.changed();
setBounds
in interface Figure
setBounds
in class AbstractFigure
anchor
- the start point of the boundslead
- the end point of the boundsFigure.getBounds()
public void transform(java.awt.geom.AffineTransform tx)
transform
in interface Figure
tx
- The transformation.Figure.getTransformRestoreData()
,
Figure.restoreTransformTo(java.lang.Object)
public void restoreTransformTo(java.lang.Object geometry)
Figure
restoreTransformTo
in interface Figure
public java.lang.Object getTransformRestoreData()
Figure
getTransformRestoreData
in interface Figure
Figure.transform(AffineTransform)
public java.util.Collection<javax.swing.Action> getActions(java.awt.geom.Point2D.Double p)
AbstractFigure
The collection may contain null entries. These entries are used interpreted as separators in the popup menu.
getActions
in interface Figure
getActions
in class AbstractFigure
public Connector findConnector(java.awt.geom.Point2D.Double p, ConnectionFigure prototype)
AbstractFigure
findConnector
in interface Figure
findConnector
in class AbstractFigure
p
- the location of the connector.prototype
- The prototype used to create a connection or null if
unknown. This allows for specific connectors for different
connection figures.ChopRectangleConnector
public Connector findCompatibleConnector(Connector c, boolean isStartConnector)
Figure
findCompatibleConnector
in interface Figure
findCompatibleConnector
in class AbstractFigure
public ImageFigure clone()
Figure
clone
in interface Figure
clone
in class AbstractAttributedDecoratedFigure
public void read(DOMInput in) throws java.io.IOException
read
in interface DOMStorable
read
in class AbstractAttributedDecoratedFigure
java.io.IOException
public void write(DOMOutput out) throws java.io.IOException
write
in interface DOMStorable
write
in class AbstractAttributedDecoratedFigure
java.io.IOException
public void setImage(byte[] imageData, java.awt.image.BufferedImage bufferedImage)
setImage
in interface ImageHolderFigure
imageData
- The image data. If this is null, a buffered image must
be provided.bufferedImage
- An image constructed from the imageData. If this
is null, imageData must be provided.public void setImageData(byte[] imageData)
Note: For performance reasons this method stores a reference to the imageData array instead of cloning it. Do not modify the image data array after invoking this method.
public void setBufferedImage(java.awt.image.BufferedImage image)
setBufferedImage
in interface ImageHolderFigure
public java.awt.image.BufferedImage getBufferedImage()
getBufferedImage
in interface ImageHolderFigure
public byte[] getImageData()
Note: For performance reasons this method returns a reference to the internally used image data array instead of cloning it. Do not modify this array.
getImageData
in interface ImageHolderFigure
public void loadImage(java.io.File file) throws java.io.IOException
ImageHolderFigure
loadImage
in interface ImageHolderFigure
java.io.IOException
public void loadImage(java.io.InputStream in) throws java.io.IOException
ImageHolderFigure
loadImage
in interface ImageHolderFigure
java.io.IOException