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

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


    while (lineChild != null)
    {
      if (lineChild instanceof RenderableText)
      {
        RenderableText text = (RenderableText) lineChild;
        b.append(text.getRawText());
      }
      else if (lineChild instanceof SpacerRenderNode)
      {
        SpacerRenderNode spacer = (SpacerRenderNode) lineChild;
        for (int i = 0; i < spacer.getSpaceCount(); i+= 1)
View Full Code Here


    }

    final int nodeType = node.getNodeType();
    if (nodeType == LayoutNodeTypes.TYPE_NODE_TEXT)
    {
      final RenderableText textNode = (RenderableText) node;
      processStandardText(textNode);
      if (textNode.isForceLinebreak())
      {
        manualBreak = true;
      }
    }
    else if (nodeType == LayoutNodeTypes.TYPE_NODE_COMPLEX_TEXT)
    {
      final RenderableComplexText textNode = (RenderableComplexText) node;
      if (processComplexText(textNode))
      {
        return;
      }
      if (textNode.isForceLinebreak())
      {
        manualBreak = true;
      }
    }
    else if (nodeType == LayoutNodeTypes.TYPE_NODE_SPACER)
View Full Code Here

      final int nodeType = node.getNodeType();
      if (clipOnWordBoundary == false &&
          nodeType == LayoutNodeTypes.TYPE_NODE_TEXT)
      {
        final RenderableText text = (RenderableText) node;
        final long ellipseSize = extractEllipseSize(node);
        final long x1 = text.getX();
        final long effectiveAreaX2 = (contentAreaX2 - ellipseSize);

        if (x1 < contentAreaX2)
        {
          // The text node that is printed will overlap with the ellipse we need to print.
          drawText(text, effectiveAreaX2);
        }
      }
      else if (clipOnWordBoundary == false &&
          nodeType == LayoutNodeTypes.TYPE_NODE_COMPLEX_TEXT)
      {
        final RenderableComplexText text = (RenderableComplexText) node;
        final long x1 = text.getX();

        if (x1 < contentAreaX2)
        {
          // The text node that is printed will overlap with the ellipse we need to print.
          drawComplexText(text);
View Full Code Here

      {
        if (ellipseDrawn == false)
        {
          if (isClipOnWordBoundary() == false && type == LayoutNodeTypes.TYPE_NODE_TEXT)
          {
            final RenderableText text = (RenderableText) node;
            final long ellipseSize = extractEllipseSize(node);
            final long x1 = text.getX();
            final long effectiveAreaX2 = (contentAreaX2 - ellipseSize);

            if (x1 < contentAreaX2)
            {
              // The text node that is printed will overlap with the ellipse we need to print.
              drawText(text, effectiveAreaX2);
            }
          }
          else if (isClipOnWordBoundary() == false && type == LayoutNodeTypes.TYPE_NODE_COMPLEX_TEXT)
          {
            final RenderableComplexText text = (RenderableComplexText) node;
            //final long ellipseSize = extractEllipseSize(node);
            final long x1 = text.getX();
            //final long effectiveAreaX2 = (contentAreaX2 - ellipseSize);

            if (x1 < contentAreaX2)
            {
              // The text node that is printed will overlap with the ellipse we need to print.
              final Graphics2D g2;
              if (getTextSpec() == null)
              {
                g2 = (Graphics2D) getGraphics().create();
                final StyleSheet layoutContext = text.getStyleSheet();
                configureGraphics(layoutContext, g2);
                g2.setStroke(LogicalPageDrawable.DEFAULT_STROKE);

                if (RenderUtility.isFontSmooth(layoutContext, metaData))
                {
                  g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
                }
                else
                {
                  g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
                }
              }
              else
              {
                g2 = getTextSpec().getGraphics();
              }

              drawComplexText(text, g2);
            }
          }

          ellipseDrawn = true;

          final RenderBox parent = node.getParent();
          if (parent != null)
          {
            final RenderBox textEllipseBox = parent.getTextEllipseBox();
            if (textEllipseBox != null)
            {
              processBoxChilds(textEllipseBox);
            }
          }
          return;
        }
      }
    }

    if (type == LayoutNodeTypes.TYPE_NODE_TEXT)
    {
      final RenderableText text = (RenderableText) node;
      if (underline != null)
      {
        final ExtendedBaselineInfo baselineInfo = text.getBaselineInfo();
        final long underlinePos = text.getY() + baselineInfo.getUnderlinePosition();
        underline.updateVerticalPosition(StrictGeomUtility.toExternalValue(underlinePos));
        underline.updateStart(StrictGeomUtility.toExternalValue(text.getX()));
        underline.updateEnd(StrictGeomUtility.toExternalValue(text.getX() + text.getWidth()));
      }

      if (strikeThrough != null)
      {
        final ExtendedBaselineInfo baselineInfo = text.getBaselineInfo();
        final long strikethroughPos = text.getY() + baselineInfo.getStrikethroughPosition();
        strikeThrough.updateVerticalPosition(StrictGeomUtility.toExternalValue(strikethroughPos));
        strikeThrough.updateStart(StrictGeomUtility.toExternalValue(text.getX()));
        strikeThrough.updateEnd(StrictGeomUtility.toExternalValue(text.getX() + text.getWidth()));
      }

      if (isTextLineOverflow())
      {
        final long ellipseSize = extractEllipseSize(node);
        final long x1 = text.getX();
        final long x2 = x1 + text.getWidth();
        final long effectiveAreaX2 = (contentAreaX2 - ellipseSize);
        if (x2 <= effectiveAreaX2)
        {
          // the text will be fully visible.
          drawText(text);
        }
        else
        {
          if (x1 >= contentAreaX2)
          {
            // Skip, the node will not be visible.
          }
          else
          {
            // The text node that is printed will overlap with the ellipse we need to print.
            drawText(text, effectiveAreaX2);
          }

          final RenderBox parent = node.getParent();
          if (parent != null)
          {
            final RenderBox textEllipseBox = parent.getTextEllipseBox();
            if (textEllipseBox != null)
            {
              processBoxChilds(textEllipseBox);
            }
          }

          ellipseDrawn = true;
        }
      }
      else
      {
        drawText(text);
      }
    }
    else if (type == LayoutNodeTypes.TYPE_NODE_COMPLEX_TEXT)
    {
      final RenderableComplexText text = (RenderableComplexText) node;
      final long x1 = text.getX();

      if (x1 >= contentAreaX2)
      {
        // Skip, the node will not be visible.
      }
      else
      {
        // The text node that is printed will overlap with the ellipse we need to print.
        final Graphics2D g2;
        if (getTextSpec() == null)
        {
          g2 = (Graphics2D) getGraphics().create();
          final StyleSheet layoutContext = text.getStyleSheet();
          configureGraphics(layoutContext, g2);
          g2.setStroke(LogicalPageDrawable.DEFAULT_STROKE);

          if (RenderUtility.isFontSmooth(layoutContext, metaData))
          {
View Full Code Here

    while (node != null)
    {
      if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_TEXT)
      {
        // grab the baseline info from there ...
        final RenderableText text = (RenderableText) node;
        box.setBaselineInfo(text.getBaselineInfo());
        break;
      }

      node = node.getNext();
    }
View Full Code Here

      }
      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(RenderableText.convert(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
    // for now.
    final int codePoint = glyphList.getGlyph(0).getCodepoint();

    final ExtendedBaselineInfo baselineInfo = getBaselineInfo(codePoint);
//    final ExtendedBaselineInfo baselineInfo = TextUtility.createBaselineInfo(codePoint, fontMetrics, this.baselineInfo);
    final RenderableText text = new RenderableText(layoutContext, elementType, instanceId, attributeMap,
        baselineInfo, glyphList.lock(), 0, glyphList.getSize(), lastLanguage, forceLinebreak);
    words.add(text);

    glyphList.clear();
    leadingMargin = 0;
View Full Code Here

      if (clipOnWordBoundary == false)
      {
        if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_TEXT)
        {
          final RenderableText text = (RenderableText) node;
          final long ellipseSize = extractEllipseSize(node);
          final long x1 = text.getX();
          final long effectiveAreaX2 = (contentAreaX2 - ellipseSize);

          if (x1 < contentAreaX2)
          {
            // The text node that is printed will overlap with the ellipse we need to print.
            drawText(text, effectiveAreaX2);
          }
        }
        else if (node.getNodeType() == LayoutNodeTypes.TYPE_NODE_COMPLEX_TEXT)
        {
          final RenderableComplexText text = (RenderableComplexText) node;
          final long x1 = text.getX();

          if (x1 < contentAreaX2)
          {
            drawComplexText(node);
          }
View Full Code Here

      print(b.toString());
    }

    if (node instanceof RenderableText)
    {
      final RenderableText text = (RenderableText) node;
      b = new StringBuilder();
      for (int i = 0; i < level; i++)
      {
        b.append("   ");
      }
      b.append("- text='");
      b.append(text.getRawText());
      b.append("'");
      print(b.toString());
    }

    if (node instanceof RenderableComplexText)
    {
      final RenderableComplexText text = (RenderableComplexText) node;
      b = new StringBuilder();
      for (int i = 0; i < level; i++)
      {
        b.append("   ");
      }
      b.append("- complex-text='");
      b.append(text.getRawText());
      b.append("'");
      print(b.toString());
    }

    b = new StringBuilder();
View Full Code Here

TOP

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

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.