]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
allows better for other xml data
authorKeiron Liddle <keiron@apache.org>
Wed, 20 Jun 2001 09:17:39 +0000 (09:17 +0000)
committerKeiron Liddle <keiron@apache.org>
Wed, 20 Jun 2001 09:17:39 +0000 (09:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194300 13f79535-47bb-0310-9956-ffa450edef68

src/org/apache/fop/svg/SVGObj.java
src/org/apache/fop/svg/XMLObj.java [new file with mode: 0644]

index ca518e2ae8a909e163dfe8ae602ee784a820f07c..3b4c23814cd6ea27c8b846762c690091c265d78b 100644 (file)
@@ -8,27 +8,14 @@ package org.apache.fop.svg;
 
 // FOP
 import org.apache.fop.fo.*;
-import org.apache.fop.layout.Area;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.layout.LinkSet;
-
-import org.apache.batik.dom.svg.*;
-
-import org.w3c.dom.svg.*;
-import org.w3c.dom.*;
-
-import java.util.*;
 
 /**
  * Since SVG objects are not layed out then this class checks
  * that this element is not being layed out inside some incorrect
  * element.
  */
-public abstract class SVGObj extends FObj {
+public abstract class SVGObj extends XMLObj {
 
-    String tagName = "";
-    String[] props = {};
     /**
      *
      * @param parent the parent formatting object
@@ -38,82 +25,8 @@ public abstract class SVGObj extends FObj {
         super(parent, propertyList);
     }
 
-    protected static Hashtable ns = new Hashtable();
-
-    public void addGraphic(Document doc, Element parent) {
-        Element element = doc.createElementNS("http://www.w3.org/2000/svg",
-                                              tagName);
-        //        Element element = doc.createElement(tagName);
-        for (int count = 0; count < props.length; count++) {
-            if (this.properties.get(props[count]) != null) {
-                String rf = this.properties.get(props[count]).getString();
-                if (rf != null) {
-                    if (props[count].indexOf(":") == -1) {
-                        element.setAttribute(props[count], rf);
-                    } else {
-                        String pref = props[count].substring(0,
-                                                             props[count].indexOf(":"));
-                        if (pref.equals("xmlns")) {
-                            ns.put(props[count].substring(
-                                     props[count].indexOf(":") + 1), rf);
-                        }
-                        ns.put("xlink", "http://www.w3.org/1999/xlink");
-                        element.setAttributeNS((String) ns.get(pref),
-                                               props[count], rf);
-                    }
-                }
-            }
-        }
-        parent.appendChild(element);
-        int numChildren = this.children.size();
-        for (int i = 0; i < numChildren; i++) {
-            Object child = children.elementAt(i);
-            if (child instanceof SVGObj) {
-                ((SVGObj) child).addGraphic(doc, element);
-            } else if (child instanceof String) {
-                org.w3c.dom.Text text = doc.createTextNode((String) child);
-                element.appendChild(text);
-            }
-        }
-    }
-
-    /**
-     * layout this formatting object.
-     *
-     * @param area the area to layout the object into
-     * @return the status of the layout
-     */
-    public Status layout(Area area) throws FOPException {
-        /* generate a warning */
-        System.err.println("WARNING: " + this.name + " outside svg:svg");
-
-        /* return status */
-        return new Status(Status.OK);
-    }
-
-    /**
-     * These method overrides prevent problems with the different types.
-     */
-    public void setIsInTableCell() {
-    }
-
-    public void forceStartOffset(int offset) {
-    }
-
-    public void forceWidth(int width) {
-    }
-
-    public void resetMarker() {
-    }
-
-    public void setLinkSet(LinkSet linkSet) {
-    }
-
-    public Vector getMarkerSnapshot(Vector snapshot) {
-        return snapshot;
-    }
-
-    public void rollback(Vector snapshot) {
+    public String getNameSpace() {
+        return "http://www.w3.org/2000/svg";
     }
 }
 
diff --git a/src/org/apache/fop/svg/XMLObj.java b/src/org/apache/fop/svg/XMLObj.java
new file mode 100644 (file)
index 0000000..c19e86f
--- /dev/null
@@ -0,0 +1,118 @@
+/* $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.svg;
+
+// FOP
+import org.apache.fop.fo.*;
+import org.apache.fop.layout.Area;
+import org.apache.fop.layout.FontState;
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.layout.LinkSet;
+
+import org.w3c.dom.*;
+
+import java.util.*;
+
+/**
+ * Since SVG objects are not layed out then this class checks
+ * that this element is not being layed out inside some incorrect
+ * element.
+ */
+public abstract class XMLObj extends FObj {
+
+    String tagName = "";
+    String[] props = {};
+    /**
+     *
+     * @param parent the parent formatting object
+     * @param propertyList the explicit properties of this object
+     */
+    public XMLObj(FObj parent, PropertyList propertyList) {
+        super(parent, propertyList);
+    }
+
+    public abstract String getNameSpace();
+
+    protected static Hashtable ns = new Hashtable();
+
+    public void addGraphic(Document doc, Element parent) {
+        Element element = doc.createElementNS(getNameSpace(),
+                                              tagName);
+        //        Element element = doc.createElement(tagName);
+        for (int count = 0; count < props.length; count++) {
+            if (this.properties.get(props[count]) != null) {
+                String rf = this.properties.get(props[count]).getString();
+                if (rf != null) {
+                    if (props[count].indexOf(":") == -1) {
+                        element.setAttribute(props[count], rf);
+                    } else {
+                        String pref = props[count].substring(0,
+                                                             props[count].indexOf(":"));
+                        if (pref.equals("xmlns")) {
+                            ns.put(props[count].substring(
+                                     props[count].indexOf(":") + 1), rf);
+                        }
+                        ns.put("xlink", "http://www.w3.org/1999/xlink");
+                        element.setAttributeNS((String) ns.get(pref),
+                                               props[count], rf);
+                    }
+                }
+            }
+        }
+        parent.appendChild(element);
+        int numChildren = this.children.size();
+        for (int i = 0; i < numChildren; i++) {
+            Object child = children.elementAt(i);
+            if (child instanceof XMLObj) {
+                ((XMLObj) child).addGraphic(doc, element);
+            } else if (child instanceof String) {
+                org.w3c.dom.Text text = doc.createTextNode((String) child);
+                element.appendChild(text);
+            }
+        }
+    }
+
+    /**
+     * layout this formatting object.
+     *
+     * @param area the area to layout the object into
+     * @return the status of the layout
+     */
+    public Status layout(Area area) throws FOPException {
+        /* generate a warning */
+        System.err.println("WARNING: " + this.name + " outside foreign xml");
+
+        /* return status */
+        return new Status(Status.OK);
+    }
+
+    /**
+     * These method overrides prevent problems with the different types.
+     */
+    public void setIsInTableCell() {
+    }
+
+    public void forceStartOffset(int offset) {
+    }
+
+    public void forceWidth(int width) {
+    }
+
+    public void resetMarker() {
+    }
+
+    public void setLinkSet(LinkSet linkSet) {
+    }
+
+    public Vector getMarkerSnapshot(Vector snapshot) {
+        return snapshot;
+    }
+
+    public void rollback(Vector snapshot) {
+    }
+}
+