Package org.pentaho.reporting.engine.classic.core.layout.model

Examples of org.pentaho.reporting.engine.classic.core.layout.model.BlockRenderBox


    assertSame(payload, it.next());
  }

  public void testEmpty()
  {
    BlockRenderBox box = new BlockRenderBox();

    RenderBoxNonAutoIterator it = new RenderBoxNonAutoIterator(box);
    assertFalse(it.hasNext());
  }
View Full Code Here


  protected void processPage(final LogicalPageBox rootBox)
  {
    final StrictBounds pageBounds = drawArea;
    startProcessing(rootBox.getWatermarkArea());

    final BlockRenderBox headerArea = rootBox.getHeaderArea();
    final BlockRenderBox footerArea = rootBox.getFooterArea();
    final BlockRenderBox repeatFooterArea = rootBox.getRepeatFooterArea();
    final StrictBounds headerBounds =
        new StrictBounds(headerArea.getX(), headerArea.getY(), headerArea.getWidth(), headerArea.getHeight());
    final StrictBounds footerBounds =
        new StrictBounds(footerArea.getX(), footerArea.getY(), footerArea.getWidth(), footerArea.getHeight());
    final StrictBounds repeatFooterBounds = new StrictBounds
        (repeatFooterArea.getX(), repeatFooterArea.getY(), repeatFooterArea.getWidth(), repeatFooterArea.getHeight());
    final StrictBounds contentBounds = new StrictBounds
        (rootBox.getX(), headerArea.getY() + headerArea.getHeight(),
            rootBox.getWidth(), footerArea.getY() - headerArea.getHeight());
    this.drawArea = headerBounds;
    startProcessing(headerArea);
View Full Code Here

        {
          if (processWatermark)
          {
            startProcessing(logicalPage.getWatermarkArea());
          }
          final BlockRenderBox headerArea = logicalPage.getHeaderArea();
          startProcessing(headerArea);
          headerProcessed = true;
        }

        processBoxChilds(logicalPage);
        if (iterativeUpdate == false)
        {
          final BlockRenderBox repeatFooterBox = logicalPage.getRepeatFooterArea();
          startProcessing(repeatFooterBox);

          final BlockRenderBox pageFooterBox = logicalPage.getFooterArea();
          startProcessing(pageFooterBox);
        }
      }
      finishBox(logicalPage);
    }
    else
    {
      // The page-header and footer area are not aligned/shifted within the logical pagebox.
      // All areas have their own coordinate system starting at (0,0). We apply a manual shift here
      // so that we dont have to modify the nodes (which invalidates the cache, and therefore is ugly)
      effectiveHeaderSize = 0;
      pageOffset = logicalPage.getPageOffset();
      pageEndPosition = (logicalPage.getPageEnd());
      if (startBox(logicalPage))
      {
        if (headerProcessed == false)
        {
          pageOffset = 0;
          contentOffset = 0;
          effectiveHeaderSize = 0;

          if (processWatermark)
          {
            final BlockRenderBox watermarkArea = logicalPage.getWatermarkArea();
            pageEndPosition = watermarkArea.getHeight();
            startProcessing(watermarkArea);
          }

          final BlockRenderBox headerArea = logicalPage.getHeaderArea();
          pageEndPosition = headerArea.getHeight();
          startProcessing(headerArea);
          contentOffset = headerArea.getHeight();
          headerProcessed = true;
        }

        pageOffset = logicalPage.getPageOffset();
        pageEndPosition = logicalPage.getPageEnd();
        effectiveHeaderSize = contentOffset;
        processBoxChilds(logicalPage);

        if (iterativeUpdate == false)
        {
          pageOffset = 0;
          final BlockRenderBox repeatFooterArea = logicalPage.getRepeatFooterArea();
          final long repeatFooterOffset = contentOffset + (logicalPage.getPageEnd() - logicalPage.getPageOffset());
          final long repeatFooterPageEnd = repeatFooterOffset + repeatFooterArea.getHeight();
          effectiveHeaderSize = repeatFooterOffset;
          pageEndPosition = repeatFooterPageEnd;
          startProcessing(repeatFooterArea);

          final BlockRenderBox footerArea = logicalPage.getFooterArea();
          final long footerPageEnd = repeatFooterPageEnd + footerArea.getHeight();
          effectiveHeaderSize = repeatFooterPageEnd;
          pageEndPosition = footerPageEnd;
          startProcessing(footerArea);
        }
      }
View Full Code Here

          }
          finishBlockBox(box);
        }
        else
        {
          final BlockRenderBox box = (BlockRenderBox) node;
          if (startBlockBox(box))
          {
            processBoxChilds(box);
          }
          finishBlockBox(box);
View Full Code Here

          sectionType = CellMarker.SectionType.TYPE_HEADER;
          if (isProcessWatermark())
          {
            startProcessing(logicalPage.getWatermarkArea());
          }
          final BlockRenderBox headerArea = logicalPage.getHeaderArea();
          startProcessing(headerArea);
          headerProcessed = true;
        }

        sectionType = CellMarker.SectionType.TYPE_NORMALFLOW;
        processBoxChilds(logicalPage);
        if (iterativeUpdate == false)
        {
          sectionType = CellMarker.SectionType.TYPE_REPEAT_FOOTER;
          final BlockRenderBox repeatFooterBox = logicalPage.getRepeatFooterArea();
          startProcessing(repeatFooterBox);

          sectionType = CellMarker.SectionType.TYPE_FOOTER;
          final BlockRenderBox pageFooterBox = logicalPage.getFooterArea();
          startProcessing(pageFooterBox);
        }
      }
      sectionType = CellMarker.SectionType.TYPE_INVALID;
      finishBox(logicalPage);
      //ModelPrinter.print(logicalPage);
    }
    else
    {
      // The page-header and footer area are not aligned/shifted within the logical pagebox.
      // All areas have their own coordinate system starting at (0,0). We apply a manual shift here
      // so that we dont have to modify the nodes (which invalidates the cache, and therefore is ugly)

      //Log.debug ("Content Processing " + pageOffset + " -> " + pageEnd);
      effectiveHeaderSize = 0;
      pageOffset = logicalPage.getPageOffset();
      pageEndPosition = (logicalPage.getPageEnd());
      sectionType = CellMarker.SectionType.TYPE_INVALID;
      if (startBox(logicalPage))
      {
        if (headerProcessed == false)
        {
          sectionType = CellMarker.SectionType.TYPE_HEADER;
          pageOffset = 0;
          contentOffset = 0;
          effectiveHeaderSize = 0;

          if (isProcessWatermark())
          {
            final BlockRenderBox watermarkArea = logicalPage.getWatermarkArea();
            pageEndPosition = watermarkArea.getHeight();
            startProcessing(watermarkArea);
          }
          final BlockRenderBox headerArea = logicalPage.getHeaderArea();
          pageEndPosition = headerArea.getHeight();
          startProcessing(headerArea);
          contentOffset = headerArea.getHeight();
          headerProcessed = true;
        }

        sectionType = CellMarker.SectionType.TYPE_NORMALFLOW;
        pageOffset = logicalPage.getPageOffset();
        pageEndPosition = logicalPage.getPageEnd();
        effectiveHeaderSize = contentOffset;
        processBoxChilds(logicalPage);

        if (iterativeUpdate == false)
        {
          pageOffset = 0;

          sectionType = CellMarker.SectionType.TYPE_REPEAT_FOOTER;
          final BlockRenderBox repeatFooterArea = logicalPage.getRepeatFooterArea();
          final long repeatFooterOffset = contentOffset + (logicalPage.getPageEnd() - logicalPage.getPageOffset());
          final long repeatFooterPageEnd = repeatFooterOffset + repeatFooterArea.getHeight();
          effectiveHeaderSize = repeatFooterOffset;
          pageEndPosition = repeatFooterPageEnd;
          startProcessing(repeatFooterArea);

          final BlockRenderBox footerArea = logicalPage.getFooterArea();
          sectionType = CellMarker.SectionType.TYPE_FOOTER;
          final long footerPageEnd = repeatFooterPageEnd + footerArea.getHeight();
          effectiveHeaderSize = repeatFooterPageEnd;
          pageEndPosition = footerPageEnd;
          startProcessing(footerArea);
        }
      }
View Full Code Here

  }

  public static long restrictPageAreaHeights(final LogicalPageBox pageBox,
                                             final long[] allCurrentBreaks)
  {
    final BlockRenderBox headerArea = pageBox.getHeaderArea();
    final long headerHeight = Math.min(headerArea.getHeight(), allCurrentBreaks[0]);
    headerArea.setHeight(headerHeight);

    final BlockRenderBox footerArea = pageBox.getFooterArea();
    final BlockRenderBox repeatFooterArea = pageBox.getRepeatFooterArea();
    if (allCurrentBreaks.length > 1)
    {
      final long lastBreakLocal = allCurrentBreaks[allCurrentBreaks.length - 1];
      final long lastPageHeight = lastBreakLocal - allCurrentBreaks[allCurrentBreaks.length - 2];
      final long footerHeight = Math.min(footerArea.getHeight(), lastPageHeight);
      footerArea.setHeight(footerHeight);

      final long repeatFooterHeight = Math.min(repeatFooterArea.getHeight(), lastPageHeight);
      repeatFooterArea.setHeight(repeatFooterHeight);
    }

    final long footerHeight = footerArea.getHeight();
    final long repeatFooterHeight = repeatFooterArea.getHeight();
    // Assertion: Make sure that we do not run into a infinite loop..
    return headerHeight + repeatFooterHeight + footerHeight;
  }
