]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Remove storage of apps/FOUserAgent from fo/FONode in favor of storing it once in...
authorWilliam Victor Mote <vmote@apache.org>
Tue, 2 Sep 2003 13:56:40 +0000 (13:56 +0000)
committerWilliam Victor Mote <vmote@apache.org>
Tue, 2 Sep 2003 13:56:40 +0000 (13:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196888 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/apps/Document.java
src/java/org/apache/fop/apps/Driver.java
src/java/org/apache/fop/fo/FONode.java
src/java/org/apache/fop/fo/FOTreeBuilder.java
src/java/org/apache/fop/fo/FOTreeControl.java
src/java/org/apache/fop/fo/FObjMixed.java
src/java/org/apache/fop/fo/extensions/svg/SVGElement.java
src/java/org/apache/fop/fo/flow/ExternalGraphic.java
src/java/org/apache/fop/layoutmgr/AddLMVisitor.java

index 5d985bb16c89989c9cc5dc9ac87a22ad1b7b37dd..b5efd34eb6a648314d9cc94e655aeb19660117c9 100644 (file)
@@ -58,6 +58,8 @@ import java.util.HashSet;
 
 
 // FOP
+import org.apache.fop.apps.FOUserAgent;
+
 import org.apache.fop.area.AreaTree;
 import org.apache.fop.area.AreaTreeModel;
 
@@ -74,6 +76,9 @@ import org.apache.fop.layout.LayoutStrategy;
 // SAX
 import org.xml.sax.SAXException;
 
+// Avalon
+import org.apache.avalon.framework.logger.Logger;
+
 /**
  * Class storing information for the FOP Document being processed, and managing
  * the processing of it.
@@ -397,4 +402,18 @@ public class Document implements FOTreeControl, FOTreeListener {
         return foInputHandler;
     }
 
+    /**
+     * @return the Logger to be used for processing this Document
+     */
+    public Logger getLogger() {
+        return getDriver().getLogger();
+    }
+
+    /**
+     * @return the FOUserAgent used for processing this document
+     */
+    public FOUserAgent getUserAgent() {
+        return getDriver().getUserAgent();
+    }
+
 }
index 94f5cd93f595c778508ff2058b6e8a9f01f03805..2661204474904f24ae994e17d61e93924fa5dab0 100644 (file)
@@ -274,7 +274,7 @@ public class Driver implements LogEnabled {
         userAgent = agent;
     }
 
