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 ); } } }