JGraph X 1.4.1.0


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
protected  mxCurve curve
          Cache of the points between which drawing straight lines views as a curve
static FontRenderContext frc
          Shared FRC for font size calculations
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
           
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
 mxCurve getCurve()
           
 boolean getRotationEnabled()
           
 boolean intersectsRect(mxRectangle 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, 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


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,
                                int j,
                                double currentPos)
Hook for sub-classers to perform additional processing on each glyph

Parameters:
j - the index of the label
currentPos - the distance along the label curve the glyph is

intersectsRect

public boolean intersectsRect(mxRectangle 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

JGraph X 1.4.1.0


Copyright (c) 2010 Gaudenz Alder. All rights reserved.