Author: ltheussl
Date: Tue May 12 20:16:56 2009
New Revision: 774059

URL: http://svn.apache.org/viewvc?rev=774059&view=rev
Log:
include toc sub-items in files to process

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java?rev=774059&r1=774058&r2=774059&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
 Tue May 12 20:16:56 2009
@@ -23,6 +23,7 @@
 import java.io.IOException;
 import java.io.Writer;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
@@ -193,7 +194,13 @@
     private void mergeSourcesFromTOC( DocumentTOC toc, FoAggregateSink sink )
             throws IOException, DocumentRendererException
     {
-        for ( Iterator k = toc.getItems().iterator(); k.hasNext(); )
+        parseTocItems( toc.getItems(), sink );
+    }
+
+    private void parseTocItems( List items, FoAggregateSink sink )
+            throws IOException, DocumentRendererException
+    {
+        for ( Iterator k = items.iterator(); k.hasNext(); )
         {
             DocumentTOCItem tocItem = (DocumentTOCItem) k.next();
 
@@ -214,28 +221,39 @@
                 href = href.substring( 0, href.lastIndexOf( "." ) );
             }
 
-            for ( Iterator i = siteModuleManager.getSiteModules().iterator(); 
i.hasNext(); )
+            renderModules( href, sink, tocItem );
+
+            if ( tocItem.getItems() != null )
             {
-                SiteModule module = (SiteModule) i.next();
-                File moduleBasedir = new File( getBaseDir(), 
module.getSourceDirectory() );
+                parseTocItems( tocItem.getItems(), sink );
+            }
+        }
+    }
 
-                if ( moduleBasedir.exists() )
-                {
-                    String doc = href + "." + module.getExtension();
-                    File source = new File( moduleBasedir, doc );
+    private void renderModules( String href, FoAggregateSink sink, 
DocumentTOCItem tocItem )
+            throws DocumentRendererException, IOException
+    {
+        for ( Iterator i = siteModuleManager.getSiteModules().iterator(); 
i.hasNext(); )
+        {
+            SiteModule module = (SiteModule) i.next();
+            File moduleBasedir = new File( getBaseDir(), 
module.getSourceDirectory() );
+
+            if ( moduleBasedir.exists() )
+            {
+                String doc = href + "." + module.getExtension();
+                File source = new File( moduleBasedir, doc );
 
-                    if ( source.exists() )
+                if ( source.exists() )
+                {
+                    if ( getLogger().isDebugEnabled() )
                     {
-                        if ( getLogger().isDebugEnabled() )
-                        {
-                            getLogger().debug( "Parsing file " + source );
-                        }
+                        getLogger().debug( "Parsing file " + source );
+                    }
 
-                        sink.setDocumentName( doc );
-                        sink.setDocumentTitle( tocItem.getName() );
+                    sink.setDocumentName( doc );
+                    sink.setDocumentTitle( tocItem.getName() );
 
-                        parse( source.getPath(), module.getParserId(), sink );
-                    }
+                    parse( source.getPath(), module.getParserId(), sink );
                 }
             }
         }


Reply via email to