mxGraph 2.3.0.1


com.mxgraph.shape
Class mxCurveLabelShape

java.lang.Object
  extended by com.mxgraph.shape.mxCurveLabelShape
All Implemented Interfaces:
mxITextShape

public class mxCurveLabelShape
extends Object
implements mxITextShape

Draws the edge label along a curve derived from the curve describing the edge's path


Nested Class Summary
 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
 
Field Summary
 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 Object FONT_FRACTIONALMETRICS
          Specifies if image aspect should be preserved in drawImage.
static 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  Font lastFont
          Cache of the label font
protected  List<mxPoint> lastPoints
          Cache of the last set of guide points that this label was calculated for
protected  String lastValue
          Cache of the label text
protected  boolean rotationEnabled
           
 GlyphVector[] rtlGlyphVectors
          Cache of BIDI glyph vectors
protected  mxCellState state
          Cache the state associated with this shape
 
Constructor Summary
mxCurveLabelShape(mxCellState state, mxCurve value)
           
 
Method Summary
protected  void calculationLabelPosition(Map<String,Object> style, 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(Rectangle rect)
          Returns whether or not the rectangle passed in hits any part of this curve.
 void paintShape(mxGraphics2DCanvas canvas, String text, mxCellState state, Map<String,Object> style)
           
protected  void postprocessGlyph(mxCurve curve, 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(String label, Map<String,Object> style)
          Updates the cached position and size of each glyph in the edge label.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lastValue

protected String lastValue
Cache of the label text


lastFont

protected Font lastFont
Cache of the label font


lastPoints

protected List<mxPoint> lastPoints
Cache of the last set of guide points that this label was calculated for


curve

protected mxCurve curve
Cache of the points between which drawing straight lines views as a curve


state

protected mxCellState state
Cache the state associated with this shape


labelGlyphs

protected mxCurveLabelShape.LabelGlyphCache[] labelGlyphs
Cache of information describing characteristics relating to drawing each glyph of this label


labelSize

protected double labelSize
Cache of the total length of the branch label


labelBounds

protected mxRectangle labelBounds
Cache of the bounds of the label


labelPosition

protected mxCurveLabelShape.LabelPosition labelPosition
ADT to encapsulate label positioning information


LABEL_BUFFER

public static double LABEL_BUFFER
Buffer at both ends of the label


CURVE_TEXT_STRETCH_FACTOR

public static double CURVE_TEXT_STRETCH_FACTOR
Factor by which text on the inside of curve is stretched


INVALID_GLYPH_BOUNDS

public static mxRectangle INVALID_GLYPH_BOUNDS
Indicates that a glyph does not have valid drawing bounds, usually because it is not visible


centerVisibleIndex

public int centerVisibleIndex
The index of the central glyph of the label that is visible


FONT_FRACTIONALMETRICS

public static Object FONT_FRACTIONALMETRICS
Specifies if image aspect should be preserved in drawImage. Default is true.


rtlGlyphVectors

public GlyphVector[] rtlGlyphVectors
Cache of BIDI glyph vectors


frc

public static FontRenderContext frc
Shared FRC for font size calculations


rotationEnabled

protected boolean rotationEnabled
Constructor Detail

mxCurveLabelShape

public mxCurveLabelShape(mxCellState state,
                         mxCurve value)
Method Detail

getRotationEnabled

public boolean getRotationEnabled()

setRotationEnabled

public void setRotationEnabled(boolean value)

paintShape

public void paintShape(mxGraphics2DCanvas canvas,
                       String text,
                       mxCellState state,
                       Map<String,Object> style)
Specified by:
paintShape in interface mxITextShape

updateLabelBounds

public mxRectangle updateLabelBounds(String label,
                                     Map<String,Object> style)
Updates the cached position and size of each glyph in the edge label.

Parameters:
label - the entire string of the label.
style - the edge style

postprocessGlyph

protected void postprocessGlyph(mxCurve curve,
                                String label,
                                int j,
                                double currentPos)
Hook for sub-classers to perform additional processing on each glyph

Parameters:
curve - The curve object holding the label curve
label - the text label of the curve
j - the index of the label
currentPos - the distance along the label curve the glyph is

intersectsRect

public boolean intersectsRect(Rectangle rect)
Returns whether or not the rectangle passed in hits any part of this curve.

Parameters:
rect - the rectangle to detect for a hit
Returns:
whether or not the rectangle hits this curve

calculationLabelPosition

protected void calculationLabelPosition(Map<String,Object> style,
                                        String label)
Hook method to override how the label is positioned on the curve

Parameters:
style - the style of the curve
label - the string label to be displayed on the curve

getCurve

public mxCurve getCurve()
Returns:
the curve

setCurve

public void setCurve(mxCurve curve)
Parameters:
curve - the curve to set

getLabelBounds

public mxRectangle getLabelBounds()

getCenterVisiblePosition

public mxRectangle getCenterVisiblePosition()
Returns the drawing bounds of the central indexed visible glyph

Returns:
the centerVisibleIndex

mxGraph 2.3.0.1


Copyright (c) 2010 Gaudenz Alder, David Benson. All rights reserved.