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

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


        return;
      }

      if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_SPACER)
      {
        final SpacerRenderNode spacer = (SpacerRenderNode) node;
        final int count = Math.max(1, spacer.getSpaceCount());
        for (int i = 0; i < count; i++)
        {
          xmlWriter.writeText(" ");
        }
      }
View Full Code Here


        xmlWriter.writeCloseTag();

      }
      else if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_SPACER)
      {
        final SpacerRenderNode spacer = (SpacerRenderNode) node;
        final AttributeList attributeList = new AttributeList();
        attributeList.setAttribute(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "width",
            String.valueOf(StrictGeomUtility.toExternalValue(node.getWidth())));
        attributeList.setAttribute(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "height",
            String.valueOf(StrictGeomUtility.toExternalValue(node.getHeight())));
        attributeList.setAttribute(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "preserve",
            String.valueOf(spacer.isDiscardable() == false));
        xmlWriter.writeTag(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "spacer", attributeList, XmlWriter.CLOSE);
      }
    }
    catch (IOException e)
    {
View Full Code Here

    {
      // This is a forced linebreak, caused by a \n somewhere at the beginning of the text or after a whitespace.
      // If there is a preservable whitespace, the leading margin will be non-zero.
      if (leadingMargin > 0)
      {
        final SpacerRenderNode spacer = new SpacerRenderNode(leadingMargin, 0, true, spaceCount);
        words.add(spacer);
      }
      if (forceLinebreak)
      {
        final ExtendedBaselineInfo info = getBaselineInfo('\n');
///        TextUtility.createBaselineInfo('\n', fontMetrics, baselineInfo);
        final RenderableText text = new RenderableText(layoutContext, elementType, instanceId, attributeMap,
            info, DefaultRenderableTextFactory.EMPTY_GLYPHS, 0, 0, lastLanguage, true);
        words.add(text);
      }
      leadingMargin = 0;
      spaceCount = 0;
      return;
    }

    //final DefaultGlyph[] glyphs = (DefaultGlyph[]) glyphList.toArray(new DefaultGlyph[glyphList.size()]);
    if (leadingMargin > 0)// && words.isEmpty() == false)
    {
      final SpacerRenderNode spacer = new SpacerRenderNode(leadingMargin, 0, true, spaceCount);
      words.add(spacer);
    }

    // Compute a suitable text-metrics object for this text. We simply assume that the first character is representive
    // for all characters of the text chunk. This may be a wrong assumption in complex-text environments but will work
View Full Code Here

        manualBreak = true;
      }
    }
    else if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_SPACER)
    {
      final SpacerRenderNode spacer = (SpacerRenderNode) node;
      final int count = Math.max(1, spacer.getSpaceCount());
      for (int i = 0; i < count; i++)
      {
        this.text.append(' ');
      }
    }
View Full Code Here

        xmlWriter.writeCloseTag();

      }
      else if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_SPACER)
      {
        final SpacerRenderNode spacer = (SpacerRenderNode) node;
        final AttributeList attributeList = new AttributeList();
        attributeList.setAttribute(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "width",
            String.valueOf(StrictGeomUtility.toExternalValue(node.getWidth())));
        attributeList.setAttribute(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "height",
            String.valueOf(StrictGeomUtility.toExternalValue(node.getHeight())));
        attributeList.setAttribute(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "preserve",
            String.valueOf(spacer.isDiscardable() == false));
        xmlWriter.writeTag(XmlDocumentWriter.LAYOUT_OUTPUT_NAMESPACE, "spacer", attributeList, XmlWriter.CLOSE);
      }
    }
    catch (IOException e)
    {
View Full Code Here

              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
        {
          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 RenderNode box = nBox.derive(true);
          box.setVirtualNode(true);
          writeContext.addGeneratedChild(box);
          next = nBox.getNext();
        }
      }
      else
      {
        if (needToAddSpacing)
        {
          final RenderNode lastChild = writeContext.getLastChild();
          if (spaceWidth > 0 && lastChild != null &&
              (lastChild.getNodeType() != LayoutNodeTypes.TYPE_NODE_SPACER))
          {
            // docmark: Used zero as new height
            final SpacerRenderNode spacer = new SpacerRenderNode(spaceWidth, 0, false, 1);
            spacer.setVirtualNode(true);
            writeContext.addGeneratedChild(spacer);
          }
          needToAddSpacing = false;
        }
View Full Code Here

    parent.addChild(first);
    parent.addChild(second);
    parent.addChild(third);
    parent.addChild(fourth);

    final SpacerRenderNode replacementForFirst = new SpacerRenderNode();
    parent.replaceChild(first, replacementForFirst);
    assertNull(first.getNext());
    assertNull(first.getPrev());
    assertNull(first.getParent());

    final SpacerRenderNode replacementForSecond = new SpacerRenderNode();
    parent.replaceChild(second, replacementForSecond);
    assertNull(second.getNext());
    assertNull(second.getPrev());
    assertNull(second.getParent());

    final SpacerRenderNode replacementForThird = new SpacerRenderNode();
    parent.replaceChild(third, replacementForThird);
    assertNull(third.getNext());
    assertNull(third.getPrev());
    assertNull(third.getParent());

    final SpacerRenderNode replacementForFourth = new SpacerRenderNode();
    parent.replaceChild(fourth, replacementForFourth);
    assertNull(fourth.getNext());
    assertNull(fourth.getPrev());
    assertNull(fourth.getParent());
  }
