public class mxCurveLabelShape extends java.lang.Object implements mxITextShape
Modifier and Type | Class and Description |
---|---|
class |
mxCurveLabelShape.LabelGlyphCache
Utility class to describe the characteristics of each glyph of a branch
branch label.
|
class |
mxCurveLabelShape.LabelPosition
Utility class that stores details of how the label is positioned
on the curve
|
Modifier and Type | Field and Description |
---|---|
int |
centerVisibleIndex
The index of the central glyph of the label that is visible
|
protected mxCurve |
curve
Cache of the points between which drawing straight lines views as a
curve
|
static double |
CURVE_TEXT_STRETCH_FACTOR
Factor by which text on the inside of curve is stretched
|
static java.lang.Object |
FONT_FRACTIONALMETRICS
Specifies if image aspect should be preserved in drawImage.
|
static java.awt.font.FontRenderContext |
frc
Shared FRC for font size calculations
|
static mxRectangle |
INVALID_GLYPH_BOUNDS
Indicates that a glyph does not have valid drawing bounds, usually
because it is not visible
|
static double |
LABEL_BUFFER
Buffer at both ends of the label
|
protected mxRectangle |
labelBounds
Cache of the bounds of the label
|
protected mxCurveLabelShape.LabelGlyphCache[] |
labelGlyphs
Cache of information describing characteristics relating to drawing
each glyph of this label
|
protected mxCurveLabelShape.LabelPosition |
labelPosition
ADT to encapsulate label positioning information
|
protected double |
labelSize
Cache of the total length of the branch label
|
protected java.awt.Font |
lastFont
Cache of the label font
|
protected java.util.List<mxPoint> |
lastPoints
Cache of the last set of guide points that this label was calculated for
|
protected java.lang.String |
lastValue
Cache of the label text
|
protected boolean |
rotationEnabled |
java.awt.font.GlyphVector[] |
rtlGlyphVectors
Cache of BIDI glyph vectors
|
protected mxCellState |
state
Cache the state associated with this shape
|
Constructor and Description |
---|
mxCurveLabelShape(mxCellState state,
mxCurve value) |
Modifier and Type | Method and Description |
---|---|
protected void |
calculationLabelPosition(java.util.Map<java.lang.String,java.lang.Object> style,
java.lang.String label)
Hook method to override how the label is positioned on the curve
|
mxRectangle |
getCenterVisiblePosition()
Returns the drawing bounds of the central indexed visible glyph
|
mxCurve |
getCurve() |
mxRectangle |
getLabelBounds() |
boolean |
getRotationEnabled() |
boolean |
intersectsRect(java.awt.Rectangle rect)
Returns whether or not the rectangle passed in hits any part of this
curve.
|
void |
paintShape(mxGraphics2DCanvas canvas,
java.lang.String text,
mxCellState state,
java.util.Map<java.lang.String,java.lang.Object> style) |
protected void |
postprocessGlyph(mxCurve curve,
java.lang.String label,
int j,
double currentPos)
Hook for sub-classers to perform additional processing on
each glyph
|
void |
setCurve(mxCurve curve) |
void |
setRotationEnabled(boolean value) |
mxRectangle |
updateLabelBounds(java.lang.String label,
java.util.Map<java.lang.String,java.lang.Object> style)
Updates the cached position and size of each glyph in the edge label.
|
protected java.lang.String lastValue
protected java.awt.Font lastFont
protected java.util.List<mxPoint> lastPoints
protected mxCurve curve
protected mxCellState state
protected mxCurveLabelShape.LabelGlyphCache[] labelGlyphs
protected double labelSize
protected mxRectangle labelBounds
protected mxCurveLabelShape.LabelPosition labelPosition
public static double LABEL_BUFFER
public static double CURVE_TEXT_STRETCH_FACTOR
public static mxRectangle INVALID_GLYPH_BOUNDS
public int centerVisibleIndex
public static java.lang.Object FONT_FRACTIONALMETRICS
public java.awt.font.GlyphVector[] rtlGlyphVectors
public static java.awt.font.FontRenderContext frc
protected boolean rotationEnabled
public mxCurveLabelShape(mxCellState state, mxCurve value)
public boolean getRotationEnabled()
public void setRotationEnabled(boolean value)
public void paintShape(mxGraphics2DCanvas canvas, java.lang.String text, mxCellState state, java.util.Map<java.lang.String,java.lang.Object> style)
paintShape
in interface mxITextShape
public mxRectangle updateLabelBounds(java.lang.String label, java.util.Map<java.lang.String,java.lang.Object> style)
label
- the entire string of the label.style
- the edge styleprotected void postprocessGlyph(mxCurve curve, java.lang.String label, int j, double currentPos)
curve
- The curve object holding the label curvelabel
- the text label of the curvej
- the index of the labelcurrentPos
- the distance along the label curve the glyph ispublic boolean intersectsRect(java.awt.Rectangle rect)
rect
- the rectangle to detect for a hitprotected void calculationLabelPosition(java.util.Map<java.lang.String,java.lang.Object> style, java.lang.String label)
style
- the style of the curvelabel
- the string label to be displayed on the curvepublic mxCurve getCurve()
public void setCurve(mxCurve curve)
curve
- the curve to setpublic mxRectangle getLabelBounds()
public mxRectangle getCenterVisiblePosition()
Copyright (c) 2010-2017 Gaudenz Alder, JGraph Ltd. All rights reserved.