org.apache.batik.gvt.text

Interface TextSpanLayout

public interface TextSpanLayout

Class that performs layout of attributed text strings into glyph sets paintable by TextPainter instances. Similar to java.awt.font.TextLayout in function and purpose. Note that while this utility interface is provided for the convenience of TextPainter implementations, conforming TextPainters are not required to use this class.

See Also: java.awt.font.TextLayout

Field Summary
intDECORATION_ALL
intDECORATION_OVERLINE
intDECORATION_STRIKETHROUGH
intDECORATION_UNDERLINE
Method Summary
voiddraw(Graphics2D g2d)
Paints the specified text layout using the specified Graphics2D and rendering context.
Point2DgetAdvance2D()
Returns the current text position at the completion of glyph layout.
Rectangle2DgetBounds2D()
Returns the rectangular bounds of the completed glyph layout.
intgetCharacterCount(int startGlyphIndex, int endGlyphIndex)
Returns the number of chars represented by the glyphs within the specified range.
doublegetComputedOrientationAngle(int index)
Return the rotation angle applied to the character.
ShapegetDecorationOutline(int decorationType)
Returns the outline of the specified decorations on the glyphs, transformed by an AffineTransform.
Rectangle2DgetGeometricBounds()
Returns the bounds of the geometry (this is always the bounds of the outline).
float[]getGlyphAdvances()
Returns the advance between each glyph in text progression direction.
intgetGlyphCount()
Returns the number of glyphs in this layout.
intgetGlyphIndex(int charIndex)
Returns the glyph index of the glyph that has the specified char index.
GVTGlyphMetricsgetGlyphMetrics(int glyphIndex)
Returns the Metrics for a particular glyph.
GVTGlyphVectorgetGlyphVector()
Return the glyph vector asociated to this layout.
ShapegetHighlightShape(int beginCharIndex, int endCharIndex)
Returns a Shape which encloses the currently selected glyphs as specified by glyph indices begin and end.
GVTLineMetricsgetLineMetrics()
Returns the Line metrics for this text span.
Point2DgetOffset()
Returns the current text position at the completion beginning of glyph layout, before the application of explicit glyph positioning attributes.
ShapegetOutline()
Returns the outline of the completed glyph layout, transformed by an AffineTransform.
Point2DgetTextPathAdvance()
booleanhasCharacterIndex(int index)
Return true is the character index is represented by glyphs in this layout.
TextHithitTestChar(float x, float y)
Perform hit testing for coordinate at x, y.
booleanisAltGlyph()
Return true if this text run represents an alt glyph.
booleanisLeftToRight()
Returns true if the text direction in this layout is from left to right.
booleanisOnATextPath()
Returns true if this layout in on a text path.
booleanisVertical()
Returns true if the advance direction of this text is vertical.
voidsetOffset(Point2D offset)
Sets the text position used for the implicit origin of glyph layout.
voidsetScale(float xScale, float yScale, boolean adjSpacing)
Sets the scaling factor to use for string. if ajdSpacing is true then only the spacing between glyphs will be adjusted otherwise the glyphs and the spaces between them will be adjusted.

Field Detail

DECORATION_ALL

public int DECORATION_ALL

DECORATION_OVERLINE

public int DECORATION_OVERLINE

DECORATION_STRIKETHROUGH

public int DECORATION_STRIKETHROUGH

DECORATION_UNDERLINE

public int DECORATION_UNDERLINE

Method Detail

draw

public void draw(Graphics2D g2d)
Paints the specified text layout using the specified Graphics2D and rendering context.

Parameters: g2d the Graphics2D to use

getAdvance2D

public Point2D getAdvance2D()
Returns the current text position at the completion of glyph layout. (This is the position that should be used for positioning adjacent layouts.)

getBounds2D

public Rectangle2D getBounds2D()
Returns the rectangular bounds of the completed glyph layout. This includes stroking information, this does not include deocrations.

getCharacterCount

