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

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


  }

  public RenderBox getPrintableHeaderBox()
  {
    final RowRenderBox headerBox = (RowRenderBox) this.headerBox.derive(true);
    final RenderBox rowFooterTitleBox = (RenderBox) headerBox.findNodeById(rowFooterTitleBoxId);
    final RenderBox rowHeaderTitleBox = (RenderBox) headerBox.findNodeById(rowHeaderTitleBoxId);
    final RenderBox columnHeaderTitleBox = (RenderBox) headerBox.findNodeById(columnHeaderTitleBoxId);
    final RenderBox columnHeaderBox = (RenderBox) headerBox.findNodeById(columnHeaderBoxId);
    closeBoxAndChilds(rowFooterTitleBox, false);
    closeBoxAndChilds(rowHeaderTitleBox, false);
    closeBoxAndChilds(columnHeaderTitleBox, true);
    closeBoxAndChilds(columnHeaderBox, true);
    return headerBox;
View Full Code Here


  }

  private void closeBoxAndChilds(final RenderBox box, final boolean secondLevel)
  {
    box.close();
    RenderBox child = (RenderBox) box.getFirstChild();
    while (child != null)
    {
      if (secondLevel)
      {
        closeBoxAndChilds(child, false);
      }
      else
      {
        child.close();
      }
      child = (RenderBox) child.getNext();

    }
  }
View Full Code Here

    // Then add the header at the top - it starts at (0,0) and thus it is
    // ok to leave it unshifted.

    // finally, move the footer at the bottom (to the page's bottom, please!)
    final RenderBox footerArea = derived.getFooterArea();
    final long footerShift = contentEnd - footerArea.getY();
    BoxShifter.shiftBoxUnchecked(footerArea, footerShift);

    // the renderer is responsible for painting the page-header and footer ..

    derived.setPageOffset(0);
    derived.setPageEnd(contentEnd + footerArea.getY() + footerArea.getHeight());
    return derived;
  }
View Full Code Here

          {
            retval.setLeft(edge);
          }
          else if ((backgroundHint & BACKGROUND_RIGHT) == BACKGROUND_RIGHT)
          {
            final RenderBox nodeParent = node.getParent();
            if (nodeParent != null && (nodeParent.getX() + nodeParent.getWidth()) == (nodeX + nodeWidth))
            {
              retval.setRight(edge);
            }
          }
        }
        else
        {
          if ((backgroundHint & BACKGROUND_RIGHT) == BACKGROUND_RIGHT)
          {
            retval.setRight(edge);
          }
        }
      }
      else
      {
        if (line.getY1() == 0)
        {
          if ((backgroundHint & BACKGROUND_TOP) == BACKGROUND_TOP)
          {
            retval.setTop(edge);
          }
          else if ((backgroundHint & BACKGROUND_BOTTOM) == BACKGROUND_BOTTOM)
          {
            final RenderBox nodeParent = node.getParent();
            if (nodeParent != null && (nodeParent.getY() + nodeParent.getHeight()) == (nodeY + nodeHeight))
            {
              retval.setBottom(edge);
            }
          }
        }
View Full Code Here

    final Renderer renderer = outputFunction.getRenderer();
    final LayoutBuilder builder = renderer.createBufferedLayoutBuilder();
    final int gidx = event.getState().getCurrentGroupIndex();
    final CrosstabColumnGroup g = (CrosstabColumnGroup) event.getReport().getGroup(gidx);

    final RenderBox titleBox = preparedCrosstabLayout.getColumnHeaderTitleBox();
    final RenderBox titleColumnSlot = CrosstabLayoutUtil.getSlot(titleBox, columnSlotNumber);
    final RenderBox titleSlot = CrosstabLayoutUtil.getSlot(titleColumnSlot, slotNumber);
    titleSlot.clear();

    builder.startSection(titleSlot, true);
    builder.add(titleSlot, g.getTitleHeader(), outputFunction.getRuntime(), event.getState().getProcessKey());
    outputFunction.addSubReportMarkers(builder.endSection(titleSlot, titleSlot));

    final RenderBox headerBox = preparedCrosstabLayout.getColumnHeaderBox();
    final RenderBox headerColumnSlot = CrosstabLayoutUtil.getSlot(headerBox, columnSlotNumber);
    final RenderBox headerSlot = CrosstabLayoutUtil.getSlot(headerColumnSlot, slotNumber);
    headerSlot.clear();

    builder.startSection(headerSlot, true);
    builder.add(headerSlot, g.getHeader(), outputFunction.getRuntime(), event.getState().getProcessKey());
    outputFunction.addSubReportMarkers(builder.endSection(headerSlot, headerSlot));
View Full Code Here

    final Renderer renderer = outputFunction.getRenderer();
    final LayoutBuilder builder = renderer.createBufferedLayoutBuilder();
    final ItemBand g = event.getReport().getItemBand();
    final int columnSlotNumber = event.getState().getCurrentDataItem() - beginOfGroup;

    final RenderBox dataBox = preparedCrosstabLayout.getCellDataBox();
    final RenderBox dataSlot = CrosstabLayoutUtil.getSlot(dataBox, columnSlotNumber);
    dataSlot.clear();

    builder.startSection(dataSlot, true);
    builder.add(dataSlot, g, outputFunction.getRuntime(), event.getState().getProcessKey());
    outputFunction.addSubReportMarkers(builder.endSection(dataSlot, dataSlot));
  }