View Full Code Here

    parent.addChild(first);
    parent.addChild(second);
    parent.addChild(third);
    parent.addChild(fourth);

    final SpacerRenderNode replacementForFirst = new SpacerRenderNode();
    parent.replaceChilds(first, new RenderNode[]{first, replacementForFirst});
    assertNull(first.getPrev());
    assertTrue(replacementForFirst.getNext() == second);
    assertTrue(second.getPrev() == replacementForFirst);

    final SpacerRenderNode replacementForSecond = new SpacerRenderNode();
    parent.replaceChilds(second, new RenderNode[]{second, replacementForSecond});

    assertTrue(replacementForFirst.getNext() == second);
    assertTrue(second.getPrev() == replacementForFirst);

    assertTrue(replacementForSecond.getNext() == third);
    assertTrue(replacementForSecond == third.getPrev());

    final SpacerRenderNode replacementForThird = new SpacerRenderNode();
    parent.replaceChilds(third, new RenderNode[]{ third, replacementForThird});

    final SpacerRenderNode replacementForFourth = new SpacerRenderNode();
    parent.replaceChilds(fourth, new RenderNode[]{fourth, replacementForFourth});
    assertNull(replacementForFourth.getNext());
  }
View Full Code Here

        xmlWriter.writeCloseTag();

      }
      else if (node instanceof SpacerRenderNode)
      {
        final SpacerRenderNode spacer = (SpacerRenderNode) node;
        final AttributeList attributeList = new AttributeList();
        attributeList.setAttribute(LAYOUT_OUTPUT_NAMESPACE, "width",
            String.valueOf(StrictGeomUtility.toExternalValue(node.getWidth())));
        attributeList.setAttribute(LAYOUT_OUTPUT_NAMESPACE, "height",
            String.valueOf(StrictGeomUtility.toExternalValue(node.getHeight())));
        attributeList.setAttribute(LAYOUT_OUTPUT_NAMESPACE, "preserve",
            String.valueOf(spacer.isDiscardable() == false));
        xmlWriter.writeTag(LAYOUT_OUTPUT_NAMESPACE, "spacer", attributeList, XmlWriter.CLOSE);
      }
    }
    catch (IOException e)
    {
View Full Code Here

  public void testSimpleCase()
  {
    final DefaultSequenceList list = new DefaultSequenceList();
    list.add(StartSequenceElement.INSTANCE, new InlineRenderBox());
    list.add(TextSequenceElement.INSTANCE, createText("Test"));
    list.add(SpacerSequenceElement.INSTANCE, new SpacerRenderNode());
    list.add(TextSequenceElement.INSTANCE, createText("Test"));
    list.add(EndSequenceElement.INSTANCE, new InlineRenderBox());

    final FastAlignmentProcessor p = new FastAlignmentProcessor();
    p.initialize(outputProcessorMetaData, list,
View Full Code Here

TOP

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

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.