Class mxCurveLabelShape

java.lang.Object
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
  • Field Details

    • 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 Details

  • Method Details

    • 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