Jeremias Maerki [Wed, 19 Jan 2005 21:48:12 +0000 (21:48 +0000)]
"fixed" block-containers implemented.
PDFState was cleaned up, simplified and refactored to support a "break-out" mechanism that allows to temporarily break out of the current viewport context.
Support for sending comments to the PDF stream for debugging purposes.
Jeremias Maerki [Mon, 17 Jan 2005 10:38:02 +0000 (10:38 +0000)]
block-containers improved/fixed. The following features are implemented and testcases exist:
left, right, top, bottom, width, height, block-progression-dimension (partial), inline-progression-dimension (partial), borders, padding, indents, reference-orientation.
autoheight works only for in-flow BCs ATM.
start-indent calculation fixed: uses inherited value if rules in 5.3.2 don't apply.
Jeremias Maerki [Thu, 13 Jan 2005 07:04:00 +0000 (07:04 +0000)]
Removed Simon's line again and added an explanation why that line shouldn't be there.
Added java.awt.headless="true" to the forked JUnit tests to satisfy Gump.
Jeremias Maerki [Wed, 12 Jan 2005 12:03:00 +0000 (12:03 +0000)]
Removed the "inheritedStartIndent" hack again.
Switched to start|end-indent-oriented calculation.
Improved line painting in the PDFRenderer.
Some improvements in BlockContainerLayoutManager (but still WIP ATM).
Jeremias Maerki [Wed, 12 Jan 2005 11:36:30 +0000 (11:36 +0000)]
Fix for keyword substitutions for enum properties. Check came too late evaluating the substituted value to a string instead of an enum value. (I found the problem in writing-mode)
Glen Mazza [Tue, 11 Jan 2005 00:07:52 +0000 (00:07 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
1.) EnumProperty starting-state implemented.
2.) Switch from "makeEnumProperty" to slightly more intuitive "getEnumProperty" in FOPropertyMapping.
3.) Removed no longer used canHaveIds array in PropertySets.
Glen Mazza [Sun, 9 Jan 2005 12:47:40 +0000 (12:47 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
1.) New attributeWarning() method added to FONode (needs to be renamed somehow because can this method can also be used for formatting object warnings as well--e.g., unimplemented FO's)
2.) Switch from processNode() -> bind() method for fo:bookmark.
Jeremias Maerki [Fri, 7 Jan 2005 08:21:21 +0000 (08:21 +0000)]
Bugfix for start-indent calculation for nested blocks. The inherited start-indent wasn't taken into account as described in 5.3.2 of the spec.
Minor style and javadoc improvements on the way.
Jeremias Maerki [Thu, 6 Jan 2005 19:20:37 +0000 (19:20 +0000)]
Fork JUnit test in new VM. (Maybe this fixes classpath problems with commons-logging when Xalan compiles again).
Added layout engine tests specifying a default exclusion file.
To disable the exclusion file add the following line to your build-local.properties:
layoutengine.disabled=
Jeremias Maerki [Thu, 6 Jan 2005 19:17:51 +0000 (19:17 +0000)]
Add ability to optionally specify a simple textfile with a list of filenames of testcases to be disabled (one entry per line).
Specify a filename with that textfile in the system property "fop.layoutengine.disabled".
disabled-testcases.txt should serve as our default file for this purpose (ex. in Gump).
Jeremias Maerki [Thu, 6 Jan 2005 09:46:55 +0000 (09:46 +0000)]
Ability to restrict the testcases being processed to one for debugging. Just specify its filename as a system property "fop.layoutengine.single".
Example: -Dfop.layoutengine.single=padding2.xml
Jeremias Maerki [Wed, 5 Jan 2005 21:11:34 +0000 (21:11 +0000)]
Initial version of a layout engine testing subsystem.
Uses the area tree XML to check the output of the layout engine.
Provides a TestSuite for use with JUnit.
Individual test cases are defined in XML files.
Jeremias Maerki [Mon, 3 Jan 2005 13:06:27 +0000 (13:06 +0000)]
Access to intrinsic image size for eg/ifo through getLayoutDimension() instead of through separate interface.
Added a todo item about replacing the use of propertyList along with a reference to the related post on fop-dev.
Made the LayoutDimension keys a subclass of Avalon Framework's Enum to make the thing more debugger-friendly and more type-safe.
Glen Mazza [Sun, 2 Jan 2005 20:42:51 +0000 (20:42 +0000)]
Switched from fox:bookmarks to fo:bookmark-tree (of XSL 1.1 2WD). Two more
bookmark-related FO's (fox:outline and fox:label) need conversion and will
be done next.
Simon Pepping [Mon, 27 Dec 2004 10:13:05 +0000 (10:13 +0000)]
Changed LayoutManagerMaker.makeLayoutManager(FONode node) to throw a
FOPException, and removed LayoutManagerMaker.makeLayoutManager(FONode
node, boolean checkLength). Adapted LayoutManagerMapping,
PageSequenceLM and AreaTreeHandler.
Simon Pepping [Fri, 24 Dec 2004 12:06:26 +0000 (12:06 +0000)]
This patch implements a pluggable LayoutManagers system, according
to the ideas of Finn Bock and his patch in bug 30500.
Created a LayoutManagerMaker interface, with method
makeLayoutManagers(FONode, List), and two convenience methods on top
of it.
Created an implementation: LayoutManagerMapping. This is along the
pattern of FOElementMapping. It creates a Map from FObj class to Maker
objects. There are many static inner classes which are subclasses of
Maker. Each subclass implements its own version of the make method.
FOUserAgent has a setter and getter for
LayoutManagerMakerOverride. AreaTreeHandler creates a
LayoutManagerMaker, taking the user's override into account, using
LayoutManagerMapping as the default. It has a get method for it.
The LayoutManager interface has a get method for the AreaTreeHandler
object, a reference to which is held in PageSequenceLM, the top of the
LM tree.
Simon Pepping [Wed, 22 Dec 2004 18:22:35 +0000 (18:22 +0000)]
Fixed the NPE for fo:title in FOText.createBlockPointers by returning
early.
Fixed the absence of output for fo:title: In ContentLM.fillArea, replace
curLM.getNextBreakPoss with getNextKnuthElements, BreakPossIter with
KnuthPossIter. Copied the line parameter calculations from
LineLM.makeLineBreakPosition. This is only a rough patch: leaders,
external graphics, page numbers cause null pointer exceptions.
Simon Pepping [Wed, 22 Dec 2004 08:54:10 +0000 (08:54 +0000)]
Removed instances of InlineStackingLayoutManager. Created a new FO
node class, InlineLevel, a subclass of FObjMixed, a base class for
several inline-level FObj: Inline, Leader, Title. The
InlineLayoutManager constructor requires an FObj of this type.
Simon Pepping [Tue, 21 Dec 2004 11:28:05 +0000 (11:28 +0000)]
Implemented cloning and reparenting of the subtree under a marker to
the retrieving retrieve-marker. The FO nodes are cloned. The new
subtree is attached to the RetrieveMarker object. The property
lists are not cloned. The subtree of property lists is attached to the
property list of the RetrieveMarker object. This is only needed for
the binding of the FO nodes. After that a subsequent retrieve-marker
may reparent the property lists.
Removed Marker's reference to its property list. In Marker.endOfNode()
the parent of the property lists of the direct children of marker is
reset to null. FOText nodes are not mapped to the Marker's property
list in Marker. This allows the Marker's property list and its
ancestors to be GC'ed.
FOText nodes use the parent FO node's property list or the
RetrieveMarker's property list for binding.
TODO: Block.handleWhiteSpace is not applied to text in retrieve-marker.
TODO: White space treatment around retrieve-marker is incorrect.
Glen Mazza [Thu, 16 Dec 2004 01:03:04 +0000 (01:03 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Removed Runnable interface from PSLM; new method "activateLayout()" combines
former run() and doLayout() methods in PSLM.
Luca Furini [Thu, 9 Dec 2004 15:53:36 +0000 (15:53 +0000)]
* created a new method which is called only once by LineLM.getNextBreakPoss() and subsequently calls findBreakingPoints() with different parameters until a set of breaking point is found
* renamed lastDeactivatedNode -> bestDeactivatedNode, and updated only if the node to deactivate is "better" than the old one (may need some fine-tuning)
* instead of the fallback() method, which created only one lineBreakPosition, a
new algorithm is used if Knuth's fails
Simon Pepping [Tue, 7 Dec 2004 20:11:21 +0000 (20:11 +0000)]
Removed RetrieveMarkerLM. The LMs of the marker children are attached
in the LM tree as the direct children of the LM of the parent of the
RetrieveMarker. This patch solves bug 32253.