deweese     2003/07/21 17:49:58

  Modified:    sources/org/apache/batik/bridge SVGTextElementBridge.java
               sources/org/apache/batik/gvt/renderer
                        StrokingTextPainter.java
  Log:
  1) The glyphs of initially hidden text no longer stay hidden when the
     text becomes visible.
  
  Revision  Changes    Path
  1.83      +42 -33    
xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java
  
  Index: SVGTextElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -r1.82 -r1.83
  --- SVGTextElementBridge.java 3 Jul 2003 14:10:01 -0000       1.82
  +++ SVGTextElementBridge.java 22 Jul 2003 00:49:57 -0000      1.83
  @@ -570,38 +570,14 @@
           case SVGCSSEngine.STROKE_MITERLIMIT_INDEX:
           case SVGCSSEngine.STROKE_DASHARRAY_INDEX:
           case SVGCSSEngine.STROKE_DASHOFFSET_INDEX:
  -        case SVGCSSEngine.TEXT_DECORATION_INDEX: {
  -            if (!hasNewACI) {
  -                hasNewACI = true;
  -                TextNode tn = (TextNode)node;
  -                AttributedString as;
  -
  -                TextDecoration parentDecoration;
  -
  -                if ( cssProceedElement == e ){
  -                    parentDecoration = new TextDecoration();
  -                    as = new AttributedString(layoutedText.getIterator());
  -                }
  -                else{
  -                    //if a child CSS property has changed, then
  -                    //retrieve the parent text decoration
  -                    //and only update the section of the AtrtibutedString of
  -                    //the child
  -                    parentDecoration = getParentTextDecoration
  -                        (tn.getAttributedCharacterIterator(), 
  -                         cssProceedElement);
  -                    as = new AttributedString
  -                        (tn.getAttributedCharacterIterator());
  -                }
  -                tn.setAttributedCharacterIterator(as.getIterator());
  -                TextDecoration textDecoration = getTextDecoration
  -                    (cssProceedElement, tn, parentDecoration, ctx);
  -                addPaintAttributes
  -                    (as, cssProceedElement, tn, textDecoration, ctx);
  -                tn.setAttributedCharacterIterator(as.getIterator());
  -            }
  +        case SVGCSSEngine.TEXT_DECORATION_INDEX:
  +            rebuildACI();
  +            break;
  + 
  +        case SVGCSSEngine.VISIBILITY_INDEX: 
  +            rebuildACI();
  +            super.handleCSSPropertyChanged(property);
               break;
  -        }
           case SVGCSSEngine.TEXT_RENDERING_INDEX: {
               RenderingHints hints = node.getRenderingHints();
               hints = CSSUtilities.convertTextRendering(e, hints);
  @@ -623,6 +599,39 @@
           }
       }
   
  +    protected void rebuildACI() {
  +        if (hasNewACI)
  +            return;
  +
  +        hasNewACI = true;
  +        TextNode tn = (TextNode)node;
  +        AttributedString as;
  +
  +        TextDecoration parentDecoration;
  +
  +        if ( cssProceedElement == e ){
  +            parentDecoration = new TextDecoration();
  +            as = new AttributedString(layoutedText.getIterator());
  +        }
  +        else{
  +            //if a child CSS property has changed, then
  +            //retrieve the parent text decoration
  +            //and only update the section of the AtrtibutedString of
  +            //the child
  +            parentDecoration = getParentTextDecoration
  +                (tn.getAttributedCharacterIterator(), 
  +                 cssProceedElement);
  +            as = new AttributedString
  +                (tn.getAttributedCharacterIterator());
  +        }
  +        tn.setAttributedCharacterIterator(as.getIterator());
  +        TextDecoration textDecoration = getTextDecoration
  +            (cssProceedElement, tn, parentDecoration, ctx);
  +        addPaintAttributes
  +            (as, cssProceedElement, tn, textDecoration, ctx);
  +        tn.setAttributedCharacterIterator(as.getIterator());
  +    }
  +
       // -----------------------------------------------------------------------
       // -----------------------------------------------------------------------
       // -----------------------------------------------------------------------
  @@ -1206,7 +1215,7 @@
   
           // Fill
           Paint p = PaintServer.convertFillPaint(element, node, ctx);
  -        // System.out.println("Fore: " + p + " [" + firstChar + "," +
  +        // System.err.println("Fore: " + p + " [" + firstChar + "," +
           //                    (lastChar+1) + "]");
           as.addAttribute(TextAttribute.FOREGROUND, p,
                           firstChar, lastChar+1);
  
  
  
  1.46      +1 -2      
xml-batik/sources/org/apache/batik/gvt/renderer/StrokingTextPainter.java
  
  Index: StrokingTextPainter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/gvt/renderer/StrokingTextPainter.java,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- StrokingTextPainter.java  9 Jul 2003 02:10:10 -0000       1.45
  +++ StrokingTextPainter.java  22 Jul 2003 00:49:57 -0000      1.46
  @@ -1000,7 +1000,6 @@
        */
       private void paintTextRuns(List textRuns, 
                                  Graphics2D g2d) {
  -
           for (int i = 0; i < textRuns.size(); i++) {
               TextRun textRun = (TextRun)textRuns.get(i);
               AttributedCharacterIterator runaci = textRun.getACI();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to