View Full Code Here

    this.collectAttributes = collectAttributes;
    this.retval = null;


    initFromPosition(gridX, gridY, gridWidth, gridHeight);
    final BlockRenderBox headerArea = logicalPageBox.getHeaderArea();
    if (unalignedPagebands == false)
    {
      contentShift = 0;
      startProcessing(headerArea);
      startProcessing(logicalPageBox);
      startProcessing(logicalPageBox.getRepeatFooterArea());
      startProcessing(logicalPageBox.getFooterArea());
      return retval;
    }

    switch (sectionType)
    {
      case TYPE_HEADER:
      {
        contentShift = 0;
        startProcessing(headerArea);
        return retval;
      }
      case TYPE_NORMALFLOW:
      {
        final BlockRenderBox contentArea = logicalPageBox.getContentArea();
        final long contentStart = headerArea.getHeight() + contentArea.getY();
        contentShift = contentStart - logicalPageBox.getPageOffset();
        startProcessing(contentArea);
        return retval;
      }
      case TYPE_REPEAT_FOOTER:
      {
        final BlockRenderBox contentArea = logicalPageBox.getContentArea();
        final long contentStart = headerArea.getHeight() + contentArea.getY();
        final BlockRenderBox footerArea = logicalPageBox.getRepeatFooterArea();
        contentShift = contentStart + contentArea.getHeight();
        startProcessing(footerArea);
        return retval;
      }
      case TYPE_FOOTER:
      {
        final BlockRenderBox contentArea = logicalPageBox.getContentArea();
        final long contentStart = headerArea.getHeight() + contentArea.getY();
        final BlockRenderBox repeatFooterArea = logicalPageBox.getRepeatFooterArea();
        final BlockRenderBox footerArea = logicalPageBox.getFooterArea();
        contentShift = contentStart + contentArea.getHeight() + repeatFooterArea.getHeight();
        startProcessing(footerArea);
        return retval;
      }
      case TYPE_INVALID:
View Full Code Here

    this.collectAttributes = collectAttributes;
    this.retval = null;


    initFromPosition(gridX, gridY, gridWidth, gridHeight);
    final BlockRenderBox headerArea = logicalPageBox.getHeaderArea();
    if (unalignedPagebands == false)
    {
      contentShift = 0;
    }
    else
    {
      switch (sectionType)
      {
        case TYPE_HEADER:
        {
          contentShift = 0;
          break;
        }
        case TYPE_NORMALFLOW:
        {
          final BlockRenderBox contentArea = logicalPageBox.getContentArea();
          final long contentStart = headerArea.getHeight() + contentArea.getY();
          contentShift = contentStart - logicalPageBox.getPageOffset();
          break;
        }
        case TYPE_REPEAT_FOOTER:
        {
          final BlockRenderBox contentArea = logicalPageBox.getContentArea();
          final long contentStart = headerArea.getHeight() + contentArea.getY();
          contentShift = contentStart + contentArea.getHeight();
          break;
        }
        case TYPE_FOOTER:
        {
          final BlockRenderBox contentArea = logicalPageBox.getContentArea();
          final long contentStart = headerArea.getHeight() + contentArea.getY();
          final BlockRenderBox repeatFooterArea = logicalPageBox.getRepeatFooterArea();
          contentShift = contentStart + contentArea.getHeight() + repeatFooterArea.getHeight();
          break;
        }
        case TYPE_INVALID:
          return null;
        default:
View Full Code Here

    final LayoutBuilderStrategy builderStrategy = new DefaultLayoutBuilderStrategy();
    final DefaultRenderNodeFactory renderNodeFactory = new DefaultRenderNodeFactory();
    renderNodeFactory.initialize(new DebugOutputProcessorMetaData());

    final RenderBox parentBox = new BlockRenderBox();
    builder.initialize(new DefaultProcessingContext(), parentBox, renderNodeFactory);
    builder.startSection();

    ReportFooter reportFooter = new ReportFooter();
    reportFooter.setComputedStyle(new SimpleStyleSheet(reportFooter.getDefaultStyleSheet()));
    builderStrategy.add(new DebugExpressionRuntime(), builder, reportFooter, new ArrayList<InlineSubreportMarker>());
    builderStrategy.add(new DebugExpressionRuntime(), builder, reportFooter, new ArrayList<InlineSubreportMarker>());
    builderStrategy.add(new DebugExpressionRuntime(), builder, reportFooter, new ArrayList<InlineSubreportMarker>());

    builder.endSection();

    assertEquals(3, countChilds((RenderBox) parentBox.getFirstChild()));
  }
View Full Code Here

    builder.setCollapseProgressMarker(true);

    final DefaultRenderNodeFactory renderNodeFactory = new DefaultRenderNodeFactory();
    renderNodeFactory.initialize(new DebugOutputProcessorMetaData());

    final RenderBox parentBox = new BlockRenderBox();
    builder.initialize(new DefaultProcessingContext(), parentBox, renderNodeFactory);
    builder.startSection();

    builder.addProgressMarkerBox();
    builder.addProgressMarkerBox();
    builder.addProgressMarkerBox();

    builder.endSection();

    assertEquals(1, countChilds((RenderBox) parentBox.getFirstChild()));
  }
View Full Code Here

TOP

Related Classes of org.pentaho.reporting.engine.classic.core.layout.model.BlockRenderBox

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.