Class RootRenderer

    • Field Detail

      • immediateFlush

        protected boolean immediateFlush
      • waitingDrawingElements

        protected java.util.List<IRenderer> waitingDrawingElements
      • floatRendererAreas

        java.util.List<Rectangle> floatRendererAreas
      • keepWithNextHangingRenderer

        private IRenderer keepWithNextHangingRenderer
      • keepWithNextHangingRendererLayoutResult

        private LayoutResult keepWithNextHangingRendererLayoutResult
      • initialCurrentArea

        private LayoutArea initialCurrentArea
      • waitingNextPageRenderers

        private java.util.List<IRenderer> waitingNextPageRenderers
      • floatOverflowedCompletely

        private boolean floatOverflowedCompletely
    • Constructor Detail

      • RootRenderer

        public RootRenderer()
    • Method Detail

      • close

        public void close()
        This method correctly closes the RootRenderer instance. There might be hanging elements, like in case of Property.KEEP_WITH_NEXT is set to true and when no consequent element has been added. This method addresses such situations.
      • layout

        public LayoutResult layout​(LayoutContext layoutContext)
        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.
        Parameters:
        layoutContext - the description of layout area and any other additional information
        Returns:
        result of the layout process
      • getCurrentArea

        public LayoutArea getCurrentArea()
      • flushSingleRenderer

        protected abstract void flushSingleRenderer​(IRenderer resultRenderer)
      • shrinkCurrentAreaAndProcessRenderer

        protected void shrinkCurrentAreaAndProcessRenderer​(IRenderer renderer,
                                                           java.util.List<IRenderer> resultRenderers,
                                                           LayoutResult result)
      • flushWaitingDrawingElements

        protected void flushWaitingDrawingElements()
      • flushWaitingDrawingElements

        void flushWaitingDrawingElements​(boolean force)
      • linkRenderToDocument

        final void linkRenderToDocument​(IRenderer renderer,
                                        PdfDocument pdfDocument)
      • processRenderer

        private void processRenderer​(IRenderer renderer,
                                     java.util.List<IRenderer> resultRenderers)
      • processWaitingKeepWithNextElement

        private void processWaitingKeepWithNextElement​(IRenderer renderer)
      • updateCurrentAndInitialArea

        private void updateCurrentAndInitialArea​(LayoutResult overflowResult)
      • addAllWaitingNextPageRenderers

        private void addAllWaitingNextPageRenderers()
      • addWaitingNextPageRenderers

        private void addWaitingNextPageRenderers()
      • updateForcedPlacement

        private boolean updateForcedPlacement​(IRenderer currentRenderer,
                                              IRenderer overflowRenderer)