Send the ID of the producing FO to the area tree as trait where possible.
This is useful for testing and may later be interesting for FO editor implementors and for other things where you want to identify the generating FO from a particular object in the output.
Test space-after, too, in list4.
Cloned list4 to list4a which is modified slightly to check for differing min/opt/max values. This one currently breaks as it is not properly handled, yet.
Updated disabled testcases.
Bugzilla #35534
space-* production for list-item.
Fixed the testcase to provide more accurate testing. The .optimum way currently doesn't work, as the page breaker seems to always use the .minimum value (which is 0pt) and the addAreas stage currently doesn't take this into account.
Made Service a stand-alone class so it can be reused.
Made XMLHandler discoverable through the Service class.
Moved XMLHandler collection into new XMLHandlerRegistry class.
Adjusted the Renderers and XMLHandler to the above changes.
This should make it easier to write certain FOP extensions. The changes were triggered by my work on the FOP extension for Barcode4J for the FOP Trunk.
Buzilla #35787
When checking for content overflow, don't include border and padding.
Clearer warning message in case of height constraint violation on table-rows.
Dynamic classpath setup in case not all required dependencies are available in the given classpath.
Useful when starting FOP using "java -jar fop.jar". This is actually a replacement for the manifest "Class-Path" entry and even picks up additional JARs it finds.
Fix for allowing empty table-cells (for relaxed validation).
Row heights were not always set, especially when there was no content to make the effective rows grow in height.
Bugzilla #35749:
IDs on fo:wrapper didn't register on the pages because fo:wrapper didn't have an LM that does that job for it.
The new LM for wrapper creates a dummy area so addId() can be triggered. No area is actually sent to the area tree. The WrapperLM is simply inserted before its children.
Bugfix: Proper handling of page break between normally broken parts and the parts that need to be balanced. (multi-column layout, fixes multi-column2a)
Bugfix: Corrected the calculation of the full length of the section to be broken. Could lead to strange results.
Own private logger for easier debugging.
Column balancing seems to work now.
I had to modify BreakingAlgorithm to add best records for parts which are too short.
Furthermore, it took an additional computed value to tweak the balancing. It effectively makes shorter trailing parts preferred.
Test case for Bugzilla issue: http://issues.apache.org/bugzilla/show_bug.cgi?id=35656
(specifying column widths through the first table row as described in CSS2)
Jeremias Maerki [Thu, 30 Jun 2005 11:55:46 +0000 (11:55 +0000)]
Bugzilla #35561
Print quality improvement especially for printing. The implementations don't create a bitmap image anymore, but draw directly.
Submitted by: Richard Wheeldon <richardw@geoquip-rnd.demon.co.uk>
Jeremias Maerki [Wed, 29 Jun 2005 21:01:45 +0000 (21:01 +0000)]
Fixed checks or FO of footnotes2 and page-number3 to compensate for the fixed page-number and page-number-citation LMs.
Extended checks on linelayout2.xml and enabled it.
Jeremias Maerki [Wed, 29 Jun 2005 13:15:43 +0000 (13:15 +0000)]
Bugfix: IPD for footnote region now correct in multi-column layout.
Next step at multi-column layout:
- A multi-column section that needs column balancing is normally rendered until the next-to-last page. The rest of the element are re-broken by a special balancing page breaker.
- Multiple spans supported in area tree and through break handling.
- There are still problems with footnotes and column balancing.
- Main layout loop changed to render an element list right after it's broken. The block lists are not collected anymore and then rendered.
Bugfix: PageViewportProvider had a one-off (when accessing through "relative to current element list")
Jeremias Maerki [Wed, 29 Jun 2005 13:14:55 +0000 (13:14 +0000)]
My first laughable attempt at a page breaker for balancing columns. Doesn't work if the element list fits into the first available area and doesn't balance exactly like I would like it to when the balancing actually gets active.
But it's better than nothing to start with.
Jeremias Maerki [Wed, 29 Jun 2005 12:41:31 +0000 (12:41 +0000)]
notifyFlowsFinished() indirectly used by multi-column layout to determine the restart point after span changes.
getRemainingBPD() is used by the page breaking process in multi-column layout (multiple spans).
Jeremias Maerki [Mon, 27 Jun 2005 18:00:17 +0000 (18:00 +0000)]
This is a work-around for the missing TOC on the FAQ page.
The FAQ stylesheet generates exactly one top-level section ("Questions") and multiple nested sections. Therefore, setting the min-sections value to "3" disables the TOC for the FAQ page. It would be great if one could override this value on a single page to force the TOC to appear.
Jeremias Maerki [Wed, 22 Jun 2005 14:59:54 +0000 (14:59 +0000)]
breaks supported on tables, table-row and table-cell content now. Cheap approach for now. TableContentLM is not yet restartable, but the Breaker handles that pretty well.
Improved page break handling to support the different break classes even if no new block sequence is started.
Jeremias Maerki [Tue, 21 Jun 2005 12:04:12 +0000 (12:04 +0000)]
Test cases showing ClassCastExceptions with fo:blocks inside fo:inline and fo:wrapper because InlineLayoutManager currently doesn't expect block-level nodes.
Jeremias Maerki [Mon, 20 Jun 2005 09:02:42 +0000 (09:02 +0000)]
Bugzilla: #35358
Fixed the following:
Dialog appearing when panel embedded in custom apps.
NullPointerExceptions when embedding PreviewPanel.
PreviewPanel docs inaccurate.
Submitted by: Richard Wheeldon <richardw.at.geoquip-rnd.demon.co.uk>
Jeremias Maerki [Wed, 15 Jun 2005 12:24:01 +0000 (12:24 +0000)]
Bugzilla: #35358
Improvements on Viewer application:
- Separated out the preview panels and control logic from the buttons and dialog to make it easier to use elsewhere.
- Added a continuous scrolling mode similar to that used by acrobat reader. Also added continuous facing mode.
- Added fit-width and fit-to-page zoom options.
Submitted by: Richard Wheeldon <richardw.at.geoquip-rnd.demon.co.uk>
Jeremias Maerki [Wed, 15 Jun 2005 09:08:35 +0000 (09:08 +0000)]
Page breaking process now respects changing available BPD (not IPD) over multiple pages.
PageSequenceMaster allows backtracking.
PageViewports are delivered through a PageViewportProvider class which caches PVs and handles cases where the breaking algorithm allocates PVs that turn out to be unused later (because of hard breaks which may cause blank pages, for example).
Glen Mazza [Fri, 10 Jun 2005 03:56:49 +0000 (03:56 +0000)]
Removed unused functions. Team, I switched from generatesInlineAreas() calls
to "instanceof InlineLevelLayoutManager", because AFAICT there is a 1-to-1 mapping
between the two. If no one has problems with this, I will be removing
the generatesInlineAreas() implementations next.