Class BorderPainter

java.lang.Object
org.apache.fop.render.intermediate.BorderPainter

public class BorderPainter extends Object
This is an abstract base class for handling border painting.
  • Field Details

    • TOP

      protected static final int TOP
      Convention index of before top
      See Also:
    • BOTTOM

      protected static final int BOTTOM
      Convention index of bottom border
      See Also:
    • LEFT

      protected static final int LEFT
      Convention index of left border
      See Also:
    • TOP_LEFT

      protected static final int TOP_LEFT
      Convention index of top-left border corners
      See Also:
    • TOP_RIGHT

      protected static final int TOP_RIGHT
      Convention index of top-right-end border corners
      See Also:
    • BOTTOM_RIGHT

      protected static final int BOTTOM_RIGHT
      Convention index of bottom-right border corners
      See Also:
    • BOTTOM_LEFT

      protected static final int BOTTOM_LEFT
      Convention index of bottom-left border corners
      See Also:
    • DASHED_BORDER_SPACE_RATIO

      public static final float DASHED_BORDER_SPACE_RATIO
      The ratio between a solid dash and the white-space in a dashed-border
      See Also:
    • DASHED_BORDER_LENGTH_FACTOR

      protected static final float DASHED_BORDER_LENGTH_FACTOR
      The length of the dash as a factor of the border width i.e. 2 -> dashWidth = 2*borderWidth
      See Also:
  • Constructor Details

  • Method Details

    • drawBorders

      public void drawBorders(Rectangle borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight, Color innerBackgroundColor) throws IFException
      Draws borders.
      Parameters:
      borderRect - the border rectangle
      bpsTop - the border specification on the top side
      bpsBottom - the border specification on the bottom side
      bpsLeft - the border specification on the left side
      bpsRight - the border specification on the end side
      innerBackgroundColor - the inner background color
      Throws:
      IFException - if an error occurs while drawing the borders
    • drawRectangularBorders

      protected void drawRectangularBorders(Rectangle borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight) throws IOException
      TODO merge with drawRoundedBorders()?
      Parameters:
      borderRect - the border rectangle
      bpsTop - the border specification on the top side
      bpsBottom - the border specification on the bottom side
      bpsLeft - the border specification on the left side
      bpsRight - the border specification on the end side
      Throws:
      IOException
    • dashWidthCalculator

      public static float dashWidthCalculator(float borderLength, float borderWidth)
      This method calculates the length of the "dash" in a dashed border. The dash satisfies the condition that corners start on a dash and end with a dash (rather than ending with a white space).
      Parameters:
      borderLength - The length of the border.
      borderWidth - The width/thickness of the border.
      Returns:
      returns the length of the dash such that it fits the criteria above.
    • drawRoundedBorders

      protected void drawRoundedBorders(Rectangle borderRect, BorderProps beforeBorderProps, BorderProps afterBorderProps, BorderProps startBorderProps, BorderProps endBorderProps) throws IOException
      TODO merge with drawRectangularBorders?
      Parameters:
      borderRect - the border rectangle
      Throws:
      IOException - on io exception
    • clipBackground

      public void clipBackground(Rectangle rect, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd) throws IOException
      Clip the background to the inner border
      Parameters:
      rect - clipping rectangle
      bpsBefore - before border
      bpsAfter - after border
      bpsStart - start border
      bpsEnd - end border
      Throws:
      IOException - if an I/O error occurs
    • calculateCornerCorrectionFactor

      protected static double calculateCornerCorrectionFactor(int width, int height, BorderProps before, BorderProps after, BorderProps start, BorderProps end)
      Calculate the correction factor to handle over-sized elliptic corner radii.
      Parameters:
      width - the border width
      height - the border height
      before - the before border properties
      after - the after border properties
      start - the start border properties
      end - the end border properties
    • calculateCornerScaleCorrection

      protected static double calculateCornerScaleCorrection(int width, int height, org.apache.fop.render.intermediate.BorderPainter.BorderSegment before, org.apache.fop.render.intermediate.BorderPainter.BorderSegment after, org.apache.fop.render.intermediate.BorderPainter.BorderSegment start, org.apache.fop.render.intermediate.BorderPainter.BorderSegment end)
      Calculate the scaling factor to handle over-sized elliptic corner radii.
      Parameters:
      width - the border width
      height - the border height
      before - the before border segment
      after - the after border segment
      start - the start border segment
      end - the end border segment