-    private FOUserAgent getUserAgent() {
+    protected FOUserAgent getUserAgent() {
         if (userAgent == null) {
             userAgent = new FOUserAgent();
             userAgent.enableLogging(getLogger());
index 079ee5d9c9167190cb965306ce5bcf418cecf0f5..a7d63904ce3cf66b615b12df3eda918aca033efe 100644 (file)
@@ -69,9 +69,6 @@ import org.apache.fop.apps.FOUserAgent;
  *
  */
 public abstract class FONode {
-
-    /** FO User Agent for this node (for logger etc.)*/
-    protected FOUserAgent userAgent;
     /** Parent FO node */
     protected FONode parent;
     /** Name of the node */
@@ -98,15 +95,7 @@ public abstract class FONode {
      * @return the logger
      */
     public Logger getLogger() {
-        return userAgent.getLogger();
-    }
-
-    /**
-     * Sets the user agent for the node.
-     * @param ua the user agent
-     */
-    public void setUserAgent(FOUserAgent ua) {
-        userAgent = ua;
+        return getFOTreeControl().getLogger();
     }
 
     /**
@@ -114,7 +103,7 @@ public abstract class FONode {
      * @return FOUserAgent
      */
     public FOUserAgent getUserAgent() {
-        return userAgent;
+        return getFOTreeControl().getUserAgent();
     }
 
     /**
index a8b56cb76ccdc5e8092ac676f445758d689acbe9..d438d440adc334dcb6516f631de173d3ed2b5920 100644 (file)
@@ -278,11 +278,6 @@ public class FOTreeBuilder extends DefaultHandler {
         try {
             fobj = fobjMaker.make(currentFObj);
             fobj.setName(localName);
-            // set the user agent for resolving user agent values
-            fobj.setUserAgent(userAgent);
-            // set the structure handler so that appropriate
-            // elements can signal structure events
-
             fobj.handleAttrs(attlist);
         } catch (FOPException e) {
             throw new SAXException(e);
index 79621ffa347c350a1c764023cf8c8723f6f6642b..73ffa914b79ef503fd023dbdc95797ac4532ecd0 100644 (file)
@@ -56,9 +56,13 @@ import java.util.Map;
 import java.util.Set;
 
 // FOP
+import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.fo.extensions.Bookmarks;
 import org.apache.fop.fonts.FontMetrics;
 
+// Avalon
+import org.apache.avalon.framework.logger.Logger;
+
 /**
  * An interface for classes that are conceptually the parent class of the
  * fo.pagination.Root object. The purpose of the interface is to maintain
@@ -118,4 +122,15 @@ public interface FOTreeControl {
      * @return the FOInputHandler for parsing this FO Tree
      */
     FOInputHandler getFOInputHandler();
+
+    /**
+     * @return the Logger being used with this FO Tree
+     */
+    Logger getLogger();
+
+    /**
+     * @return the FOUserAgent used for processing this FO Tree
+     */
+    FOUserAgent getUserAgent();
+
 }
index 8d1096173389e97655e36856e3b4bd7f86e55901..aca9803f26ef14bd82175ce60ccf47e7204bed65 100644 (file)
@@ -79,7 +79,6 @@ public class FObjMixed extends FObj {
         }
 
         FOText ft = new FOText(data, start, length, textInfo, this);
-        ft.setUserAgent(userAgent);
         getFOTreeControl().getFOInputHandler().characters(ft.ca, ft.start, ft.length);
         addChild(ft);
     }
index 893a7204140ba4fadf3d0be00d64e7c9d02967fa..44d61c8009d77111ccd7af7e5d8fdd2019a3cc88 100644 (file)
@@ -114,7 +114,7 @@ public class SVGElement extends SVGObj {
         /* if width and height are zero, get the bounds of the content. */
 
         try {
-            String baseDir = userAgent.getBaseURL();
+            String baseDir = getUserAgent().getBaseURL();
             if (baseDir != null) {
                 ((SVGOMDocument)doc).setURLObject(new URL(baseDir));
             }
@@ -123,7 +123,7 @@ public class SVGElement extends SVGObj {
         }
 
         Element e = ((SVGDocument)doc).getRootElement();
-        final float ptmm = userAgent.getPixelUnitToMillimeter();
+        final float ptmm = getUserAgent().getPixelUnitToMillimeter();
         // temporary svg context
         SVGContext dc = new SVGContext() {
             public float getPixelToMM() {
@@ -179,7 +179,7 @@ public class SVGElement extends SVGObj {
                                 SVGDOMImplementation.SVG_NAMESPACE_URI);
         //}
         int fontSize = 12;
-        Point2D p2d = getSize(fontSize, svgRoot, userAgent.getPixelUnitToMillimeter());
+        Point2D p2d = getSize(fontSize, svgRoot, getUserAgent().getPixelUnitToMillimeter());
        ((SVGOMElement)e).setSVGContext(null);
 
         return p2d;
index e00bbffd9695243e23ed2347544322eec4816afd..8dff84d92fe8c2d89fa729bf9aefec158bc784c4 100644 (file)
@@ -151,14 +151,14 @@ public class ExternalGraphic extends FObj {
         int scaling = properties.get("scaling").getEnum();
         if ((scaling == Scaling.UNIFORM) || (cwidth == -1) || cheight == -1) {
             ImageFactory fact = ImageFactory.getInstance();
-            fopimage = fact.getImage(url, userAgent);
+            fopimage = fact.getImage(url, getUserAgent());
             if (fopimage == null) {
                 // error
                 url = null;
                 return;
             }
             // load dimensions
-            if (!fopimage.load(FopImage.DIMENSIONS, userAgent)) {
+            if (!fopimage.load(FopImage.DIMENSIONS, getUserAgent())) {
                 // error
                 url = null;
                 return;
index 911b5b4f288974546d952f4b95ca0efd74eea329..b884c5046832b0f9d27874abbe275b1d04981e73 100644 (file)
@@ -176,6 +176,7 @@ public class AddLMVisitor extends FOTreeVisitor {
         if (node.getChildren() != null) {
             InlineStackingLayoutManager lm;
             lm = new InlineStackingLayoutManager();
+            Document doc = (Document)node.getFOTreeControl();
             lm.setUserAgent(node.getUserAgent());
             lm.setFObj(node);
             lm.setLMiter(new LMiter(node.getChildren()));