Well, given that I wrote most of the new table layout code I'd be the one who knows exactly how it works (or at least I'm supposed to know). Anyway, at the moment I don't know what exactly I can contribute to get Andrejus better on his way. For getting the auto table layout feature right, you don't need to know too much about the inner workings of the table layout managers.
Also, don't concern yourself to much with the area tree while trying to understand table layout. The area tree is only the last step. The thing to focus on are the element lists created by LineLayoutManager. If you look at the current auto table patch you'll see which classes are really affected in the "table" package: TableLM and TableCellLM. No need to dive into TableContentLM or TableStepper which are complex beasts. Andrejus, I think it's best if you read all the threads here on fop-dev on auto table layout during August if have not already done so. They contain a lot of information about the next steps for the auto table layout and what has been discussed so far. http://www.nabble.com/-GSoC--Auto-table-layout-questions-tf1933306.html http://www.nabble.com/Q%3A-Line-layout--%3E-separating-element-list-creation---line-breaking-tf2148860.html On 05.10.2006 14:54:50 Simon Pepping wrote: > On Wed, Oct 04, 2006 at 11:18:22PM +0300, Andrejus Chaliapinas wrote: > > But that still doesn't answer the question - if there are some Knuth > > elements constructed - what is the best way to debug current Area Tree, > > which contains them? And if there any mechanism to protect particular Area > > Tree leafes (or graphs/branches) from additional restructure. Sorry if it's > > out of context, i.e. we should never bother with such kind of protection > > cause Knuth elements are pushed there during their processing. > > If you want to study the area tree that is created, use the area tree > output, command line option -at outfile: representation of area tree > as XML (outfile req'd). > > Protecting the area tree or parts thereof is not relevant. The area > tree is only constructed once. > > First the FO tree is constructed. Then the tree of LayoutManagers is > constructed. These construct the Knuth elements. Then the Line or Page > Breaker does its work. Then the LMs resume and construct the areas, > according to the line and page breaking results and according to the > content of their FOs, for which the Knuth elements contain > pointers. The PageSequenceLM directs the page layout process, the > LineLMs direct the paragraph layout process. The latter also happens > in the table cells. I believe the TableLM directs the whole layout > process of a table. This is where you want to enable auto table > layout. But I am not aware of all details of table layout. I hope > other FOP developers are able to help you. > > Regards, Simon > > -- > Simon Pepping > home page: http://www.leverkruid.eu Jeremias Maerki