]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
move svg classes related to the FO Tree building from svg to fo/extensions/svg
authorWilliam Victor Mote <vmote@apache.org>
Thu, 28 Aug 2003 19:49:45 +0000 (19:49 +0000)
committerWilliam Victor Mote <vmote@apache.org>
Thu, 28 Aug 2003 19:49:45 +0000 (19:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196871 13f79535-47bb-0310-9956-ffa450edef68

13 files changed:
src/java/org/apache/fop/fo/FOTreeBuilder.java
src/java/org/apache/fop/fo/FOTreeVisitor.java
src/java/org/apache/fop/fo/extensions/svg/SVGElement.java [new file with mode: 0644]
src/java/org/apache/fop/fo/extensions/svg/SVGElementMapping.java [new file with mode: 0644]
src/java/org/apache/fop/fo/extensions/svg/SVGObj.java [new file with mode: 0644]
src/java/org/apache/fop/fo/extensions/svg/SVGUserAgent.java [new file with mode: 0644]
src/java/org/apache/fop/image/analyser/SVGReader.java
src/java/org/apache/fop/render/pdf/PDFXMLHandler.java
src/java/org/apache/fop/render/ps/PSXMLHandler.java
src/java/org/apache/fop/svg/SVGElement.java [deleted file]
src/java/org/apache/fop/svg/SVGElementMapping.java [deleted file]
src/java/org/apache/fop/svg/SVGObj.java [deleted file]
src/java/org/apache/fop/svg/SVGUserAgent.java [deleted file]

index 2237bf3e6de3df71564f305df739371320531d11..f87bd8b6b97aa6e0b98cb9c112ec21b24ef7fc12 100644 (file)
@@ -162,7 +162,7 @@ public class FOTreeBuilder extends DefaultHandler {
      */
     private void setupDefaultMappings() {
         addElementMapping("org.apache.fop.fo.FOElementMapping");
-        addElementMapping("org.apache.fop.svg.SVGElementMapping");
+        addElementMapping("org.apache.fop.fo.extensions.svg.SVGElementMapping");
         addElementMapping("org.apache.fop.fo.extensions.ExtensionElementMapping");
 
         // add mappings from available services
index 8df70f75b41ea121e7df9bd976aacb6bce268936..112a2753a2ee9ffdd9dc7c86930d0b50f71612bc 100644 (file)
@@ -115,8 +115,8 @@ import org.apache.fop.fo.flow.MultiSwitch;
 import org.apache.fop.fo.flow.MultiToggle;
 import org.apache.fop.fo.flow.TableAndCaption;
 import org.apache.fop.fo.flow.TableCaption;
-import org.apache.fop.svg.SVGObj;
-import org.apache.fop.svg.SVGElement;
+import org.apache.fop.fo.extensions.svg.SVGObj;
+import org.apache.fop.fo.extensions.svg.SVGElement;
 
 /**
  * <p>Implements the GoF Visitor design pattern to allow access to the FOTree
diff --git a/src/java/org/apache/fop/fo/extensions/svg/SVGElement.java b/src/java/org/apache/fop/fo/extensions/svg/SVGElement.java
new file mode 100644 (file)
index 0000000..893a720
--- /dev/null
@@ -0,0 +1,322 @@
+/*
+ * $Id$
+ * ============================================================================
+ *                    The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include the following acknowledgment: "This product includes software
+ *    developed by the Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself, if
+ *    and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ *    endorse or promote products derived from this software without prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ *    "Apache" appear in their name, without prior written permission of the
+ *    Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.fo.extensions.svg;
+
+// FOP
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.FOTreeVisitor;
+import org.apache.fop.apps.FOPException;
+
+import org.apache.batik.dom.svg.SVGOMDocument;
+import org.apache.batik.dom.svg.SVGOMElement;
+import org.apache.batik.dom.svg.SVGContext;
+import org.apache.batik.dom.util.XMLSupport;
+import org.w3c.dom.Element;
+import org.w3c.dom.svg.SVGDocument;
+import org.xml.sax.Attributes;
+import org.apache.batik.bridge.UnitProcessor;
+import org.apache.batik.util.SVGConstants;
+
+import org.w3c.dom.DOMImplementation;
+
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+
+import java.net.URL;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import org.apache.fop.apps.*;
+import org.apache.fop.svg.*;
+
+/**
+ * class representing the SVG root element
+ * for constructing an svg document.
+ */
+public class SVGElement extends SVGObj {
+
+    /**
+     * Constructs an SVG object
+     *
+     * @param parent the parent formatting object
+     */
+    public SVGElement(FONode parent) {
+        super(parent);
+    }
+
+    /**
+     * Handle the xml attributes from SAX.
+     * @param attlist the attribute list
+     * @throws FOPException not thrown from here
+     */
+    public void handleAttrs(Attributes attlist) throws FOPException {
+        super.handleAttrs(attlist);
+        init();
+    }
+
+    /**
+     * Get the dimensions of this XML document.
+     * @param view the viewport dimensions
+     * @return the dimensions of this SVG document
+     */
+    public Point2D getDimension(final Point2D view) {
+
+        // TODO - change so doesn't hold onto fo,area tree
+        Element svgRoot = element;
+        /* create an SVG area */
+        /* if width and height are zero, get the bounds of the content. */
+
+        try {
+            String baseDir = userAgent.getBaseURL();
+            if (baseDir != null) {
+                ((SVGOMDocument)doc).setURLObject(new URL(baseDir));
+            }
+        } catch (Exception e) {
+            getLogger().error("Could not set base URL for svg", e);
+        }
+
+        Element e = ((SVGDocument)doc).getRootElement();
+        final float ptmm = userAgent.getPixelUnitToMillimeter();
+        // temporary svg context
+        SVGContext dc = new SVGContext() {
+            public float getPixelToMM() {
+                return ptmm;
+            }
+            public float getPixelUnitToMillimeter() {
+                return ptmm;
+            }
+
+            public Rectangle2D getBBox() {
+                return new Rectangle2D.Double(0, 0, view.getX(), view.getY());
+            }
+
+            /**
+             * Returns the transform from the global transform space to pixels.
+             */
+            public AffineTransform getScreenTransform() {
+                throw new UnsupportedOperationException("NYI");
+            }
+
+            /**
+             * Sets the transform to be used from the global transform space
+             * to pixels.
+             */
+            public void setScreenTransform(AffineTransform at) {
+                throw new UnsupportedOperationException("NYI");
+            }
+
+            public AffineTransform getCTM() {
+                return new AffineTransform();
+            }
+
+            public AffineTransform getGlobalTransform() {
+                return new AffineTransform();
+            }
+
+            public float getViewportWidth() {
+                return (float)view.getX();
+            }
+
+            public float getViewportHeight() {
+                return (float)view.getY();
+            }
+
+            public float getFontSize() {
+                return 12;
+            }
+        };
+        ((SVGOMElement)e).setSVGContext(dc);
+
+        //if (!e.hasAttributeNS(XMLSupport.XMLNS_NAMESPACE_URI, "xmlns")) {
+            e.setAttributeNS(XMLSupport.XMLNS_NAMESPACE_URI, "xmlns",
+                                SVGDOMImplementation.SVG_NAMESPACE_URI);
+        //}
+        int fontSize = 12;
+        Point2D p2d = getSize(fontSize, svgRoot, userAgent.getPixelUnitToMillimeter());
+       ((SVGOMElement)e).setSVGContext(null);
+
+        return p2d;
+    }
+
+    private void init() {
+        DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
+        String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
+        doc = impl.createDocument(svgNS, "svg", null);
+
+        element = doc.getDocumentElement();
+
+        buildTopLevel(doc, element);
+    }
+
+    /**
+     * Get the size of the SVG root element.
+     * @param size the font size
+     * @param svgRoot the svg root element
+     * @param ptmm the pixel to millimeter conversion factor
+     * @return the size of the SVG document
+     */
+    public static Point2D getSize(int size, Element svgRoot, float ptmm) {
+        String str;
+        UnitProcessor.Context ctx;
+        ctx = new PDFUnitContext(size, svgRoot, ptmm);
+        str = svgRoot.getAttributeNS(null, SVGConstants.SVG_WIDTH_ATTRIBUTE);
+        if (str.length() == 0) {
+            str = "100%";
+        }
+        float width = UnitProcessor.svgHorizontalLengthToUserSpace
+            (str, SVGConstants.SVG_WIDTH_ATTRIBUTE, ctx);
+
+        str = svgRoot.getAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE);
+        if (str.length() == 0) {
+            str = "100%";
+        }
+        float height = UnitProcessor.svgVerticalLengthToUserSpace
+            (str, SVGConstants.SVG_HEIGHT_ATTRIBUTE, ctx);
+        return new Point2D.Float(width, height);
+    }
+
+    /**
+     * This class is the default context for a particular
+     * element. Informations not available on the element are get from
+     * the bridge context (such as the viewport or the pixel to
+     * millimeter factor.
+     */
+    public static class PDFUnitContext implements UnitProcessor.Context {
+
+        /** The element. */
+        private Element e;
+        private int fontSize;
+        private float pixeltoMM;
+
+        /**
+         * Create a PDF unit context.
+         * @param size the font size.
+         * @param e the svg element
+         * @param ptmm the pixel to millimeter factor
+         */
+        public PDFUnitContext(int size, Element e, float ptmm) {
+            this.e = e;
+            this.fontSize = size;
+            this.pixeltoMM = ptmm;
+        }
+
+        /**
+         * Returns the element.
+         * @return the element
+         */
+        public Element getElement() {
+            return e;
+        }
+
+        /**
+         * Returns the context of the parent element of this context.
+         * Since this is always for the root SVG element there never
+         * should be one...
+         * @return null
+         */
+        public UnitProcessor.Context getParentElementContext() {
+            return null;
+        }
+
+        /**
+         * Returns the pixel to mm factor. (this is deprecated)
+         * @return the pixel to millimeter factor
+         */
+        public float getPixelToMM() {
+            return pixeltoMM;
+        }
+
+        /**
+         * Returns the pixel to mm factor.
+         * @return the pixel to millimeter factor
+         */
+        public float getPixelUnitToMillimeter() {
+            return pixeltoMM;
+        }
+
+        /**
+         * Returns the font-size value.
+         * @return the default font size
+         */
+        public float getFontSize() {
+            return fontSize;
+        }
+
+        /**
+         * Returns the x-height value.
+         * @return the x-height value
+         */
+        public float getXHeight() {
+            return 0.5f;
+        }
+
+        /**
+         * Returns the viewport width used to compute units.
+         * @return the default viewport width of 100
+         */
+        public float getViewportWidth() {
+            return 100;
+        }
+
+        /**
+         * Returns the viewport height used to compute units.
+         * @return the default viewport height of 100
+         */
+        public float getViewportHeight() {
+            return 100;
+        }
+    }
+
+    public void acceptVisitor(FOTreeVisitor fotv) {
+        fotv.serveVisitor(this);
+    }
+
+}
+
diff --git a/src/java/org/apache/fop/fo/extensions/svg/SVGElementMapping.java b/src/java/org/apache/fop/fo/extensions/svg/SVGElementMapping.java
new file mode 100644 (file)
index 0000000..b4a1ce3
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * $Id$
+ * ============================================================================
+ *                    The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include the following acknowledgment: "This product includes software
+ *    developed by the Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself, if
+ *    and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ *    endorse or promote products derived from this software without prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache", nor may
+ *    "Apache" appear in their name, without prior written permission of the
+ *    Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ * 
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */ 
+package org.apache.fop.fo.extensions.svg;
+
+import java.util.HashMap;
+
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.ElementMapping;
+import org.apache.fop.apps.FOFileHandler;
+
+import org.apache.batik.util.XMLResourceDescriptor;
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+
+import org.apache.fop.svg.*;
+
+/**
+ * Setup the SVG element mapping.
+ * This adds the svg element mappings used to create the objects
+ * that create the SVG Document.
+ */
+public class SVGElementMapping extends ElementMapping {
+    private boolean batik = true;
+
+    public SVGElementMapping() {
+        namespaceURI = SVGDOMImplementation.SVG_NAMESPACE_URI;
+    }
+
+    protected void initialize() {
+        if (foObjs == null && batik == true) {
+            // this sets the parser that will be used
+            // by default (SVGBrokenLinkProvider)
+            // normally the user agent value is used
+            try {
+                XMLResourceDescriptor.setXMLParserClassName(
+                  FOFileHandler.getParserClassName());
+    
+                foObjs = new HashMap();
+                foObjs.put("svg", new SE());
+                foObjs.put(DEFAULT, new SVGMaker());
+            } catch (Throwable t) {
+                // if the classes are not available
+                // the DISPLAY is not checked
+                batik = false;
+            }
+        }
+    }
+
+    static class SVGMaker extends ElementMapping.Maker {
+        public FONode make(FONode parent) {
+            return new SVGObj(parent);
+        }
+    }
+
+    static class SE extends ElementMapping.Maker {
+        public FONode make(FONode parent) {
+            return new SVGElement(parent);
+        }
+    }
+}
diff --git a/src/java/org/apache/fop/fo/extensions/svg/SVGObj.java b/src/java/org/apache/fop/fo/extensions/svg/SVGObj.java
new file mode 100644 (file)
index 0000000..8ec55fd
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * $Id$
+ * ============================================================================
+ *                    The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include the following acknowledgment: "This product includes software
+ *    developed by the Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself, if
+ *    and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ *    endorse or promote products derived from this software without prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ *    "Apache" appear in their name, without prior written permission of the
+ *    Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.fo.extensions.svg;
+
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.XMLObj;
+import org.apache.fop.fo.FOTreeVisitor;
+
+/**
+ * Class for SVG element objects.
+ * This aids in the construction of the SVG Document.
+ */
+public class SVGObj extends XMLObj {
+    /**
+     * constructs an svg object (called by Maker).
+     *
+     * @param parent the parent formatting object
+     */
+    public SVGObj(FONode parent) {
+        super(parent);
+    }
+
+    /**
+     * Get the namespace for svg.
+     * @return the svg namespace
+     */
+    public String getNameSpace() {
+        return "http://www.w3.org/2000/svg";
+    }
+
+    public void acceptVisitor(FOTreeVisitor fotv) {
+        fotv.serveVisitor(this);
+    }
+
+}
+
diff --git a/src/java/org/apache/fop/fo/extensions/svg/SVGUserAgent.java b/src/java/org/apache/fop/fo/extensions/svg/SVGUserAgent.java
new file mode 100644 (file)
index 0000000..9fc07bd
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * $Id$
+ * ============================================================================
+ *                    The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution, if any, must
+ *    include the following acknowledgment: "This product includes software
+ *    developed by the Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself, if
+ *    and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ *    endorse or promote products derived from this software without prior
+ *    written permission. For written permission, please contact
+ *    apache@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache", nor may
+ *    "Apache" appear in their name, without prior written permission of the
+ *    Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ * 
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */ 
+package org.apache.fop.fo.extensions.svg;
+
+import org.apache.fop.apps.FOUserAgent;
+
+import org.apache.batik.bridge.UserAgentAdapter;
+
+import org.apache.avalon.framework.logger.Logger;
+
+// Java
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Dimension2D;
+import java.awt.Dimension;
+
+/**
+ * The SVG user agent.
+ * This is an implementation of the batik svg user agent
+ * for handling errors and getting user agent values.
+ */
+public class SVGUserAgent extends UserAgentAdapter {
+    private AffineTransform currentTransform = null;
+    private FOUserAgent userAgent;
+
+    /**
+     * Creates a new SVGUserAgent.
+     * @param ua the FO user agent
+     * @param at the current transform
+     */
+    public SVGUserAgent(FOUserAgent ua, AffineTransform at) {
+        currentTransform = at;
+        userAgent = ua;
+    }
+
+    /**
+     * Returns the logger associated with this user agent.
+     * @return Logger the logger
+     */
+    protected final Logger getLogger() {
+        return this.userAgent.getLogger();
+    }
+
+    /**
+     * Displays an error message.
+     * @param message the message to display
+     */
+    public void displayError(String message) {
+        getLogger().error(message);
+    }
+
+    /**
+     * Displays an error resulting from the specified Exception.
+     * @param ex the exception to display
+     */
+    public void displayError(Exception ex) {
+        getLogger().error("SVG Error" + ex.getMessage(), ex);
+    }
+
+    /**
+     * Displays a message in the User Agent interface.
+     * The given message is typically displayed in a status bar.
+     * @param message the message to display
+     */
+    public void displayMessage(String message) {
+        getLogger().info(message);
+    }
+
+    /**
+     * Shows an alert dialog box.
+     * @param message the message to display
+     */
+    public void showAlert(String message) {
+        getLogger().warn(message);
+    }
+
+    /**
+     * Returns a customized the pixel to mm factor.
+     * @return the pixel unit to millimeter conversion factor
+     */
+    public float getPixelUnitToMillimeter() {
+        return userAgent.getPixelUnitToMillimeter();
+    }
+
+    /**
+     * Returns the language settings.
+     * @return the languages supported
+     */
+    public String getLanguages() {
+        return "en"; // userLanguages;
+    }
+
+    /**
+     * Returns the media type for this rendering.
+     * @return the media for fo documents is "print"
+     */
+    public String getMedia() {
+        return "print";
+    }
+
+    /**
+     * Returns the user stylesheet uri.
+     * @return null if no user style sheet was specified.
+     */
+    public String getUserStyleSheetURI() {
+        return null; // userStyleSheetURI;
+    }
+
+    /**
+     * Returns the class name of the XML parser.
+     * @return the XML parser class name
+     */
+    public String getXMLParserClassName() {
+        return org.apache.fop.apps.FOFileHandler.getParserClassName();
+    }
+
+    /**
+     * Is the XML parser validating.
+     * @return true if the xml parser is validating
+     */
+    public boolean isXMLParserValidating() {
+        return false;
+    }
+
+    /**
+     * Get the transform of the svg document.
+     * @return the transform
+     */
+    public AffineTransform getTransform() {
+        return currentTransform;
+    }
+
+    /**
+     * Get the default viewport size for an svg document.
+     * This returns a default value of 100x100.
+     * @return the default viewport size
+     */
+    public Dimension2D getViewportSize() {
+        return new Dimension(100, 100);
+    }
+
+}
+
index ddd0b1240da4f4a48fa2fdaf4b8ac2897856829a..71476719cb10c260b3058fa3578ed264c68d869d 100644 (file)
@@ -70,7 +70,7 @@ import org.apache.batik.dom.svg.SVGDOMImplementation;
 import org.apache.fop.image.XMLImage;
 import org.apache.fop.image.FopImage;
 import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.svg.SVGUserAgent;
+import org.apache.fop.fo.extensions.svg.SVGUserAgent;
 
 /** 
  * ImageReader object for SVG document image type.
index ef135533d7932fa2b4ae0bc7faad5ef877bc7454..f2f8debf7ddd8642d9fddde1e0a5714f514baa8a 100644 (file)
@@ -61,7 +61,7 @@ import org.apache.fop.pdf.PDFResourceContext;
 import org.apache.fop.svg.PDFTextElementBridge;
 import org.apache.fop.svg.PDFAElementBridge;
 import org.apache.fop.svg.PDFGraphics2D;
-import org.apache.fop.svg.SVGUserAgent;
+import org.apache.fop.fo.extensions.svg.SVGUserAgent;
 import org.apache.fop.apps.Document;
 
 /* org.w3c.dom.Document is not imported to avoid conflict with
index b6c50f91551143fb0fddf64fccf73e052ae7bf31..558691daad8d59891539cf9364a4f4e2261d9f29 100644 (file)
@@ -71,7 +71,7 @@ import org.apache.batik.gvt.TextPainter;
 import org.apache.fop.apps.Document;
 import org.apache.fop.render.XMLHandler;
 import org.apache.fop.render.RendererContext;
-import org.apache.fop.svg.SVGUserAgent;
+import org.apache.fop.fo.extensions.svg.SVGUserAgent;
 import org.apache.fop.apps.*;
 
 /**
diff --git a/src/java/org/apache/fop/svg/SVGElement.java b/src/java/org/apache/fop/svg/SVGElement.java
deleted file mode 100644 (file)
index 75712da..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * $Id: SVGElement.java,v 1.34 2003/03/05 15:08:45 jeremias Exp $
- * ============================================================================
- *                    The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- *    include the following acknowledgment: "This product includes software
- *    developed by the Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself, if
- *    and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- *    endorse or promote products derived from this software without prior
- *    written permission. For written permission, please contact
- *    apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- *    "Apache" appear in their name, without prior written permission of the
- *    Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.svg;
-
-// FOP
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FOTreeVisitor;
-import org.apache.fop.apps.FOPException;
-
-import org.apache.batik.dom.svg.SVGOMDocument;
-import org.apache.batik.dom.svg.SVGOMElement;
-import org.apache.batik.dom.svg.SVGContext;
-import org.apache.batik.dom.util.XMLSupport;
-import org.w3c.dom.Element;
-import org.w3c.dom.svg.SVGDocument;
-import org.xml.sax.Attributes;
-import org.apache.batik.bridge.UnitProcessor;
-import org.apache.batik.util.SVGConstants;
-
-import org.w3c.dom.DOMImplementation;
-
-import org.apache.batik.dom.svg.SVGDOMImplementation;
-
-import java.net.URL;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import org.apache.fop.apps.*;
-
-/**
- * class representing the SVG root element
- * for constructing an svg document.
- */
-public class SVGElement extends SVGObj {
-
-    /**
-     * Constructs an SVG object
-     *
-     * @param parent the parent formatting object
-     */
-    public SVGElement(FONode parent) {
-        super(parent);
-    }
-
-    /**
-     * Handle the xml attributes from SAX.
-     * @param attlist the attribute list
-     * @throws FOPException not thrown from here
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-        init();
-    }
-
-    /**
-     * Get the dimensions of this XML document.
-     * @param view the viewport dimensions
-     * @return the dimensions of this SVG document
-     */
-    public Point2D getDimension(final Point2D view) {
-
-        // TODO - change so doesn't hold onto fo,area tree
-        Element svgRoot = element;
-        /* create an SVG area */
-        /* if width and height are zero, get the bounds of the content. */
-
-        try {
-            String baseDir = userAgent.getBaseURL();
-            if (baseDir != null) {
-                ((SVGOMDocument)doc).setURLObject(new URL(baseDir));
-            }
-        } catch (Exception e) {
-            getLogger().error("Could not set base URL for svg", e);
-        }
-
-        Element e = ((SVGDocument)doc).getRootElement();
-        final float ptmm = userAgent.getPixelUnitToMillimeter();
-        // temporary svg context
-        SVGContext dc = new SVGContext() {
-            public float getPixelToMM() {
-                return ptmm;
-            }
-            public float getPixelUnitToMillimeter() {
-                return ptmm;
-            }
-
-            public Rectangle2D getBBox() {
-                return new Rectangle2D.Double(0, 0, view.getX(), view.getY());
-            }
-
-            /**
-             * Returns the transform from the global transform space to pixels.
-             */
-            public AffineTransform getScreenTransform() {
-                throw new UnsupportedOperationException("NYI");
-            }
-
-            /**
-             * Sets the transform to be used from the global transform space
-             * to pixels.
-             */
-            public void setScreenTransform(AffineTransform at) {
-                throw new UnsupportedOperationException("NYI");
-            }
-
-            public AffineTransform getCTM() {
-                return new AffineTransform();
-            }
-
-            public AffineTransform getGlobalTransform() {
-                return new AffineTransform();
-            }
-
-            public float getViewportWidth() {
-                return (float)view.getX();
-            }
-
-            public float getViewportHeight() {
-                return (float)view.getY();
-            }
-
-            public float getFontSize() {
-                return 12;
-            }
-        };
-        ((SVGOMElement)e).setSVGContext(dc);
-
-        //if (!e.hasAttributeNS(XMLSupport.XMLNS_NAMESPACE_URI, "xmlns")) {
-            e.setAttributeNS(XMLSupport.XMLNS_NAMESPACE_URI, "xmlns",
-                                SVGDOMImplementation.SVG_NAMESPACE_URI);
-        //}
-        int fontSize = 12;
-        Point2D p2d = getSize(fontSize, svgRoot, userAgent.getPixelUnitToMillimeter());
-       ((SVGOMElement)e).setSVGContext(null);
-
-        return p2d;
-    }
-
-    private void init() {
-        DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
-        String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
-        doc = impl.createDocument(svgNS, "svg", null);
-
-        element = doc.getDocumentElement();
-
-        buildTopLevel(doc, element);
-    }
-
-    /**
-     * Get the size of the SVG root element.
-     * @param size the font size
-     * @param svgRoot the svg root element
-     * @param ptmm the pixel to millimeter conversion factor
-     * @return the size of the SVG document
-     */
-    public static Point2D getSize(int size, Element svgRoot, float ptmm) {
-        String str;
-        UnitProcessor.Context ctx;
-        ctx = new PDFUnitContext(size, svgRoot, ptmm);
-        str = svgRoot.getAttributeNS(null, SVGConstants.SVG_WIDTH_ATTRIBUTE);
-        if (str.length() == 0) {
-            str = "100%";
-        }
-        float width = UnitProcessor.svgHorizontalLengthToUserSpace
-            (str, SVGConstants.SVG_WIDTH_ATTRIBUTE, ctx);
-
-        str = svgRoot.getAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE);
-        if (str.length() == 0) {
-            str = "100%";
-        }
-        float height = UnitProcessor.svgVerticalLengthToUserSpace
-            (str, SVGConstants.SVG_HEIGHT_ATTRIBUTE, ctx);
-        return new Point2D.Float(width, height);
-    }
-
-    /**
-     * This class is the default context for a particular
-     * element. Informations not available on the element are get from
-     * the bridge context (such as the viewport or the pixel to
-     * millimeter factor.
-     */
-    public static class PDFUnitContext implements UnitProcessor.Context {
-
-        /** The element. */
-        private Element e;
-        private int fontSize;
-        private float pixeltoMM;
-
-        /**
-         * Create a PDF unit context.
-         * @param size the font size.
-         * @param e the svg element
-         * @param ptmm the pixel to millimeter factor
-         */
-        public PDFUnitContext(int size, Element e, float ptmm) {
-            this.e = e;
-            this.fontSize = size;
-            this.pixeltoMM = ptmm;
-        }
-
-        /**
-         * Returns the element.
-         * @return the element
-         */
-        public Element getElement() {
-            return e;
-        }
-
-        /**
-         * Returns the context of the parent element of this context.
-         * Since this is always for the root SVG element there never
-         * should be one...
-         * @return null
-         */
-        public UnitProcessor.Context getParentElementContext() {
-            return null;
-        }
-
-        /**
-         * Returns the pixel to mm factor. (this is deprecated)
-         * @return the pixel to millimeter factor
-         */
-        public float getPixelToMM() {
-            return pixeltoMM;
-        }
-
-        /**
-         * Returns the pixel to mm factor.
-         * @return the pixel to millimeter factor
-         */
-        public float getPixelUnitToMillimeter() {
-            return pixeltoMM;
-        }
-
-        /**
-         * Returns the font-size value.
-         * @return the default font size
-         */
-        public float getFontSize() {
-            return fontSize;
-        }
-
-        /**
-         * Returns the x-height value.
-         * @return the x-height value
-         */
-        public float getXHeight() {
-            return 0.5f;
-        }
-
-        /**
-         * Returns the viewport width used to compute units.
-         * @return the default viewport width of 100
-         */
-        public float getViewportWidth() {
-            return 100;
-        }
-
-        /**
-         * Returns the viewport height used to compute units.
-         * @return the default viewport height of 100
-         */
-        public float getViewportHeight() {
-            return 100;
-        }
-    }
-
-    public void acceptVisitor(FOTreeVisitor fotv) {
-        fotv.serveVisitor(this);
-    }
-
-}
-
diff --git a/src/java/org/apache/fop/svg/SVGElementMapping.java b/src/java/org/apache/fop/svg/SVGElementMapping.java
deleted file mode 100644 (file)
index 3c95852..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * $Id: SVGElementMapping.java,v 1.24 2003/03/07 09:51:25 jeremias Exp $
- * ============================================================================
- *                    The Apache Software License, Version 1.1
- * ============================================================================
- * 
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- * 
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if any, must
- *    include the following acknowledgment: "This product includes software
- *    developed by the Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself, if
- *    and wherever such third-party acknowledgments normally appear.
- * 
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- *    endorse or promote products derived from this software without prior
- *    written permission. For written permission, please contact
- *    apache@apache.org.
- * 
- * 5. Products derived from this software may not be called "Apache", nor may
- *    "Apache" appear in their name, without prior written permission of the
- *    Apache Software Foundation.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- * 
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */ 
-package org.apache.fop.svg;
-
-import java.util.HashMap;
-
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.ElementMapping;
-import org.apache.fop.apps.FOFileHandler;
-
-import org.apache.batik.util.XMLResourceDescriptor;
-import org.apache.batik.dom.svg.SVGDOMImplementation;
-
-/**
- * Setup the SVG element mapping.
- * This adds the svg element mappings used to create the objects
- * that create the SVG Document.
- */
-public class SVGElementMapping extends ElementMapping {
-    private boolean batik = true;
-
-    public SVGElementMapping() {
-        namespaceURI = SVGDOMImplementation.SVG_NAMESPACE_URI;
-    }
-
-    protected void initialize() {
-        if (foObjs == null && batik == true) {
-            // this sets the parser that will be used
-            // by default (SVGBrokenLinkProvider)
-            // normally the user agent value is used
-            try {
-                XMLResourceDescriptor.setXMLParserClassName(
-                  FOFileHandler.getParserClassName());
-    
-                foObjs = new HashMap();
-                foObjs.put("svg", new SE());
-                foObjs.put(DEFAULT, new SVGMaker());
-            } catch (Throwable t) {
-                // if the classes are not available
-                // the DISPLAY is not checked
-                batik = false;
-            }
-        }
-    }
-
-    static class SVGMaker extends ElementMapping.Maker {
-        public FONode make(FONode parent) {
-            return new SVGObj(parent);
-        }
-    }
-
-    static class SE extends ElementMapping.Maker {
-        public FONode make(FONode parent) {
-            return new SVGElement(parent);
-        }
-    }
-}
diff --git a/src/java/org/apache/fop/svg/SVGObj.java b/src/java/org/apache/fop/svg/SVGObj.java
deleted file mode 100644 (file)
index 8016821..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id: SVGObj.java,v 1.12 2003/03/07 09:51:25 jeremias Exp $
- * ============================================================================
- *                    The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- *    include the following acknowledgment: "This product includes software
- *    developed by the Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself, if
- *    and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- *    endorse or promote products derived from this software without prior
- *    written permission. For written permission, please contact
- *    apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- *    "Apache" appear in their name, without prior written permission of the
- *    Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.svg;
-
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.XMLObj;
-import org.apache.fop.fo.FOTreeVisitor;
-
-/**
- * Class for SVG element objects.
- * This aids in the construction of the SVG Document.
- */
-public class SVGObj extends XMLObj {
-    /**
-     * constructs an svg object (called by Maker).
-     *
-     * @param parent the parent formatting object
-     */
-    public SVGObj(FONode parent) {
-        super(parent);
-    }
-
-    /**
-     * Get the namespace for svg.
-     * @return the svg namespace
-     */
-    public String getNameSpace() {
-        return "http://www.w3.org/2000/svg";
-    }
-
-    public void acceptVisitor(FOTreeVisitor fotv) {
-        fotv.serveVisitor(this);
-    }
-
-}
-
diff --git a/src/java/org/apache/fop/svg/SVGUserAgent.java b/src/java/org/apache/fop/svg/SVGUserAgent.java
deleted file mode 100644 (file)
index e84c8e1..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * $Id: SVGUserAgent.java,v 1.14 2003/03/07 09:51:25 jeremias Exp $
- * ============================================================================
- *                    The Apache Software License, Version 1.1
- * ============================================================================
- * 
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- * 
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if any, must
- *    include the following acknowledgment: "This product includes software
- *    developed by the Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself, if
- *    and wherever such third-party acknowledgments normally appear.
- * 
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- *    endorse or promote products derived from this software without prior
- *    written permission. For written permission, please contact
- *    apache@apache.org.
- * 
- * 5. Products derived from this software may not be called "Apache", nor may
- *    "Apache" appear in their name, without prior written permission of the
- *    Apache Software Foundation.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- * 
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */ 
-package org.apache.fop.svg;
-
-import org.apache.fop.apps.FOUserAgent;
-
-import org.apache.batik.bridge.UserAgentAdapter;
-
-import org.apache.avalon.framework.logger.Logger;
-
-// Java
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Dimension2D;
-import java.awt.Dimension;
-
-/**
- * The SVG user agent.
- * This is an implementation of the batik svg user agent
- * for handling errors and getting user agent values.
- */
-public class SVGUserAgent extends UserAgentAdapter {
-    private AffineTransform currentTransform = null;
-    private FOUserAgent userAgent;
-
-    /**
-     * Creates a new SVGUserAgent.
-     * @param ua the FO user agent
-     * @param at the current transform
-     */
-    public SVGUserAgent(FOUserAgent ua, AffineTransform at) {
-        currentTransform = at;
-        userAgent = ua;
-    }
-
-    /**
-     * Returns the logger associated with this user agent.
-     * @return Logger the logger
-     */
-    protected final Logger getLogger() {
-        return this.userAgent.getLogger();
-    }
-
-    /**
-     * Displays an error message.
-     * @param message the message to display
-     */
-    public void displayError(String message) {
-        getLogger().error(message);
-    }
-
-    /**
-     * Displays an error resulting from the specified Exception.
-     * @param ex the exception to display
-     */
-    public void displayError(Exception ex) {
-        getLogger().error("SVG Error" + ex.getMessage(), ex);
-    }
-
-    /**
-     * Displays a message in the User Agent interface.
-     * The given message is typically displayed in a status bar.
-     * @param message the message to display
-     */
-    public void displayMessage(String message) {
-        getLogger().info(message);
-    }
-
-    /**
-     * Shows an alert dialog box.
-     * @param message the message to display
-     */
-    public void showAlert(String message) {
-        getLogger().warn(message);
-    }
-
-    /**
-     * Returns a customized the pixel to mm factor.
-     * @return the pixel unit to millimeter conversion factor
-     */
-    public float getPixelUnitToMillimeter() {
-        return userAgent.getPixelUnitToMillimeter();
-    }
-
-    /**
-     * Returns the language settings.
-     * @return the languages supported
-     */
-    public String getLanguages() {
-        return "en"; // userLanguages;
-    }
-
-    /**
-     * Returns the media type for this rendering.
-     * @return the media for fo documents is "print"
-     */
-    public String getMedia() {
-        return "print";
-    }
-
-    /**
-     * Returns the user stylesheet uri.
-     * @return null if no user style sheet was specified.
-     */
-    public String getUserStyleSheetURI() {
-        return null; // userStyleSheetURI;
-    }
-
-    /**
-     * Returns the class name of the XML parser.
-     * @return the XML parser class name
-     */
-    public String getXMLParserClassName() {
-        return org.apache.fop.apps.FOFileHandler.getParserClassName();
-    }
-
-    /**
-     * Is the XML parser validating.
-     * @return true if the xml parser is validating
-     */
-    public boolean isXMLParserValidating() {
-        return false;
-    }
-
-    /**
-     * Get the transform of the svg document.
-     * @return the transform
-     */
-    public AffineTransform getTransform() {
-        return currentTransform;
-    }
-
-    /**
-     * Get the default viewport size for an svg document.
-     * This returns a default value of 100x100.
-     * @return the default viewport size
-     */
-    public Dimension2D getViewportSize() {
-        return new Dimension(100, 100);
-    }
-
-}
-