public class SVGTextFigure extends SVGAttributedFigure implements TextHolderFigure, SVGFigure
XXX - At least on Mac OS X - Always draw text using TextLayout.getOutline(), because outline layout does not match with TextLayout.draw() output. Cache outline to improve performance.
| Modifier and Type | Field and Description |
|---|---|
protected java.awt.geom.Point2D.Double[] |
coordinates |
protected double[] |
rotates |
changingDepth, listenerListpropertySupportCONNECTABLE_PROPERTY, REMOVABLE_PROPERTY, SELECTABLE_PROPERTY, TRANSFORMABLE_PROPERTY| Constructor and Description |
|---|
SVGTextFigure()
Creates a new instance.
|
SVGTextFigure(java.lang.String text) |
| Modifier and Type | Method and Description |
|---|---|
SVGTextFigure |
clone()
Returns a clone of the figure, with clones of all aggregated figures,
such as children and decorators.
|
boolean |
contains(java.awt.geom.Point2D.Double p)
Checks if a Point2D.Double is inside the figure.
|
java.util.Collection<Handle> |
createHandles(int detailLevel)
Creates handles used to manipulate the figure.
|
protected void |
drawFill(java.awt.Graphics2D g)
This method is called by method draw() to draw the fill
area of the figure.
|
protected void |
drawStroke(java.awt.Graphics2D g)
This method is called by method draw() to draw the text of the figure
.
|
protected void |
drawText(java.awt.Graphics2D g) |
double |
getBaseline()
Gets the baseline of the first line of text, relative to the
upper left corner of the figure bounds.
|
java.awt.geom.Rectangle2D.Double |
getBounds()
Returns the untransformed logical bounds of the figure as a Rectangle.
|
java.awt.geom.Point2D.Double[] |
getCoordinates() |
java.awt.geom.Rectangle2D.Double |
getDrawingArea()
Returns the drawing area of the figure as a Rectangle.
|
java.awt.Color |
getFillColor()
Returns the fill color to be used by a text editor for editing this Figure.
|
java.awt.Font |
getFont()
Returns the font to be used by a text editor for editing this Figure.
|
float |
getFontSize()
Gets the font size of the text held by the TextHolderFigure.
|
Insets2D.Double |
getInsets()
Returns Insets to be used by the text editor relative to the handle bounds
of the figure.
|
TextHolderFigure |
getLabelFor()
Sometimes we want to use a TextHolderFigure as a label for another
TextHolderFigure.
|
Dimension2DDouble |
getPreferredSize()
The preferred size is used by Layouter to determine the preferred
size of a Figure.
|
double[] |
getRotates() |
int |
getTabSize()
Gets the number of characters used to expand tabs.
|
java.lang.String |
getText()
Gets the text shown by the text figure.
|
java.awt.Color |
getTextColor()
Returns the text color to be used by a text editor for editing this Figure.
|
int |
getTextColumns()
Gets the number of columns to be overlaid when the figure is edited.
|
Tool |
getTool(java.awt.geom.Point2D.Double p)
Returns a specialized tool for the given coordinate.
|
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 |
invalidate()
Invalidates cached data of the Figure.
|
boolean |
isEditable()
Returns true if the text of the TextHolderFigure can be edited.
|
boolean |
isEmpty()
Returns true, if this figure is empty for one of the following
reasons:
A group has no children
A path has less than two points
An ellipse or a rectangle has a width or a height of 0
A text has no characters
|
boolean |
isTextOverflow()
Returns true, if the text does not fit into the bounds of the Figure.
|
void |
restoreTransformTo(java.lang.Object geometry)
Restores the transform of the figure to a previously stored state.
|
<T> void |
set(AttributeKey<T> key,
T newValue)
Sets an attribute of the figure.
|
void |
setBounds(java.awt.geom.Point2D.Double anchor,
java.awt.geom.Point2D.Double lead)
Sets the logical and untransformed bounds of the figure.
|
void |
setCoordinates(java.awt.geom.Point2D.Double[] coordinates) |
void |
setEditable(boolean b) |
void |
setFontSize(float size)
Sets the font size of the text held by the TextHolderFigure.
|
void |
setRotates(double[] rotates) |
void |
setText(java.lang.String newText)
Sets the text shown by the text figure.
|
void |
transform(java.awt.geom.AffineTransform tx)
Transforms the figure.
|
draw, drawFigure, getActionsapplyAttributesTo, get, getAttributeKey, getAttributes, getAttributesRestoreData, getStroke, getStrokeMiterLimitFactor, hasAttribute, isAttributeEnabled, read, readAttributes, removeAttribute, restoreAttributesTo, setAttributeEnabled, setAttributes, write, writeAttributesaddFigureListener, addNotify, changed, findCompatibleConnector, findConnector, findFigureInside, fireAreaInvalidated, fireAreaInvalidated, fireAreaInvalidated, fireAttributeChanged, fireFigureAdded, fireFigureChanged, fireFigureChanged, fireFigureChanged, fireFigureHandlesChanged, fireFigureRemoved, fireFigureRequestRemove, fireUndoableEditHappened, getChangingDepth, getConnectors, getCursor, getDecomposition, getDrawing, getEndPoint, getFontRenderContext, getLayer, getLock, getStartPoint, getToolTipText, handleDrop, handleMouseClick, includes, isChanging, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, requestRemove, setBounds, setConnectable, setRemovable, setSelectable, setTransformable, setVisible, toString, validate, willChangeaddPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListenerequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddFigureListener, addNotify, addPropertyChangeListener, changed, draw, findCompatibleConnector, findConnector, findFigureInside, get, getActions, getAttributes, getAttributesRestoreData, getConnectors, getCursor, getDecomposition, getEndPoint, getLayer, getStartPoint, getToolTipText, handleDrop, handleMouseClick, includes, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, removePropertyChangeListener, requestRemove, restoreAttributesTo, willChangeprotected java.awt.geom.Point2D.Double[] coordinates
protected double[] rotates
public SVGTextFigure()
public SVGTextFigure(java.lang.String text)
protected void drawText(java.awt.Graphics2D g)
drawText in class AbstractAttributedFigureprotected void drawFill(java.awt.Graphics2D g)
AbstractAttributedFiguredrawFill in class AbstractAttributedFigureprotected void drawStroke(java.awt.Graphics2D g)
AbstractAttributedFiguredrawStroke in class AbstractAttributedFigurepublic void setCoordinates(java.awt.geom.Point2D.Double[] coordinates)
public java.awt.geom.Point2D.Double[] getCoordinates()
public void setRotates(double[] rotates)
public double[] getRotates()
public java.awt.geom.Rectangle2D.Double getBounds()
FigureThe bounds are used by Handle objects for adjusting the figure and for aligning the figure on a grid.
public java.awt.geom.Rectangle2D.Double getDrawingArea()
Figure
The drawing area is used to inform DrawingView about the
area that is needed to draw this figure.
The drawing area needs to be large enough, to take line width, line caps and other decorations into account that exceed the bounds of the Figure.
getDrawingArea in interface FiguregetDrawingArea in class AbstractAttributedFigurepublic boolean contains(java.awt.geom.Point2D.Double p)
public void setBounds(java.awt.geom.Point2D.Double anchor,
java.awt.geom.Point2D.Double lead)
FigureThis 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 FiguresetBounds in class AbstractFigureanchor - the start point of the boundslead - the end point of the boundsFigure.getBounds()public void transform(java.awt.geom.AffineTransform tx)
transform in interface Figuretx - the transformation.Figure.getTransformRestoreData(),
Figure.restoreTransformTo(java.lang.Object)public void restoreTransformTo(java.lang.Object geometry)
FigurerestoreTransformTo in interface Figurepublic java.lang.Object getTransformRestoreData()
FiguregetTransformRestoreData in interface FigureFigure.transform(AffineTransform)public java.lang.String getText()
getText in interface TextHolderFigurepublic <T> void set(AttributeKey<T> key, T newValue)
AbstractAttributedFigureset in interface Figureset in class SVGAttributedFigureAttributeKey.set(org.jhotdraw.draw.Figure, T)public void setText(java.lang.String newText)
setText in interface TextHolderFigurepublic boolean isEditable()
TextHolderFigureisEditable in interface TextHolderFigurepublic void setEditable(boolean b)
public int getTextColumns()
TextHolderFiguregetTextColumns in interface TextHolderFigurepublic java.awt.Font getFont()
TextHolderFiguregetFont in interface TextHolderFigurepublic java.awt.Color getTextColor()
TextHolderFiguregetTextColor in interface TextHolderFigurepublic java.awt.Color getFillColor()
TextHolderFiguregetFillColor in interface TextHolderFigurepublic void setFontSize(float size)
TextHolderFiguresetFontSize in interface TextHolderFigurepublic float getFontSize()
TextHolderFiguregetFontSize in interface TextHolderFigurepublic void invalidate()
AbstractFigureinvalidate in class AbstractFigurepublic Dimension2DDouble getPreferredSize()
FiguregetPreferredSize in interface FiguregetPreferredSize in class AbstractFigurepublic java.util.Collection<Handle> createHandles(int detailLevel)
FigurecreateHandles in interface FigurecreateHandles in class AbstractFiguredetailLevel - The detail level of the handles. Usually this is 0 for
bounding box handles and 1 for point handles. The value -1 is used
by the SelectAreaTracker and the HandleTracker to highlight figures, over which the mouse
pointer is hovering.Handlepublic Tool getTool(java.awt.geom.Point2D.Double p)
Returns null, if no specialized tool is available.
getTool in interface FiguregetTool in class AbstractFigurepublic double getBaseline()
TextHolderFiguregetBaseline in interface TextHolderFigurepublic int getTabSize()
getTabSize in interface TextHolderFigurepublic TextHolderFigure getLabelFor()
TextHolderFiguregetLabelFor in interface TextHolderFigurepublic Insets2D.Double getInsets()
TextHolderFiguregetInsets in interface TextHolderFigurepublic SVGTextFigure clone()
Figureclone in interface Figureclone in class AbstractAttributedFigurepublic boolean isEmpty()
SVGFigurepublic boolean isTextOverflow()
TextHolderFigureisTextOverflow in interface TextHolderFigure