git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196705 13f79535-47bb-0310-9956-ffa450edef68pull/30/head
@@ -3,34 +3,34 @@ | |||
* ============================================================================ | |||
* 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 | |||
@@ -42,12 +42,12 @@ | |||
* (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; | |||
// Java | |||
@@ -68,7 +68,7 @@ import org.apache.fop.util.CharUtilities; | |||
* | |||
*/ | |||
public abstract class FONode { | |||
/** FO User Agent for this node (for logger etc.)*/ | |||
protected FOUserAgent userAgent; | |||
/** Parent FO node */ | |||
@@ -123,6 +123,11 @@ public abstract class FONode { | |||
public void setStructHandler(StructureHandler st) { | |||
} | |||
/** | |||
* Do something with the attributes for this element | |||
* @param attlist Collection of attributes passed to us from the parser. | |||
* @throws FOPException for errors or inconsistencies in the attributes | |||
*/ | |||
public void handleAttrs(Attributes attlist) throws FOPException { | |||
} | |||
@@ -3,34 +3,34 @@ | |||
* ============================================================================ | |||
* 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 | |||
@@ -42,12 +42,12 @@ | |||
* (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; | |||
// FOP | |||
@@ -64,13 +64,21 @@ import org.apache.fop.layoutmgr.InlineStackingLayoutManager; | |||
import org.apache.fop.layoutmgr.LMiter; | |||
/** | |||
* Class modelling the fo:title object. See Sec. 6.4.20 in the XSL-FO Standard. | |||
*/ | |||
public class Title extends FObjMixed { | |||
/** | |||
* @param parent FONode that is the parent of this object | |||
*/ | |||
public Title(FONode parent) { | |||
super(parent); | |||
} | |||
/** | |||
* TODO: shouldn't this code be in Layout?? | |||
* @return the Title area | |||
*/ | |||
public org.apache.fop.area.Title getTitleArea() { | |||
org.apache.fop.area.Title title = | |||
new org.apache.fop.area.Title(); | |||
@@ -94,7 +102,7 @@ public class Title extends FObjMixed { | |||
return title; | |||
} | |||
public void setup() { | |||
private void setup() { | |||
// Common Accessibility Properties | |||
AccessibilityProps mAccProps = propMgr.getAccessibilityProps(); |
@@ -3,34 +3,34 @@ | |||
* ============================================================================ | |||
* 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 | |||
@@ -42,33 +42,45 @@ | |||
* (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; | |||
/** | |||
* This represents an unknown element. | |||
* For example with unsupported namespaces. | |||
* Class for handling an unknown element, for example one from an unsupported | |||
* namespace. | |||
* This prevents any further problems arising from the unknown | |||
* data. | |||
*/ | |||
public class Unknown extends FONode { | |||
/** | |||
* Inner class for handling the creation of Unknown objects | |||
*/ | |||
public static class Maker extends ElementMapping.Maker { | |||
/** | |||
* @param parent the FONode that is the parent of the object to be | |||
* created | |||
* @return the created Unknown object | |||
*/ | |||
public FONode make(FONode parent) { | |||
return new Unknown(parent); | |||
} | |||
} | |||
/** | |||
* @param parent FONode that is the parent of this object | |||
*/ | |||
public Unknown(FONode parent) { | |||
super(parent); | |||
} | |||
public void setup() { | |||
private void setup() { | |||
getLogger().debug("Layout Unknown element"); | |||
} | |||
} |
@@ -3,34 +3,34 @@ | |||
* ============================================================================ | |||
* 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 | |||
@@ -42,44 +42,65 @@ | |||
* (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; | |||
/** | |||
* Class for handling generic XML from a namespace not recognized by FOP | |||
*/ | |||
public class UnknownXMLObj extends XMLObj { | |||
private String namespace; | |||
/** | |||
* Inner class for an UnknownXMLObj Maker | |||
*/ | |||
public static class Maker extends ElementMapping.Maker { | |||
private String space; | |||
/** | |||
* Construct the Maker | |||
* @param sp the namespace for this Maker | |||
*/ | |||
public Maker(String sp) { | |||
space = sp; | |||
} | |||
/** | |||
* Make an instance | |||
* @param parent FONode that is the parent of the object | |||
* @return the created UnknownXMLObj | |||
*/ | |||
public FONode make(FONode parent) { | |||
return new UnknownXMLObj(parent, space); | |||
} | |||
} | |||
/** | |||
* constructs an unknown xml object (called by Maker). | |||
* Constructs an unknown xml object (called by Maker). | |||
* | |||
* @param parent the parent formatting object | |||
* @param propertyList the explicit properties of this object | |||
* @param space the namespace for this object | |||
*/ | |||
protected UnknownXMLObj(FONode parent, String space) { | |||
super(parent); | |||
this.namespace = space; | |||
} | |||
/** | |||
* @see XMLObj#getNameSpace | |||
*/ | |||
public String getNameSpace() { | |||
return this.namespace; | |||
} | |||
/** | |||
* @see XMLObj#addChild | |||
*/ | |||
protected void addChild(FONode child) { | |||
if (doc == null) { | |||
createBasicDocument(); | |||
@@ -87,6 +108,9 @@ public class UnknownXMLObj extends XMLObj { | |||
super.addChild(child); | |||
} | |||
/** | |||
* @see XMLObj#addCharacters | |||
*/ | |||
protected void addCharacters(char data[], int start, int length) { | |||
if (doc == null) { | |||
createBasicDocument(); |
@@ -3,34 +3,34 @@ | |||
* ============================================================================ | |||
* 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 | |||
@@ -42,12 +42,12 @@ | |||
* (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; | |||
// Java | |||
@@ -63,35 +63,45 @@ import javax.xml.parsers.DocumentBuilderFactory; | |||
import org.apache.fop.apps.FOPException; | |||
/** | |||
* Generic XML object. | |||
* This is used by xml objects (other than fo) than will build a DOM | |||
* with each element. | |||
* Abstract class modelling generic, non-XSL-FO XML objects. Such objects are | |||
* stored in a DOM. | |||
*/ | |||
public abstract class XMLObj extends FONode { | |||
// temp reference for attributes | |||
private Attributes attr = null; | |||
/** DOM element representing this node */ | |||
protected Element element; | |||
/** DOM document containing this node */ | |||
protected Document doc; | |||
/** | |||
* | |||
* @param parent the parent formatting object | |||
* @param propertyList the explicit properties of this object | |||
*/ | |||
public XMLObj(FONode parent) { | |||
super(parent); | |||
} | |||
/** | |||
* @param str name of the element | |||
*/ | |||
public void setName(String str) { | |||
name = str; | |||
} | |||
/** | |||
* Store the attributes for this element | |||
* @param attlist Collection of attributes passed to us from the parser. | |||
* @throws FOPException for errors in the attributes | |||
*/ | |||
public void handleAttrs(Attributes attlist) throws FOPException { | |||
attr = attlist; | |||
} | |||
/** | |||
* @return DOM document representing this foreign XML | |||
*/ | |||
public Document getDocument() { | |||
return doc; | |||
} | |||
@@ -100,17 +110,29 @@ public abstract class XMLObj extends FONode { | |||
return null; | |||
} | |||
/** | |||
* @return string containing the namespace for this node | |||
*/ | |||
public abstract String getNameSpace(); | |||
/** | |||
* @return string containing the namespace for this document (which is the | |||
* same namespace as for this node ??) | |||
*/ | |||
public String getDocumentNamespace() { | |||
return getNameSpace(); | |||
} | |||
protected static HashMap ns = new HashMap(); | |||
private static HashMap ns = new HashMap(); | |||
static { | |||
ns.put("xlink", "http://www.w3.org/1999/xlink"); | |||
} | |||
/** | |||
* Add an element to the DOM document | |||
* @param doc DOM document to which to add an element | |||
* @param parent the parent element of the element that is being added | |||
*/ | |||
public void addElement(Document doc, Element parent) { | |||
this.doc = doc; | |||
element = doc.createElementNS(getNameSpace(), name); | |||
@@ -135,6 +157,11 @@ public abstract class XMLObj extends FONode { | |||
parent.appendChild(element); | |||
} | |||
/** | |||
* Add the top-level element to the DOM document | |||
* @param doc DOM document | |||
* @param svgRoot non-XSL-FO element to be added as the root of this document | |||
*/ | |||
public void buildTopLevel(Document doc, Element svgRoot) { | |||
// build up the info for the top level element | |||
for (int count = 0; count < attr.getLength(); count++) { | |||
@@ -155,6 +182,10 @@ public abstract class XMLObj extends FONode { | |||
} | |||
} | |||
/** | |||
* Create an empty DOM document | |||
* @return DOM document | |||
*/ | |||
public Document createBasicDocument() { | |||
doc = null; | |||
@@ -174,6 +205,9 @@ public abstract class XMLObj extends FONode { | |||
return doc; | |||
} | |||
/** | |||
* @param child FONode child that should be added to this node | |||
*/ | |||
protected void addChild(FONode child) { | |||
if (child instanceof XMLObj) { | |||
((XMLObj)child).addElement(doc, element); | |||
@@ -185,6 +219,12 @@ public abstract class XMLObj extends FONode { | |||
} | |||
} | |||
/** | |||
* Add parsed characters to this object | |||
* @param data array of characters contaning the text to add | |||
* @param start starting array element to add | |||
* @param length number of characters from the array to add | |||
*/ | |||
protected void addCharacters(char data[], int start, int length) { | |||
String str = new String(data, start, length - start); | |||
org.w3c.dom.Text text = doc.createTextNode(str); |