Class ListItemRenderer

    • Field Detail

      • symbolRenderer

        protected IRenderer symbolRenderer
      • symbolAreaWidth

        protected float symbolAreaWidth
      • symbolAddedInside

        private boolean symbolAddedInside
    • Constructor Detail

      • ListItemRenderer

        public ListItemRenderer​(ListItem modelElement)
        Creates a ListItemRenderer from its corresponding layout object.
        Parameters:
        modelElement - the ListItem which this object should manage
    • Method Detail

      • addSymbolRenderer

        public void addSymbolRenderer​(IRenderer symbolRenderer,
                                      float symbolAreaWidth)
      • layout

        public LayoutResult layout​(LayoutContext layoutContext)
        Description copied from class: BlockRenderer
        This method simulates positioning of the renderer, including all of its children, and returns the LayoutResult, representing the layout result, including occupied area, status, i.e. if there was enough place to fit the renderer subtree, etc. LayoutResult can be extended to return custom layout results for custom elements, e.g. TextRenderer uses TextLayoutResult as its result. This method can be called standalone to learn how much area the renderer subtree needs, or can be called before IRenderer.draw(DrawContext), to prepare the renderer to be flushed to the output stream.
        Specified by:
        layout in interface IRenderer
        Overrides:
        layout in class BlockRenderer
        Parameters:
        layoutContext - the description of layout area and any other additional information
        Returns:
        result of the layout process
      • draw

        public void draw​(DrawContext drawContext)
        Description copied from class: AbstractRenderer
        Flushes the renderer subtree contents, i.e. draws itself on canvas, adds necessary objects to the PdfDocument etc.
        Specified by:
        draw in interface IRenderer
        Overrides:
        draw in class BlockRenderer
        Parameters:
        drawContext - contains the PdfDocument to which the renderer subtree if flushed, the PdfCanvas on which the renderer subtree is drawn and other additional parameters needed to perform drawing
      • getNextRenderer

        public IRenderer getNextRenderer()
        Description copied from class: DivRenderer
        Gets a new instance of this class to be used as a next renderer, after this renderer is used, if BlockRenderer.layout(LayoutContext) is called more than once.

        If a renderer overflows to the next area, iText uses this method to create a renderer for the overflow part. So if one wants to extend DivRenderer, one should override this method: otherwise the default method will be used and thus the default rather than the custom renderer will be created.

        Specified by:
        getNextRenderer in interface IRenderer
        Overrides:
        getNextRenderer in class DivRenderer
        Returns:
        new renderer instance
      • applyListSymbolPosition

        private void applyListSymbolPosition()
      • injectSymbolRendererIntoParagraphRenderer

        private void injectSymbolRendererIntoParagraphRenderer​(ParagraphRenderer paragraphRenderer)
      • renderSymbolInNeutralParagraph

        private IRenderer renderSymbolInNeutralParagraph()
      • isListSymbolEmpty

        private boolean isListSymbolEmpty​(IRenderer listSymbolRenderer)
      • calculateAscenderDescender

        private float[] calculateAscenderDescender()