gmazza      2004/09/06 11:28:17

  Modified:    src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java
               src/java/org/apache/fop/fo/pagination Root.java
  Log:
  Switched to a static FOInputHandler object for the FOTree instead of relying on 
recursion to get to the FOInputHandler object stored at pagination.Root.
  
  Revision  Changes    Path
  1.43      +15 -1     xml-fop/src/java/org/apache/fop/fo/FONode.java
  
  Index: FONode.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- FONode.java       5 Sep 2004 04:00:51 -0000       1.42
  +++ FONode.java       6 Sep 2004 18:28:17 -0000       1.43
  @@ -41,6 +41,12 @@
   
       protected static String FO_URI = FOElementMapping.URI;
   
  +    /** 
  +     * FOInputHandler that handles FO events occurring 
  +     * during FO Tree processing.
  +     */
  +    protected static FOInputHandler foInputHandler = null;
  +
       /** Parent FO node */
       protected FONode parent;
   
  @@ -73,12 +79,20 @@
       }
   
       /**
  +     * Sets the FOInputHandler that the FOTree processing fires events to
  +     * @param inputHandler the FOInputHandler subclass to send FO events to
  +     */
  +    public static void setFOInputHandler(FOInputHandler inputHandler) {
  +        FONode.foInputHandler = inputHandler;
  +    } 
  +
  +    /**
        * Recursively goes up the FOTree hierarchy until the fo:root is found,
        * which returns the parent FOInputHandler.
        * @return the FOInputHandler object that is the parent of the FO Tree
        */
       public FOInputHandler getFOInputHandler() {
  -        return parent.getFOInputHandler();
  +        return FONode.foInputHandler;
       }
   
       /**
  
  
  
  1.47      +1 -1      xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java
  
  Index: FOTreeBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- FOTreeBuilder.java        5 Sep 2004 04:00:51 -0000       1.46
  +++ FOTreeBuilder.java        6 Sep 2004 18:28:17 -0000       1.47
  @@ -217,6 +217,7 @@
        */
       public void startDocument() throws SAXException {
           rootFObj = null;    // allows FOTreeBuilder to be reused
  +        FONode.setFOInputHandler(foInputHandler);
           if (log.isDebugEnabled()) {
               log.debug("Building formatting object tree");
           }
  @@ -273,7 +274,6 @@
   
           if (rootFObj == null) {
               rootFObj = (Root) foNode;
  -            rootFObj.setFOInputHandler(foInputHandler);
           } else {
               currentFObj.addChildNode(foNode);
           }
  
  
  
  1.25      +0 -25     xml-fop/src/java/org/apache/fop/fo/pagination/Root.java
  
  Index: Root.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Root.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- Root.java 4 Sep 2004 19:53:07 -0000       1.24
  +++ Root.java 6 Sep 2004 18:28:17 -0000       1.25
  @@ -49,11 +49,6 @@
        */
       private int runningPageNumberCounter = 0;
   
  -    /** 
  -     * Controlling FOTreeHandler object for this FO Tree
  -     */
  -    private FOInputHandler foInputHandler = null;
  -
       /**
        * @see org.apache.fop.fo.FONode#FONode(FONode)
        */
  @@ -200,26 +195,6 @@
        */
       public Bookmarks getBookmarks() {
           return bookmarks;
  -    }
  -
  -    /**
  -     * Sets the Document that this Root is attached to
  -     * @param document the apps.Document implementation to which this Root
  -     * is attached
  -     */
  -    public void setFOInputHandler(FOInputHandler foInputHandler) {
  -        this.foInputHandler = foInputHandler;
  -    }
  -
  -    /**
  -     * This method overrides the FONode version. The FONode version calls the
  -     * method by the same name for the parent object. Since Root is at the top
  -     * of the tree, it returns the actual FOInputHandler object. Thus, any FONode
  -     * can use this chain to find which FOInputHandler it is being built for.
  -     * @return the FOInputHandler implementation that this Root is attached to
  -     */
  -    public FOInputHandler getFOInputHandler() {
  -        return foInputHandler;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to