hillion     01/10/12 00:33:10

  Modified:    sources/org/apache/batik/bridge CSSUtilities.java
                        SVGAltGlyphElementBridge.java SVGFontUtilities.java
                        URIResolver.java
               sources/org/apache/batik/dom/svg SVGOMElement.java
               sources/org/apache/batik/dom/util XMLSupport.java
               test-resources/org/apache/batik/test samplesRendering.xml
  Added:       sources/org/apache/batik/dom/svg XMLBaseSupport.java
  Log:
  - Moved xml:base stuff from dom/util/XMLUtilities.java to
    dom/svg/XMLBaseSupport.java to address a modularity issue.
  - More tests setup.
  
  Revision  Changes    Path
  1.32      +5 -4      xml-batik/sources/org/apache/batik/bridge/CSSUtilities.java
  
  Index: CSSUtilities.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/CSSUtilities.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- CSSUtilities.java 2001/10/09 22:17:10     1.31
  +++ CSSUtilities.java 2001/10/12 07:33:09     1.32
  @@ -29,7 +29,6 @@
   
   import org.apache.batik.dom.svg.SVGOMDocument;
   import org.apache.batik.dom.util.XLinkSupport;
  -import org.apache.batik.dom.util.XMLSupport;
   
   import org.apache.batik.ext.awt.MultipleGradientPaint;
   import org.apache.batik.ext.awt.color.ICCColorSpaceExt;
  @@ -67,7 +66,7 @@
    * concrete objects regarding to CSS properties.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Thierry Kormann</a>
  - * @version $Id: CSSUtilities.java,v 1.31 2001/10/09 22:17:10 deweese Exp $
  + * @version $Id: CSSUtilities.java,v 1.32 2001/10/12 07:33:09 hillion Exp $
    */
   public abstract class CSSUtilities 
       implements CSSConstants, ErrorConstants, XMLConstants {
  @@ -825,14 +824,16 @@
                                              Element localRefElement,
                                              String  uri) {
           Attr xmlBase = localRefElement.getAttributeNodeNS
  -            (XML_NAMESPACE_URI, "base");
  +            (XML_NAMESPACE_URI, "xml:base");
           if (xmlBase != null) {
               // We have a current base so merge it with our new base and
               // set the result...
               ParsedURL purl = new ParsedURL(uri, xmlBase.getNodeValue());
               uri = purl.toString();
           }
  -        XMLSupport.setXMLBase(localRefElement, uri);
  +        localRefElement.setAttributeNS(XML_NAMESPACE_URI,
  +                                       "xml:base",
  +                                       uri);
   
           SVGOMDocument document
               = (SVGOMDocument)localRefElement.getOwnerDocument();
  
  
  
  1.7       +10 -6     
xml-batik/sources/org/apache/batik/bridge/SVGAltGlyphElementBridge.java
  
  Index: SVGAltGlyphElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGAltGlyphElementBridge.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGAltGlyphElementBridge.java     2001/10/09 22:17:10     1.6
  +++ SVGAltGlyphElementBridge.java     2001/10/12 07:33:09     1.7
  @@ -9,8 +9,8 @@
   package org.apache.batik.bridge;
   
   import org.apache.batik.dom.svg.SVGOMDocument;
  +import org.apache.batik.dom.svg.XMLBaseSupport;
   import org.apache.batik.dom.util.XLinkSupport;
  -import org.apache.batik.dom.util.XMLSupport;
   import org.apache.batik.gvt.font.Glyph;
   import org.apache.batik.gvt.text.GVTAttributedCharacterIterator;
   
  @@ -28,7 +28,7 @@
    * Bridge class for the &lt;altGlyph> element.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Bella Robinson</a>
  - * @version $Id: SVGAltGlyphElementBridge.java,v 1.6 2001/10/09 22:17:10 deweese 
Exp $
  + * @version $Id: SVGAltGlyphElementBridge.java,v 1.7 2001/10/12 07:33:09 hillion 
Exp $
    */
   public class SVGAltGlyphElementBridge extends AbstractSVGBridge
                                         implements ErrorConstants {
  @@ -103,10 +103,12 @@
               if (!isLocal) {
                   // need to attach the imported element to the document and
                   // then compute the styles and uris
  -                String base = XMLSupport.getXMLBase(altGlyphElement);
  +                String base = XMLBaseSupport.getXMLBase(altGlyphElement);
                   Element g = document.createElementNS(SVG_NAMESPACE_URI, SVG_G_TAG);
                   g.appendChild(localRefElement);
  -                XMLSupport.setXMLBase(g, base);
  +                g.setAttributeNS(XMLBaseSupport.XML_NAMESPACE_URI,
  +                                 "xml:base",
  +                                 base);
                   CSSUtilities.computeStyleAndURIs(refElement, 
                                                    localRefElement, 
                                                    uri);
  @@ -251,10 +253,12 @@
               // import the whole font
               Element localFontElement
                   = (Element)document.importNode(refGlyphElement.getParentNode(), 
true);
  -            String base = XMLSupport.getXMLBase(altGlyphElement);
  +            String base = XMLBaseSupport.getXMLBase(altGlyphElement);
               Element g = document.createElementNS(SVG_NAMESPACE_URI, SVG_G_TAG);
               g.appendChild(localFontElement);
  -            XMLSupport.setXMLBase(g, base);
  +            g.setAttributeNS(XMLBaseSupport.XML_NAMESPACE_URI,
  +                             "xml:base",
  +                             base);
               CSSUtilities.computeStyleAndURIs(
                   (Element)refGlyphElement.getParentNode(), 
                   localFontElement, glyphUri);
  
  
  
  1.7       +6 -4      xml-batik/sources/org/apache/batik/bridge/SVGFontUtilities.java
  
  Index: SVGFontUtilities.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFontUtilities.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFontUtilities.java     2001/10/09 22:17:10     1.6
  +++ SVGFontUtilities.java     2001/10/12 07:33:09     1.7
  @@ -13,8 +13,8 @@
   import org.apache.batik.gvt.font.GVTFontFamily;
   import org.apache.batik.gvt.font.UnresolvedFontFamily;
   import org.apache.batik.dom.util.XLinkSupport;
  -import org.apache.batik.dom.util.XMLSupport;
   import org.apache.batik.dom.svg.SVGOMDocument;
  +import org.apache.batik.dom.svg.XMLBaseSupport;
   
   import org.w3c.dom.Element;
   import org.w3c.dom.Document;
  @@ -28,7 +28,7 @@
    * Utility class for SVG fonts.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Bella Robinson</a>
  - * @version $Id: SVGFontUtilities.java,v 1.6 2001/10/09 22:17:10 deweese Exp $
  + * @version $Id: SVGFontUtilities.java,v 1.7 2001/10/12 07:33:09 hillion Exp $
    */
   public abstract class SVGFontUtilities implements SVGConstants {
   
  @@ -134,14 +134,16 @@
                                   fontElement = (isLocal) ? refElement
                                       : (Element)document.importNode(refElement, 
true);
                                   if (!isLocal) {
  -                                    String base = 
XMLSupport.getXMLBase(fontFaceUriElement);
  +                                    String base = 
XMLBaseSupport.getXMLBase(fontFaceUriElement);
                                       // need to attach the imported
                                       // element to the document and
                                       // then compute the styles and
                                       // uris
                                       Element g = 
document.createElementNS(SVG_NAMESPACE_URI, SVG_G_TAG);
                                       g.appendChild(fontElement);
  -                                    XMLSupport.setXMLBase(g, base);
  +                                    
g.setAttributeNS(XMLBaseSupport.XML_NAMESPACE_URI,
  +                                                     "xml:base",
  +                                                     base);
                                       CSSUtilities.computeStyleAndURIs(refElement, 
fontElement, uri);
                                   }
                               }
  
  
  
  1.10      +3 -3      xml-batik/sources/org/apache/batik/bridge/URIResolver.java
  
  Index: URIResolver.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/URIResolver.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- URIResolver.java  2001/10/09 22:17:10     1.9
  +++ URIResolver.java  2001/10/12 07:33:09     1.10
  @@ -15,8 +15,8 @@
   import org.apache.batik.css.CSSOMReadOnlyStyleDeclaration;
   import org.apache.batik.css.CSSOMReadOnlyValue;
   import org.apache.batik.dom.svg.SVGOMDocument;
  +import org.apache.batik.dom.svg.XMLBaseSupport;
   import org.apache.batik.dom.util.XLinkSupport;
  -import org.apache.batik.dom.util.XMLSupport;
   import org.apache.batik.util.ParsedURL;
   
   import org.w3c.dom.Document;
  @@ -28,7 +28,7 @@
    * This class is used to resolve the URI that can be found in a SVG document.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: URIResolver.java,v 1.9 2001/10/09 22:17:10 deweese Exp $
  + * @version $Id: URIResolver.java,v 1.10 2001/10/12 07:33:09 hillion Exp $
    */
   public class URIResolver {
       /**
  @@ -79,7 +79,7 @@
       public Node getNode(String uri, Element ref)
           throws MalformedURLException, IOException {
   
  -        String baseURI = XMLSupport.getXMLBase(ref);
  +        String baseURI = XMLBaseSupport.getXMLBase(ref);
           if ((baseURI == null) &&
               (uri.startsWith("#")))
               return document.getElementById(uri.substring(1));
  
  
  
  1.9       +5 -3      xml-batik/sources/org/apache/batik/dom/svg/SVGOMElement.java
  
  Index: SVGOMElement.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMElement.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGOMElement.java 2001/09/12 16:57:07     1.8
  +++ SVGOMElement.java 2001/10/12 07:33:09     1.9
  @@ -15,6 +15,7 @@
   import org.apache.batik.dom.util.DOMUtilities;
   
   import org.apache.batik.util.SVGConstants;
  +import org.apache.batik.util.XMLConstants;
   
   import org.w3c.dom.DOMException;
   import org.w3c.dom.Element;
  @@ -28,7 +29,7 @@
    * This class implements the {@link SVGElement} interface.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: SVGOMElement.java,v 1.8 2001/09/12 16:57:07 hillion Exp $
  + * @version $Id: SVGOMElement.java,v 1.9 2001/10/12 07:33:09 hillion Exp $
    */
   public abstract class SVGOMElement
       extends    AbstractElement
  @@ -78,13 +79,14 @@
        * <b>DOM</b>: Implements {@link SVGElement#getXMLbase()}.
        */
       public String getXMLbase() {
  -        throw new RuntimeException("!!! TODO: getXMLbase()");
  +        return XMLBaseSupport.getXMLBase(this);
       }
  +
       /**
        * <b>DOM</b>: Implements {@link SVGElement#setXMLbase(String)}.
        */
       public void setXMLbase(String xmlbase) throws DOMException {
  -        throw new RuntimeException("!!! TODO: setXMLbase()");
  +        setAttributeNS(XMLConstants.XML_NAMESPACE_URI, "xml:base", xmlbase);
       }
   
       /**
  
  
  
  1.1                  xml-batik/sources/org/apache/batik/dom/svg/XMLBaseSupport.java
  
  Index: XMLBaseSupport.java
  ===================================================================
  /*****************************************************************************
   * Copyright (C) The Apache Software Foundation. All rights reserved.        *
   * ------------------------------------------------------------------------- *
   * This software is published under the terms of the Apache Software License *
   * version 1.1, a copy of which has been included with this distribution in  *
   * the LICENSE file.                                                         *
   *****************************************************************************/
  
  package org.apache.batik.dom.svg;
  
  import java.net.URL;
  
  import org.apache.batik.css.HiddenChildElement;
  
  import org.apache.batik.util.XMLConstants;
  import org.apache.batik.util.ParsedURL;
  
  import org.w3c.dom.Attr;
  import org.w3c.dom.Element;
  import org.w3c.dom.Node;
  
  /**
   * This class provides support for the xml:base attribute.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Thomas DeWeese</a>
   * @version $Id: XMLBaseSupport.java,v 1.1 2001/10/12 07:33:09 hillion Exp $
   */
  public class XMLBaseSupport implements XMLConstants {
      
      /**
       * This class does not need to be instanciated.
       */
      protected XMLBaseSupport() {
      }
  
      /**
       * Returns the xml:base attribute value of the given element
       * Resolving any dependency on parent bases if needed.
       */
      public static String getXMLBase(Element elt) {
          String base = null;
          Node n = elt;
          while (true) {
              if (n.getParentNode() != null) {
                  n = n.getParentNode();
              } else if (n instanceof HiddenChildElement) {
                  n = ((HiddenChildElement)n).getParentElement();
              } else {
                  break; 
              }
              // new Exception("N: " + n).printStackTrace();
              if (n== null) break;
              if (n.getNodeType() == Node.ELEMENT_NODE) {
                  base = getXMLBase((Element)n);
                  break;
              }
          }
  
          if (base == null) {
              SVGOMDocument svgDoc;
              svgDoc = (SVGOMDocument)elt.getOwnerDocument();
              URL url = svgDoc.getURLObject();
              if (url != null) {
                  base = url.toString();
              }
          }
          Attr attr = elt.getAttributeNodeNS(XML_NAMESPACE_URI, "base");
          if (attr != null) {
              // System.out.println("Base: " + base + 
              //                    " attr: " + attr.getNodeValue());
              if (base == null) {
                  base = attr.getNodeValue();
              } else {
                  base = new ParsedURL(base, attr.getNodeValue()).toString();
              }
          }
          return base;
      }
  
  }
  
  
  
  1.6       +3 -55     xml-batik/sources/org/apache/batik/dom/util/XMLSupport.java
  
  Index: XMLSupport.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/util/XMLSupport.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XMLSupport.java   2001/10/09 22:17:10     1.5
  +++ XMLSupport.java   2001/10/12 07:33:09     1.6
  @@ -8,10 +8,7 @@
   
   package org.apache.batik.dom.util;
   
  -import java.net.URL;
  -
   import org.apache.batik.util.XMLConstants;
  -import org.apache.batik.util.ParsedURL;
   
   import org.w3c.dom.Attr;
   import org.w3c.dom.DOMException;
  @@ -22,12 +19,13 @@
    * This class provides support for XML features.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: XMLSupport.java,v 1.5 2001/10/09 22:17:10 deweese Exp $
  + * @version $Id: XMLSupport.java,v 1.6 2001/10/12 07:33:09 hillion Exp $
    */
   
   public class XMLSupport implements XMLConstants {
  +
       /**
  -     * This class do not need to be instanciated.
  +     * This class does not need to be instanciated.
        */
       protected XMLSupport() {
       }
  @@ -71,56 +69,6 @@
        }
        return "default";
       }
  -
  -    /**
  -     * Returns the xml:base attribute value of the given element
  -     * Resolving any dependency on parent bases if needed.
  -     */
  -    public static String getXMLBase(Element elt) {
  -        String base = null;
  -        Node n = elt;
  -        while (true) {
  -            if (n.getParentNode() != null)
  -                n = n.getParentNode();
  -            else if (n instanceof org.apache.batik.css.HiddenChildElement)
  -                n = ((org.apache.batik.css.HiddenChildElement)n)
  -                    .getParentElement();
  -            else 
  -                break; 
  -                
  -            // new Exception("N: " + n).printStackTrace();
  -            if (n== null) break;
  -            if (n.getNodeType() == Node.ELEMENT_NODE) {
  -                base = getXMLBase((Element)n);
  -                break;
  -            }
  -        }
  -
  -        if (base == null) {
  -            // try to load the image as an svg document
  -            org.apache.batik.dom.svg.SVGOMDocument svgDoc;
  -            svgDoc = (org.apache.batik.dom.svg.SVGOMDocument)
  -                elt.getOwnerDocument();
  -            URL url = svgDoc.getURLObject();
  -            if (url != null)
  -                base = url.toString();
  -        }
  -        Attr attr = elt.getAttributeNodeNS(XML_NAMESPACE_URI, "base");
  -        if (attr != null) {
  -            // System.out.println("Base: " + base + 
  -            //                    " attr: " + attr.getNodeValue());
  -            if (base == null) 
  -                base = attr.getNodeValue();
  -            else 
  -                base = new ParsedURL(base, attr.getNodeValue()).toString();
  -        }
  -        return base;
  -    }
  -
  -    public static void setXMLBase(Element elt, String base) {
  -        elt.setAttributeNS(XML_NAMESPACE_URI, "base", base);
  -    }
  -        
   
       /**
        * Strips the white spaces in the given string according to the xml:space
  
  
  
  1.29      +23 -7     
xml-batik/test-resources/org/apache/batik/test/samplesRendering.xml
  
  Index: samplesRendering.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-resources/org/apache/batik/test/samplesRendering.xml,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- samplesRendering.xml      2001/10/11 19:22:13     1.28
  +++ samplesRendering.xml      2001/10/12 07:33:09     1.29
  @@ -8,7 +8,7 @@
   
   <!-- ========================================================================= -->
   <!-- @author [EMAIL PROTECTED]                                         -->
  -<!-- @version $Id: samplesRendering.xml,v 1.28 2001/10/11 19:22:13 hillion Exp $ -->
  +<!-- @version $Id: samplesRendering.xml,v 1.29 2001/10/12 07:33:09 hillion Exp $ -->
   <!-- ========================================================================= -->
   <testSuite id="samplesRendering" name="samples and samples/test Rendering">
       <!-- ========================================================================== 
-->
  @@ -878,12 +878,28 @@
       </test>
   
     <!-- Sample tests, media test -->
  -    <test id="samples/tests/smiley.svg-Smiling" 
class="org.apache.batik.test.svg.SVGAlternateStyleSheetRenderingAccuracyTest">
  -        <arg class="java.lang.String" value="samples/tests/smiley.svg"/>
  -        <arg class="java.lang.String" 
value="test-references/samples/tests/smileySmiling.png"/>
  -        <arg class="java.lang.String" value="Smiling"/>
  -        <property name="VariationURL" class="java.lang.String" 
value="test-references/samples/accepted-variation/smileySmiling.png"/>
  -        <property name="SaveVariation" class="java.io.File" 
value="test-references/samples/candidate-variation/smileySmiling.png"/>
  +    <test id="samples/tests/cssMedia.svg-screen" 
class="org.apache.batik.test.svg.SVGMediaRenderingAccuracyTest">
  +        <arg class="java.lang.String" value="samples/tests/cssMedia.svg"/>
  +        <arg class="java.lang.String" 
value="test-references/samples/tests/cssMediaScreen.png"/>
  +        <arg class="java.lang.String" value="screen"/>
  +        <property name="VariationURL" class="java.lang.String" 
value="test-references/samples/accepted-variation/cssMediaScreen.png"/>
  +        <property name="SaveVariation" class="java.io.File" 
value="test-references/samples/candidate-variation/cssMediaScreen.png"/>
  +    </test>
  +
  +    <test id="samples/tests/cssMedia.svg-print" 
class="org.apache.batik.test.svg.SVGMediaRenderingAccuracyTest">
  +        <arg class="java.lang.String" value="samples/tests/cssMedia.svg"/>
  +        <arg class="java.lang.String" 
value="test-references/samples/tests/cssMediaPrint.png"/>
  +        <arg class="java.lang.String" value="print"/>
  +        <property name="VariationURL" class="java.lang.String" 
value="test-references/samples/accepted-variation/cssMediaPrint.png"/>
  +        <property name="SaveVariation" class="java.io.File" 
value="test-references/samples/candidate-variation/cssMediaPrint.png"/>
  +    </test>
  +
  +    <test id="samples/tests/cssMedia.svg-projection" 
class="org.apache.batik.test.svg.SVGMediaRenderingAccuracyTest">
  +        <arg class="java.lang.String" value="samples/tests/cssMedia.svg"/>
  +        <arg class="java.lang.String" 
value="test-references/samples/tests/cssMediaProjection.png"/>
  +        <arg class="java.lang.String" value="projection"/>
  +        <property name="VariationURL" class="java.lang.String" 
value="test-references/samples/accepted-variation/cssMediaProjection.png"/>
  +        <property name="SaveVariation" class="java.io.File" 
value="test-references/samples/candidate-variation/cssMediaProjection.png"/>
       </test>
   
   
  
  
  

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

Reply via email to