View Full Code Here

  {
    BoxAlignContext alignContext = new BoxAlignContext(box);
    final FastStack contextStack = new FastStack(50);
    final FastStack alignContextStack = new FastStack(50);
    RenderNode next = box.getFirstChild();
    RenderBox context = box;

    while (next != null)
    {
      // process next
      if ((next.getNodeType() & LayoutNodeTypes.MASK_BOX_INLINE) == LayoutNodeTypes.MASK_BOX_INLINE)
      {
        final RenderBox nBox = (RenderBox) next;
        final RenderNode firstChild = nBox.getFirstChild();
        if (firstChild != null)
        {
          // Open a non-empty box context
          contextStack.push(context);
          alignContextStack.push(alignContext);

          next = firstChild;

          final BoxAlignContext childBoxContext = new BoxAlignContext(nBox);
          alignContext.addChild(childBoxContext);
          context = nBox;
          alignContext = childBoxContext;
        }
        else
        {
          // Process an empty box.
          final BoxAlignContext childBoxContext = new BoxAlignContext(nBox);
          alignContext.addChild(childBoxContext);
          next = nBox.getNext();
        }
      }
      else
      {
        // Process an ordinary node.
View Full Code Here

  {
    final SequenceList sequenceList = new SequenceList();
    sequenceList.add(StartSequenceElement.INSTANCE, box);

    RenderNode next = box.getFirstChild();
    RenderBox context = box;

    final FastStack contextStack = new FastStack(50);
    boolean containsContent = false;

    while (next != null)
    {
      // process next
      if ((next.getNodeType() & LayoutNodeTypes.MASK_BOX_INLINE) == LayoutNodeTypes.MASK_BOX_INLINE)
      {
        final RenderBox nBox = (RenderBox) next;
        final RenderNode firstChild = nBox.getFirstChild();
        if (firstChild != null)
        {
          // Open a non-empty box context
          contextStack.push(context);
          next = firstChild;

          sequenceList.add(StartSequenceElement.INSTANCE, nBox);
          context = nBox;
        }
        else
        {
          // Process an empty box.
          sequenceList.add(StartSequenceElement.INSTANCE, nBox);
          sequenceList.add(EndSequenceElement.INSTANCE, nBox);
          next = nBox.getNext();
        }
      }
      else
      {
        // Process an ordinary node.
View Full Code Here

    RenderNode next = nextBox.getFirstChild();
    MergeContext context = new MergeContext(lineBox, nextBox);
    while (next != null)
    {
      // process next
      final RenderBox writeContext = context.getWriteContext();
      final StaticBoxLayoutProperties staticBoxLayoutProperties = writeContext.getStaticBoxLayoutProperties();
      long spaceWidth = staticBoxLayoutProperties.getSpaceWidth();
      if (spaceWidth == 0)
      {
        // Space has not been computed yet.
        final FontMetrics fontMetrics = metaData.getFontMetrics(writeContext.getStyleSheet());
        spaceWidth = fontMetrics.getCharWidth(' ');
        staticBoxLayoutProperties.setSpaceWidth(spaceWidth);
      }

      if ((next.getNodeType() & LayoutNodeTypes.MASK_BOX) == LayoutNodeTypes.MASK_BOX)
      {
        final RenderBox nBox = (RenderBox) next;
        final RenderNode firstChild = nBox.getFirstChild();
        if (firstChild != null)
        {
          contextStack.push(context);
          next = firstChild;

          final RenderNode writeContextLastChild = writeContext.getLastChild();
          if ((writeContextLastChild.getNodeType() & LayoutNodeTypes.MASK_BOX) == LayoutNodeTypes.MASK_BOX)
          {
            if (writeContextLastChild.getInstanceId() == nBox.getInstanceId())
            {
              context = new MergeContext((RenderBox) writeContextLastChild, nBox);
            }
            else
            {
              if (needToAddSpacing)
              {
                if (spaceWidth > 0)
                {
                  // docmark: Used zero as new height
                  final SpacerRenderNode spacer = new SpacerRenderNode(spaceWidth, 0, false, 1);
                  spacer.setVirtualNode(true);
                  writeContext.addGeneratedChild(spacer);
                }
                needToAddSpacing = false;
              }
              final RenderBox newWriter = (RenderBox) nBox.derive(false);
              newWriter.setVirtualNode(true);
              writeContext.addGeneratedChild(newWriter);
              context = new MergeContext(newWriter, nBox);
            }
          }
          else
          {
            if (needToAddSpacing)
            {
              if (spaceWidth > 0)
              {
                // docmark: Used zero as new height
                final SpacerRenderNode spacer = new SpacerRenderNode(spaceWidth, 0, false, 1);
                spacer.setVirtualNode(true);
                writeContext.addGeneratedChild(spacer);
              }
              needToAddSpacing = false;
            }

            final RenderBox newWriter = (RenderBox) nBox.derive(false);
            newWriter.setVirtualNode(true);
            writeContext.addGeneratedChild(newWriter);
            context = new MergeContext(newWriter, nBox);
          }
        }
        else
View Full Code Here

    tester.addMajorBreak(30000, 0);
  }

  private RenderBox createBox(final long y, final long height)
  {
    final RenderBox box = new BlockRenderBox();
    box.setY(y);
    box.setHeight(height);
    return box;
  }
View Full Code Here

TOP

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

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.