cvs commit: xml-fop/src/org/apache/fop/svg XMLObj.java
keiron 01/06/21 07:33:23 Modified:src/org/apache/fop/svg XMLObj.java Log: added a few extra useful methods Revision ChangesPath 1.2 +47 -5 xml-fop/src/org/apache/fop/svg/XMLObj.java Index: XMLObj.java === RCS file: /home/cvs/xml-fop/src/org/apache/fop/svg/XMLObj.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- XMLObj.java 2001/06/20 09:17:39 1.1 +++ XMLObj.java 2001/06/21 14:33:18 1.2 @@ -1,4 +1,4 @@ -/* $Id: XMLObj.java,v 1.1 2001/06/20 09:17:39 keiron Exp $ +/* $Id: XMLObj.java,v 1.2 2001/06/21 14:33:18 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. @@ -24,8 +24,8 @@ */ public abstract class XMLObj extends FObj { -String tagName = ""; -String[] props = {}; +protected String tagName = ""; +protected String[] props = {}; /** * * @param parent the parent formatting object @@ -40,8 +40,7 @@ protected static Hashtable ns = new Hashtable(); public void addGraphic(Document doc, Element parent) { -Element element = doc.createElementNS(getNameSpace(), - tagName); +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) { @@ -76,6 +75,49 @@ } } +public void buildTopLevel(Document doc, Element svgRoot) { +// build up the info for the top level element +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) +svgRoot.setAttributeNS(null, props[count], rf); +} +} +//doc.appendChild(topLevel); +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, svgRoot); +} else if (child instanceof String) { +org.w3c.dom.Text text = doc.createTextNode((String) child); +svgRoot.appendChild(text); +} +} +} + +public Document createBasicDocument() { +Document doc = null; + +Element svgRoot = null; +try { +//DOMImplementation impl = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation(); +//String ns = GraphElementMapping.URI; +//doc = impl.createDocument(ns, "graph", null); +doc = javax.xml.parsers.DocumentBuilderFactory.newInstance(). + newDocumentBuilder().newDocument(); +Element el = doc.createElement("graph"); +doc.appendChild(el); + +svgRoot = doc.getDocumentElement(); +buildTopLevel(doc, svgRoot); + +} catch (Exception e) { +e.printStackTrace(); +} +return doc; +} /** * layout this formatting object. * - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/org/apache/fop/svg XMLObj.java SVGObj.java
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 ChangesPath 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 ===