You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by de...@apache.org on 2007/01/11 12:26:55 UTC

svn commit: r495198 - in /xmlgraphics/batik/trunk: sources/org/apache/batik/bridge/ sources/org/apache/batik/dom/svg12/ sources/org/apache/batik/extension/svg/ test-references/samples/tests/spec/scripting/ test-references/samples/tests/spec12/text/

Author: deweese
Date: Thu Jan 11 03:26:54 2007
New Revision: 495198

URL: http://svn.apache.org/viewvc?view=rev&rev=495198
Log:
Fixed Flow Text regression by rebasing off SVGOMTextPositioningElement

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGTextElementBridge.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowLineElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowParaElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowRegionBreakElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowSpanElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/BatikFlowTextElementBridge.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowLineElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowParaElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowRegionBreakElement.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowSpanElement.java
    xmlgraphics/batik/trunk/test-references/samples/tests/spec/scripting/text_content.png
    xmlgraphics/batik/trunk/test-references/samples/tests/spec12/text/flowText5.png

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGTextElementBridge.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGTextElementBridge.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGTextElementBridge.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/SVGTextElementBridge.java Thu Jan 11 03:26:54 2007
@@ -83,6 +83,7 @@
 import org.w3c.dom.svg.SVGLengthList;
 import org.w3c.dom.svg.SVGNumberList;
 import org.w3c.dom.svg.SVGTextContentElement;
+import org.w3c.dom.svg.SVGTextPositioningElement;
 
 /**
  * Bridge class for the <text> element.
@@ -1240,13 +1241,13 @@
 
         // 'a' elements aren't SVGTextPositioningElements, so don't process
         // their positioning attributes on them.
-        if (!(element instanceof SVGOMTextPositioningElement)) {
+        if (!(element instanceof SVGTextPositioningElement)) {
             addChildGlyphPositionAttributes(as, element, ctx);
             return;
         }
 
         // get all of the glyph position attribute values
-        SVGOMTextPositioningElement te = (SVGOMTextPositioningElement) element;
+        SVGTextPositioningElement te = (SVGTextPositioningElement) element;
 
         try {
             SVGLengthList xs  = te.getX().getAnimVal();

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowLineElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowLineElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowLineElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowLineElement.java Thu Jan 11 03:26:54 2007
@@ -19,10 +19,9 @@
 package org.apache.batik.dom.svg12;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.dom.svg.SVGOMTextContentElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.apache.batik.util.SVG12Constants;
 import org.w3c.dom.Node;
-import org.w3c.dom.svg.SVGTextContentElement;
 
 /**
  * This class implements a regular polygon extension to SVG
@@ -31,8 +30,7 @@
  * @version $Id$
  */
 public class SVGOMFlowLineElement  
