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

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


    final int sectionType = section.getType();
    switch (sectionType)
    {
      case Renderer.TYPE_NORMALFLOW:
      {
        final RenderNode firstChild = sectionBox.getFirstChild();
        if (firstChild == null)
        {
          // the whole section is empty; therefore we can ignore it.
          sectionBox.makeReusable();
          sectionBoxes[sectionType] = sectionBox;
          return normalFlowLayoutBuilder.endSection(getPageBox(), sectionBox);
        }

        final int type = firstChild.getNodeType();
        if (sectionBox.getLastChild() == firstChild &&
            type == LayoutNodeTypes.TYPE_BOX_INLINE_PROGRESS_MARKER ||
            type == LayoutNodeTypes.TYPE_BOX_PROGRESS_MARKER)
        {
          if (mergeSection(sectionBox))
View Full Code Here


      if (pageBox != null)
      {
        renderer.pageBox = (LogicalPageBox) pageBox.derive(true);
        if (section != null)
        {
          final RenderNode nodeById = renderer.pageBox.findNodeById(section.getSectionBox().getInstanceId());
          renderer.section = new Section(section.getType(), (SectionRenderBox) nodeById);
        }
      }

      final int stackSize = groupStack.size();
View Full Code Here

      return groupBox;
    }

    public boolean mergeSection(final ReportStateKey stateKey)
    {
      final RenderNode lastSection = addBox.getLastChild();
      if (lastSection == null)
      {
        return false;
      }
      if ((lastSection.getNodeType() & LayoutNodeTypes.MASK_BOX) != LayoutNodeTypes.MASK_BOX)
      {
        return false;
      }

      final RenderBox lastSectionBox = (RenderBox) lastSection;
      final RenderNode maybeMarker = lastSectionBox.getLastChild();
      if (maybeMarker == null)
      {
        return false;
      }
      final int nodeType = maybeMarker.getNodeType();
      if (nodeType == LayoutNodeTypes.TYPE_BOX_INLINE_PROGRESS_MARKER)
      {
        final InlineProgressMarkerRenderBox markerRenderBox = (InlineProgressMarkerRenderBox) maybeMarker;
        markerRenderBox.setStateKey(stateKey);
        return true;
View Full Code Here

    }
  }

  private static void printChilds(final RenderBox box, final int level)
  {
    RenderNode childs = box.getFirstChild();
    while (childs != null)
    {
      if (childs instanceof RenderBox)
      {
        printBox((RenderBox) childs, level + 1);
      }
      else if (childs instanceof RenderableText)
      {
        printText((RenderableText) childs, level + 1);
      }
      else
      {
        printNode(childs, level + 1);
      }
      childs = childs.getNext();
    }
  }
View Full Code Here

  }

  private static void printChilds(final Writer writer, final RenderBox box, final int level)
      throws Exception
  {
    RenderNode childs = box.getFirstChild();
    while (childs != null)
    {
      if (childs instanceof RenderBox)
      {
        printBox(writer, (RenderBox) childs, level + 1);
      }
      else if (childs instanceof RenderableText)
      {
        printText(writer, (RenderableText) childs, level + 1);
      }
      else
      {
        printNode(writer, childs, level + 1);
      }
      childs = childs.getNext();
    }
  }
View Full Code Here

    slots.clear();
    slotCounter = 0;
    // check what slots are filled and update the list
    if (reverseOrder)
    {
      final RenderNode firstChild = pageArea.getFirstChild();
      if (firstChild instanceof RenderBox)
      {
        if (logger.isDebugEnabled())
        {
          logger.debug("Start Section: " + slotCounter + " " + slots.size());
        }
        final RenderBox slottedContent = (RenderBox) firstChild;
        RenderNode box = slottedContent.getFirstChild();
        while (box != null)
        {
          if (box.getStyleSheet().getBooleanStyleProperty(BandStyleKeys.STICKY))
          {
            if (logger.isDebugEnabled())
            {
              logger.debug("Added Slot[]: " + box);
            }
            slots.add(box);
          }
          box = box.getNext();
        }
      }
      else
      {
        if (logger.isDebugEnabled())
        {
          logger.debug("Added Reverse Section: " + slotCounter + " " + slots.size() + " " + firstChild);
        }
      }
    }
    else
    {
      final RenderNode lastChild = pageArea.getLastChild();
      if (lastChild instanceof RenderBox)
      {
        final RenderBox slottedContent = (RenderBox) lastChild;
        RenderNode box = slottedContent.getLastChild();
        while (box != null)
        {
          if (box.getStyleSheet().getBooleanStyleProperty(BandStyleKeys.STICKY))
          {
            slots.add(0, box);
          }
          box = box.getPrev();
        }
      }

    }
View Full Code Here

        {
          final RenderBox newSectionBox = (RenderBox) sectionBox.derive(false);
          // first insert the saved ones ...
          for (int i = slots.size() - slotCounter - 1; i >= 0; i--)
          {
            final RenderNode node = slots.get(i);
            final RenderNode derived = node.derive(true);

            if (logger.isDebugEnabled())
            {
              logger.debug("Rescued[" + i + "]: " + slots.get(i));
            }
            newSectionBox.addGeneratedChild(derived);
          }
          // and then add the newly generated ones ..
          RenderNode child = sectionBox.getFirstChild();
          while (child != null)
          {
            final RenderNode next = child.getNext();
            sectionBox.remove(child);
            newSectionBox.addGeneratedChild(child);
            if (logger.isDebugEnabled())
            {
              logger.debug("New[" + "]: " + child);
            }
            child = next;
          }

          sectionBox = newSectionBox;
        }
      }
      else
      {
        for (int i = slotCounter; i < slots.size(); i++)
        {
          final RenderNode node = slots.get(i);
          sectionBox.addGeneratedChild(node.derive(true));
        }
      }
    }

    if (logger.isDebugEnabled())
View Full Code Here

    {
      final RenderNode[] nodes = (RenderNode[]) text.clone();
      final int nodeCount = nodes.length;
      for (int i = 0; i < nodeCount; i++)
      {
        final RenderNode node = nodes[i];
        nodes[i] = node.derive(true);
      }
      return nodes;
    }
View Full Code Here

    {
      final RenderNode[] nodes = (RenderNode[]) finish.clone();
      final int nodeCount = nodes.length;
      for (int i = 0; i < nodeCount; i++)
      {
        final RenderNode node = nodes[i];
        nodes[i] = node.derive(true);
      }
      return nodes;
    }
View Full Code Here

    }

    final LinkedHashSet<Element> elements = new LinkedHashSet<Element>(nodes.length);
    for (int i = 0; i < nodes.length; i++)
    {
      final RenderNode node = nodes[i];
      final Element reportElement = elementsById.get(node.getInstanceId());
      if (reportElement != null)
      {
        elements.add(reportElement);
      }
    }
View Full Code Here

TOP

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

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.