public int getCharacterCount(int startGlyphIndex, int endGlyphIndex)
Returns the number of chars represented by the glyphs within the specified range.

Parameters: startGlyphIndex The index of the first glyph in the range. endGlyphIndex The index of the last glyph in the range.

Returns: The number of chars.

getComputedOrientationAngle

public double getComputedOrientationAngle(int index)
Return the rotation angle applied to the character.

Parameters: index index of the character in the ACI

Returns: rotation angle

getDecorationOutline

public Shape getDecorationOutline(int decorationType)
Returns the outline of the specified decorations on the glyphs, transformed by an AffineTransform.

Parameters: decorationType an integer indicating the type(s) of decorations included in this shape. May be the result of "OR-ing" several values together: e.g. DECORATION_UNDERLINE | DECORATION_STRIKETHROUGH

getGeometricBounds

public Rectangle2D getGeometricBounds()
Returns the bounds of the geometry (this is always the bounds of the outline).

getGlyphAdvances

public float[] getGlyphAdvances()
Returns the advance between each glyph in text progression direction.

getGlyphCount

public int getGlyphCount()
Returns the number of glyphs in this layout.

getGlyphIndex

public int getGlyphIndex(int charIndex)
Returns the glyph index of the glyph that has the specified char index.

Parameters: charIndex The original index of the character in the text node's text string.

Returns: The index of the matching glyph in this layout's glyph vector, or -1 if a matching glyph could not be found.

getGlyphMetrics

public GVTGlyphMetrics getGlyphMetrics(int glyphIndex)
Returns the Metrics for a particular glyph.

getGlyphVector

public GVTGlyphVector getGlyphVector()
Return the glyph vector asociated to this layout.

Returns: glyph vector

getHighlightShape

public Shape getHighlightShape(int beginCharIndex, int endCharIndex)
Returns a Shape which encloses the currently selected glyphs as specified by glyph indices begin and end.

Parameters: beginCharIndex the index of the first glyph in the contiguous selection. endCharIndex the index of the last glyph in the contiguous selection.

getLineMetrics

public GVTLineMetrics getLineMetrics()
Returns the Line metrics for this text span.

getOffset

public Point2D getOffset()
Returns the current text position at the completion beginning of glyph layout, before the application of explicit glyph positioning attributes.

getOutline

public Shape getOutline()
Returns the outline of the completed glyph layout, transformed by an AffineTransform.

getTextPathAdvance

public Point2D getTextPathAdvance()

hasCharacterIndex

public boolean hasCharacterIndex(int index)
Return true is the character index is represented by glyphs in this layout.

Parameters: index index of the character in the ACI.

Returns: true if the layout represents that character.

hitTestChar

public TextHit hitTestChar(float x, float y)
Perform hit testing for coordinate at x, y.

Parameters: x the x coordinate of the point to be tested. y the y coordinate of the point to be tested.

Returns: a TextHit object encapsulating the character index for successful hits and whether the hit is on the character leading edge.

isAltGlyph

public boolean isAltGlyph()
Return true if this text run represents an alt glyph.

isLeftToRight

public boolean isLeftToRight()
Returns true if the text direction in this layout is from left to right.

isOnATextPath

public boolean isOnATextPath()
Returns true if this layout in on a text path.

isVertical

public boolean isVertical()
Returns true if the advance direction of this text is vertical.

setOffset

public void setOffset(Point2D offset)
Sets the text position used for the implicit origin of glyph layout. Ignored if multiple explicit glyph positioning attributes are present in ACI (e.g. if the aci has multiple X or Y values).

setScale

public void setScale(float xScale, float yScale, boolean adjSpacing)
Sets the scaling factor to use for string. if ajdSpacing is true then only the spacing between glyphs will be adjusted otherwise the glyphs and the spaces between them will be adjusted.

Parameters: xScale Scale factor to apply in X direction. yScale Scale factor to apply in Y direction. adjSpacing True if only spaces should be adjusted.

Copyright B) 2008 Apache Software Foundation. All Rights Reserved.