-    extends    SVGOMTextContentElement
-    implements SVGTextContentElement {
+    extends  SVGOMTextPositioningElement {
 
     /**
      * Creates a new BatikRegularPolygonElement object.

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowParaElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowParaElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowParaElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowParaElement.java Thu Jan 11 03:26:54 2007
@@ -19,7 +19,7 @@
 package org.apache.batik.dom.svg12;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.dom.svg.SVGOMTextContentElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.apache.batik.util.SVG12Constants;
 import org.w3c.dom.Node;
 import org.w3c.dom.svg.SVGTextContentElement;
@@ -31,8 +31,7 @@
  * @version $Id$
  */
 public class SVGOMFlowParaElement 
-    extends    SVGOMTextContentElement
-    implements SVGTextContentElement {
+    extends    SVGOMTextPositioningElement {
 
     /**
      * Creates a new BatikRegularPolygonElement object.

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowRegionBreakElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowRegionBreakElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowRegionBreakElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowRegionBreakElement.java Thu Jan 11 03:26:54 2007
@@ -19,7 +19,7 @@
 package org.apache.batik.dom.svg12;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.dom.svg.SVGStylableElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.apache.batik.util.SVG12Constants;
 import org.w3c.dom.Node;
 
@@ -29,7 +29,8 @@
  * @author <a href="mailto:thomas.deweese@kodak.com">Thomas DeWeese</a>
  * @version $Id$
  */
-public class SVGOMFlowRegionBreakElement extends SVGStylableElement {
+public class SVGOMFlowRegionBreakElement 
+    extends SVGOMTextPositioningElement {
 
     /**
      * Creates a new BatikRegularPolygonElement object.

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowSpanElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowSpanElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowSpanElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/dom/svg12/SVGOMFlowSpanElement.java Thu Jan 11 03:26:54 2007
@@ -19,10 +19,9 @@
 package org.apache.batik.dom.svg12;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.dom.svg.SVGOMTextContentElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.apache.batik.util.SVG12Constants;
 import org.w3c.dom.Node;
-import org.w3c.dom.svg.SVGTextContentElement;
 
 /**
  * This class implements a regular polygon extension to SVG
@@ -31,8 +30,7 @@
  * @version $Id$
  */
 public class   SVGOMFlowSpanElement 
-    extends    SVGOMTextContentElement
-    implements SVGTextContentElement {
+    extends    SVGOMTextPositioningElement {
 
     /**
      * Creates a new BatikRegularPolygonElement object.

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/BatikFlowTextElementBridge.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/BatikFlowTextElementBridge.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/BatikFlowTextElementBridge.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/BatikFlowTextElementBridge.java Thu Jan 11 03:26:54 2007
@@ -43,6 +43,7 @@
 import org.apache.batik.dom.events.NodeEventTarget;
 import org.apache.batik.dom.util.XLinkSupport;
 import org.apache.batik.dom.util.XMLSupport;
+import org.apache.batik.dom.svg.SVGOMElement;
 import org.apache.batik.gvt.GraphicsNode;
 import org.apache.batik.gvt.TextNode;
 import org.apache.batik.gvt.text.GVTAttributedCharacterIterator;
@@ -128,6 +129,29 @@
         return new Point2D.Float(0,0);
     }
 
+    protected void addContextToChild(BridgeContext ctx,Element e) {
+        if (getNamespaceURI().equals(e.getNamespaceURI())) {
+            String ln = e.getLocalName();
+            if (ln.equals(BATIK_EXT_FLOW_PARA_TAG) ||
+                ln.equals(BATIK_EXT_FLOW_REGION_BREAK_TAG) ||
+                ln.equals(BATIK_EXT_FLOW_LINE_TAG) ||
+                ln.equals(BATIK_EXT_FLOW_SPAN_TAG) ||
+                ln.equals(SVG_A_TAG) ||
+                ln.equals(SVG_TREF_TAG)) {
+                ((SVGOMElement) e).setSVGContext
+                    (new BatikFlowContentBridge(ctx, this, e));
+            }
+        }
+        
+        // traverse the children to add SVGContext
+        Node child = getFirstChild(e);
+        while (child != null) {
+            if (child.getNodeType() == Node.ELEMENT_NODE) {
+                addContextToChild(ctx,(Element)child);
+            }
+            child = getNextSibling(child);
+        }
+    }
     /**
      * Creates the attributed string which represents the given text
      * element children.
@@ -778,6 +802,22 @@
         boolean rgnBr = ln.equals(BATIK_EXT_FLOW_REGION_BREAK_TAG);
         return new MarginInfo(top, right, bottom, left,
                               indent, justification, rgnBr);
+    }
+
+    /**
+     * Bridge class for flow text children that contain text.
+     */
+    protected class BatikFlowContentBridge 
+        extends AbstractTextChildTextContent {
+
+        /**
+         * Creates a new FlowContentBridge.
+         */
+        public BatikFlowContentBridge(BridgeContext ctx,
+                                 SVGTextElementBridge parent,
+                                 Element e) {
+            super(ctx, parent, e);
+        }
     }
 
 

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowLineElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowLineElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowLineElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowLineElement.java Thu Jan 11 03:26:54 2007
@@ -19,7 +19,7 @@
 package org.apache.batik.extension.svg;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.extension.PrefixableStylableExtensionElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.w3c.dom.Node;
 
 /**
@@ -29,7 +29,7 @@
  * @version $Id$
  */
 public class FlowLineElement
-    extends    PrefixableStylableExtensionElement 
+    extends    SVGOMTextPositioningElement
     implements BatikExtConstants {
 
     /**

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowParaElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowParaElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowParaElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowParaElement.java Thu Jan 11 03:26:54 2007
@@ -19,7 +19,7 @@
 package org.apache.batik.extension.svg;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.extension.PrefixableStylableExtensionElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.w3c.dom.Node;
 
 /**
@@ -29,7 +29,7 @@
  * @version $Id$
  */
 public class FlowParaElement
-    extends    PrefixableStylableExtensionElement 
+    extends    SVGOMTextPositioningElement
     implements BatikExtConstants {
 
     /**

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowRegionBreakElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowRegionBreakElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowRegionBreakElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowRegionBreakElement.java Thu Jan 11 03:26:54 2007
@@ -19,7 +19,7 @@
 package org.apache.batik.extension.svg;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.extension.PrefixableStylableExtensionElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.w3c.dom.Node;
 
 /**
@@ -29,7 +29,7 @@
  * @version $Id$
  */
 public class FlowRegionBreakElement
-    extends    PrefixableStylableExtensionElement 
+    extends    SVGOMTextPositioningElement
     implements BatikExtConstants {
 
     /**

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowSpanElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowSpanElement.java?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowSpanElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/extension/svg/FlowSpanElement.java Thu Jan 11 03:26:54 2007
@@ -19,7 +19,7 @@
 package org.apache.batik.extension.svg;
 
 import org.apache.batik.dom.AbstractDocument;
-import org.apache.batik.extension.PrefixableStylableExtensionElement;
+import org.apache.batik.dom.svg.SVGOMTextPositioningElement;
 import org.w3c.dom.Node;
 
 /**
@@ -29,17 +29,18 @@
  * @version $Id$
  */
 public class FlowSpanElement
-    extends    PrefixableStylableExtensionElement 
-    implements BatikExtConstants {
+    extends    SVGOMTextPositioningElement
+    implements BatikExtConstants
+ {
 
     /**
-     * Creates a new BatikRegularPolygonElement object.
+     * Creates a new Batik Flow Span element.
      */
     protected FlowSpanElement() {
     }
 
     /**
-     * Creates a new BatikRegularPolygonElement object.
+     * Creates a new Batik Flow Span Element.
      * @param prefix The namespace prefix.
      * @param owner The owner document.
      */

Modified: xmlgraphics/batik/trunk/test-references/samples/tests/spec/scripting/text_content.png
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/test-references/samples/tests/spec/scripting/text_content.png?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
Binary files - no diff available.

Modified: xmlgraphics/batik/trunk/test-references/samples/tests/spec12/text/flowText5.png
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/test-references/samples/tests/spec12/text/flowText5.png?view=diff&rev=495198&r1=495197&r2=495198
==============================================================================
Binary files - no diff available.