cvs commit: xml-fop/src/documentation/content/xdocs/dev implement.xml

2003-04-06 Thread vmote
vmote   2003/04/06 21:58:52

  Modified:src/documentation/content/xdocs/dev implement.xml
  Log:
  Fix table rows.
  
  Revision  ChangesPath
  1.2   +4 -2  xml-fop/src/documentation/content/xdocs/dev/implement.xml
  
  Index: implement.xml
  ===
  RCS file: /home/cvs/xml-fop/src/documentation/content/xdocs/dev/implement.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- implement.xml 7 Apr 2003 04:43:41 -   1.1
  +++ implement.xml 7 Apr 2003 04:58:52 -   1.2
  @@ -31,15 +31,17 @@
   
   
 The SAX events that the parser creates are handled by 
fo.FOTreeBuilder, which uses startElement(), 
endElement(), and characters() methods to build the FO 
Tree.
  +
  +
 fo.FOTreeBuilder.endElement() runs the end() method for each 
node as it is created. The fo.pagination.PageSequence class overrides this 
end() method to run apps.LayoutHandler.endPageSequence(), which in turn runs 
fo.pagination.PageSequence.format().
 the end of a PageSequence element causes the PageSequence object to 
be passed to apps.StreamRenderer.render, which in turn runs 
fo.pagination.PageSequence.format.
   
   
  -  
  +  .
 fo.pagination.PageSequence.addFlow() programatically adds a 
Flow object to the page sequence.
   
   
  -  
  +  .
 fo.pagination.PageSequence.makePage() creates a BodyArea and passes 
it to fo.Flow.layout
   
   
  
  
  

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



cvs commit: xml-fop/src/documentation/content/xdocs/dev implement.xml book.xml

2003-04-06 Thread vmote
vmote   2003/04/06 21:43:41

  Modified:src/documentation/content/xdocs/design book.xml
   src/documentation/content/xdocs/dev book.xml
  Added:   src/documentation/content/xdocs/dev implement.xml
  Removed: src/documentation/content/xdocs/design architecture.xml
  Log:
  Move design/architecture.xml to dev/implement.xml.
  
  Revision  ChangesPath
  1.7   +0 -3  xml-fop/src/documentation/content/xdocs/design/book.xml
  
  Index: book.xml
  ===
  RCS file: /home/cvs/xml-fop/src/documentation/content/xdocs/design/book.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- book.xml  24 Mar 2003 21:37:20 -  1.6
  +++ book.xml  7 Apr 2003 04:43:41 -   1.7
  @@ -14,9 +14,6 @@
 
 
   
  -
  -  
  -
   
 
 
  
  
  
  1.14  +1 -0  xml-fop/src/documentation/content/xdocs/dev/book.xml
  
  Index: book.xml
  ===
  RCS file: /home/cvs/xml-fop/src/documentation/content/xdocs/dev/book.xml,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- book.xml  7 Apr 2003 04:22:59 -   1.13
  +++ book.xml  7 Apr 2003 04:43:41 -   1.14
  @@ -11,6 +11,7 @@
 
 
 
  +  
   
   
 
  
  
  
  1.1  xml-fop/src/documentation/content/xdocs/dev/implement.xml
  
  Index: implement.xml
  ===
  
  http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd";>
  

  Implementation Overview
  Following a Document Through FOP
  

  


  The purpose of this document is to tie together the FOP design (interface) 
with some of the key points where control is passed within FOP (implementation), so 
that developers can quickly find the section of code that is relevant to their needs. 
The process described is for a "typical" command-line document. All classes are in 
org.apache.fop unless otherwise designated.
  
Overview
The input FO document is sent to the FO tree builder via SAX events. 
Fragments of an FO Tree are built from this process. As each page-sequence element is 
completed, it is passed to a layout processor, which in turn converts it into an Area 
Tree. The Area Tree is then given to the Renderer, which converts it into a stream of 
data containing the output document. The sections below will provide additional 
details. Where needed differences between the trunk and maintenance branches are shown 
in tabular format.
  
  
Startup

  The job starts in apps.Fop.main().
  Control is passed to apps.CommandLineStarter.run().
  Control is passed to apps.Driver.render(). This class fires up 
a SAX parser, the events from which indirectly control the remaining processing, 
including building the FO Tree, building the Area Tree, rendering, output and 
logging.

  
  
Formatting Object Tree

  
TrunkMaintenance
  
  
The SAX events that the parser creates are handled by 
fo.FOTreeBuilder, which uses startElement(), 
endElement(), and characters() methods to build the FO 
Tree.
fo.FOTreeBuilder.endElement() runs the end() method for each 
node as it is created. The fo.pagination.PageSequence class overrides this 
end() method to run apps.LayoutHandler.endPageSequence(), which in turn runs 
fo.pagination.PageSequence.format().
the end of a PageSequence element causes the PageSequence object to be 
passed to apps.StreamRenderer.render, which in turn runs 
fo.pagination.PageSequence.format.
  
  

fo.pagination.PageSequence.addFlow() programatically adds a 
Flow object to the page sequence.
  
  

fo.pagination.PageSequence.makePage() creates a BodyArea and passes it 
to fo.Flow.layout
  
  
the layout process is then driven from 
fo.pagination.PageSequence.format.
  

  
  
Layout
There are layout managers for each type of layout decision.
  They take an FO Tree as input and build a laid-out Area Tree from it.
  The layout process involves finding out where line breaks and page breaks should be 
made, then creating the areas on the page.
  Static areas can then be added for any static regions.
  As pages are completed, they are added to the Area Tree.
  
  
Area Tree
The area tree is a data structure designed to hold the page areas.
  These pages are then filled with the page regions and various areas.
  The area tree is used primarily as a minimal structure that can be rendered
  by the rendere