keiron 01/06/20 02:17:40 Modified: src/org/apache/fop/svg SVGObj.java Added: src/org/apache/fop/svg XMLObj.java Log: allows better for other xml data Revision Changes Path 1.5 +4 -91 xml-fop/src/org/apache/fop/svg/SVGObj.java Index: SVGObj.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/svg/SVGObj.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SVGObj.java 2001/06/13 16:06:21 1.4 +++ SVGObj.java 2001/06/20 09:17:39 1.5 @@ -1,4 +1,4 @@ -/* $Id: SVGObj.java,v 1.4 2001/06/13 16:06:21 keiron Exp $ +/* $Id: SVGObj.java,v 1.5 2001/06/20 09:17:39 keiron Exp $ * 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. @@ -8,27 +8,14 @@ // 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 @@ -37,83 +24,9 @@ public SVGObj(FObj parent, PropertyList propertyList) { 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"; } } 1.1 xml-fop/src/org/apache/fop/svg/XMLObj.java Index: XMLObj.java =================================================================== /* $Id: XMLObj.java,v 1.1 2001/06/20 09:17:39 keiron Exp $ * 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) { } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]