Class SVGTextFigure
- java.lang.Object
-
- org.jhotdraw.beans.AbstractBean
-
- org.jhotdraw.draw.AbstractFigure
-
- org.jhotdraw.draw.AbstractAttributedFigure
-
- org.jhotdraw.samples.svg.figures.SVGAttributedFigure
-
- org.jhotdraw.samples.svg.figures.SVGTextFigure
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Figure, TextHolderFigure, SVGFigure, DOMStorable
public class SVGTextFigure extends SVGAttributedFigure implements TextHolderFigure, SVGFigure
SVGText.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.
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface org.jhotdraw.draw.Figure
CONNECTABLE_PROPERTY, REMOVABLE_PROPERTY, SELECTABLE_PROPERTY, TRANSFORMABLE_PROPERTY
-
-
Constructor Summary
Constructors Constructor and Description SVGTextFigure()Creates a new instance.SVGTextFigure(java.lang.String text)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description SVGTextFigureclone()Returns a clone of the figure, with clones of all aggregated figures, such as children and decorators.booleancontains(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.doublegetBaseline()Gets the baseline of the first line of text, relative to the upper left corner of the figure bounds.java.awt.geom.Rectangle2D.DoublegetBounds()Returns the untransformed logical bounds of the figure as a Rectangle.java.awt.geom.Point2D.Double[]getCoordinates()java.awt.geom.Rectangle2D.DoublegetDrawingArea()Returns the drawing area of the figure as a Rectangle.java.awt.ColorgetFillColor()Returns the fill color to be used by a text editor for editing this Figure.java.awt.FontgetFont()Returns the font to be used by a text editor for editing this Figure.floatgetFontSize()Gets the font size of the text held by the TextHolderFigure.Insets2D.DoublegetInsets()Returns Insets to be used by the text editor relative to the handle bounds of the figure.TextHolderFiguregetLabelFor()Sometimes we want to use a TextHolderFigure as a label for another TextHolderFigure.Dimension2DDoublegetPreferredSize()The preferred size is used by Layouter to determine the preferred size of a Figure.double[]getRotates()intgetTabSize()Gets the number of characters used to expand tabs.java.lang.StringgetText()Gets the text shown by the text figure.java.awt.ColorgetTextColor()Returns the text color to be used by a text editor for editing this Figure.intgetTextColumns()Gets the number of columns to be overlaid when the figure is edited.ToolgetTool(java.awt.geom.Point2D.Double p)Returns a specialized tool for the given coordinate.java.lang.ObjectgetTransformRestoreData()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.voidinvalidate()Invalidates cached data of the Figure.booleanisEditable()Returns true if the text of the TextHolderFigure can be edited.booleanisEmpty()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 charactersbooleanisTextOverflow()Returns true, if the text does not fit into the bounds of the Figure.voidrestoreTransformTo(java.lang.Object geometry)Restores the transform of the figure to a previously stored state.<T> voidset(AttributeKey<T> key, T newValue)Sets an attribute of the figure.voidsetBounds(java.awt.geom.Point2D.Double anchor, java.awt.geom.Point2D.Double lead)Sets the logical and untransformed bounds of the figure.voidsetCoordinates(java.awt.geom.Point2D.Double[] coordinates)voidsetEditable(boolean b)voidsetFontSize(float size)Sets the font size of the text held by the TextHolderFigure.voidsetRotates(double[] rotates)voidsetText(java.lang.String newText)Sets the text shown by the text figure.voidtransform(java.awt.geom.AffineTransform tx)Transforms the figure.-
Methods inherited from class org.jhotdraw.samples.svg.figures.SVGAttributedFigure
draw, drawFigure, getActions
-
Methods inherited from class org.jhotdraw.draw.AbstractAttributedFigure
get, getAttributes, getAttributesRestoreData, getStroke, getStrokeMiterLimitFactor, hasAttribute, isAttributeEnabled, read, removeAttribute, restoreAttributesTo, setAttributeEnabled, setAttributes, write
-
Methods inherited from class org.jhotdraw.draw.AbstractFigure
addFigureListener, addNotify, changed, findCompatibleConnector, findConnector, findFigureInside, fireAreaInvalidated, fireFigureChanged, getConnectors, getCursor, getDecomposition, getEndPoint, getLayer, getStartPoint, getToolTipText, handleDrop, handleMouseClick, includes, isConnectable, isRemovable, isSelectable, isTransformable, isVisible, remap, removeFigureListener, removeNotify, requestRemove, setBounds, setConnectable, setRemovable, setSelectable, setTransformable, setVisible, toString, willChange
-
Methods inherited from class org.jhotdraw.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jhotdraw.draw.Figure
addFigureListener, 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, willChange
-
-
-
-
Constructor Detail
-
SVGTextFigure
public SVGTextFigure()
Creates a new instance.
-
SVGTextFigure
public SVGTextFigure(java.lang.String text)
-
-
Method Detail
-
setCoordinates
public void setCoordinates(java.awt.geom.Point2D.Double[] coordinates)
-
getCoordinates
public java.awt.geom.Point2D.Double[] getCoordinates()
-
setRotates
public void setRotates(double[] rotates)
-
getRotates
public double[] getRotates()
-
getBounds
public java.awt.geom.Rectangle2D.Double getBounds()
Description copied from interface:FigureReturns the untransformed logical bounds of the figure as a Rectangle.The bounds are used by Handle objects for adjusting the figure and for aligning the figure on a grid.
-
getDrawingArea
public java.awt.geom.Rectangle2D.Double getDrawingArea()
Description copied from interface:FigureReturns the drawing area of the figure as a Rectangle.The drawing area is used to inform
DrawingViewabout 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.
- Specified by:
getDrawingAreain interfaceFigure- Overrides:
getDrawingAreain classAbstractAttributedFigure
-
contains
public boolean contains(java.awt.geom.Point2D.Double p)
Checks if a Point2D.Double is inside the figure.
-
setBounds
public void setBounds(java.awt.geom.Point2D.Double anchor, java.awt.geom.Point2D.Double lead)Description copied from interface:FigureSets the logical and untransformed bounds of the 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();
- Specified by:
setBoundsin interfaceFigure- Overrides:
setBoundsin classAbstractFigure- Parameters:
anchor- the start point of the boundslead- the end point of the bounds- See Also:
Figure.getBounds()
-
transform
public void transform(java.awt.geom.AffineTransform tx)
Transforms the figure.- Specified by:
transformin interfaceFigure- Parameters:
tx- the transformation.- See Also:
Figure.getTransformRestoreData(),Figure.restoreTransformTo(java.lang.Object)
-
restoreTransformTo
public void restoreTransformTo(java.lang.Object geometry)
Description copied from interface:FigureRestores the transform of the figure to a previously stored state.- Specified by:
restoreTransformToin interfaceFigure
-
getTransformRestoreData
public java.lang.Object getTransformRestoreData()
Description copied from interface:FigureGets data which can be used to restore the transformation of the figure without loss of precision, after a transform has been applied to it.- Specified by:
getTransformRestoreDatain interfaceFigure- See Also:
Figure.transform(AffineTransform)
-
getText
public java.lang.String getText()
Gets the text shown by the text figure.- Specified by:
getTextin interfaceTextHolderFigure
-
set
public <T> void set(AttributeKey<T> key, T newValue)
Description copied from class:AbstractAttributedFigureSets an attribute of the figure. AttributeKey name and semantics are defined by the class implementing the figure interface.- Specified by:
setin interfaceFigure- Overrides:
setin classSVGAttributedFigure- See Also:
AttributeKey.set(org.jhotdraw.draw.Figure, T)
-
setText
public void setText(java.lang.String newText)
Sets the text shown by the text figure.- Specified by:
setTextin interfaceTextHolderFigure
-
isEditable
public boolean isEditable()
Description copied from interface:TextHolderFigureReturns true if the text of the TextHolderFigure can be edited.- Specified by:
isEditablein interfaceTextHolderFigure
-
setEditable
public void setEditable(boolean b)
-
getTextColumns
public int getTextColumns()
Description copied from interface:TextHolderFigureGets the number of columns to be overlaid when the figure is edited.- Specified by:
getTextColumnsin interfaceTextHolderFigure
-
getFont
public java.awt.Font getFont()
Description copied from interface:TextHolderFigureReturns the font to be used by a text editor for editing this Figure.- Specified by:
getFontin interfaceTextHolderFigure
-
getTextColor
public java.awt.Color getTextColor()
Description copied from interface:TextHolderFigureReturns the text color to be used by a text editor for editing this Figure.- Specified by:
getTextColorin interfaceTextHolderFigure
-
getFillColor
public java.awt.Color getFillColor()
Description copied from interface:TextHolderFigureReturns the fill color to be used by a text editor for editing this Figure.- Specified by:
getFillColorin interfaceTextHolderFigure
-
setFontSize
public void setFontSize(float size)
Description copied from interface:TextHolderFigureSets the font size of the text held by the TextHolderFigure.- Specified by:
setFontSizein interfaceTextHolderFigure
-
getFontSize
public float getFontSize()
Description copied from interface:TextHolderFigureGets the font size of the text held by the TextHolderFigure.- Specified by:
getFontSizein interfaceTextHolderFigure
-
invalidate
public void invalidate()
Description copied from class:AbstractFigureInvalidates cached data of the Figure. This method must execute fast, because it can be called very often.
-
getPreferredSize
public Dimension2DDouble getPreferredSize()
Description copied from interface:FigureThe preferred size is used by Layouter to determine the preferred size of a Figure. For most Figure's this is the same as the dimensions returned by getBounds.- Specified by:
getPreferredSizein interfaceFigure- Overrides:
getPreferredSizein classAbstractFigure
-
createHandles
public java.util.Collection<Handle> createHandles(int detailLevel)
Description copied from interface:FigureCreates handles used to manipulate the figure.- Specified by:
createHandlesin interfaceFigure- Overrides:
createHandlesin classAbstractFigure- Parameters:
detailLevel- 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.- Returns:
- a Collection of handles
- See Also:
Handle
-
getTool
public Tool getTool(java.awt.geom.Point2D.Double p)
Returns a specialized tool for the given coordinate.Returns null, if no specialized tool is available.
- Specified by:
getToolin interfaceFigure- Overrides:
getToolin classAbstractFigure
-
getBaseline
public double getBaseline()
Description copied from interface:TextHolderFigureGets the baseline of the first line of text, relative to the upper left corner of the figure bounds.- Specified by:
getBaselinein interfaceTextHolderFigure
-
getTabSize
public int getTabSize()
Gets the number of characters used to expand tabs.- Specified by:
getTabSizein interfaceTextHolderFigure
-
getLabelFor
public TextHolderFigure getLabelFor()
Description copied from interface:TextHolderFigureSometimes we want to use a TextHolderFigure as a label for another TextHolderFigure. Returns the TextHolderFigure that should be really used.- Specified by:
getLabelForin interfaceTextHolderFigure
-
getInsets
public Insets2D.Double getInsets()
Description copied from interface:TextHolderFigureReturns Insets to be used by the text editor relative to the handle bounds of the figure.- Specified by:
getInsetsin interfaceTextHolderFigure
-
clone
public SVGTextFigure clone()
Description copied from interface:FigureReturns a clone of the figure, with clones of all aggregated figures, such as children and decorators. The cloned figure does not clone the list of FigureListeners from its original.- Specified by:
clonein interfaceFigure- Overrides:
clonein classAbstractAttributedFigure
-
isEmpty
public boolean isEmpty()
Description copied from interface:SVGFigureReturns 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
-
isTextOverflow
public boolean isTextOverflow()
Description copied from interface:TextHolderFigureReturns true, if the text does not fit into the bounds of the Figure.- Specified by:
isTextOverflowin interfaceTextHolderFigure
-
-
DataMelt 3.0 © DataMelt by jWork.ORG