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]

Reply via email to