On Sun, Feb 15, 2004 at 04:41:46PM -0000, [EMAIL PROTECTED] wrote: > ------- Additional Comments From [EMAIL PROTECTED] 2004-02-15 16:41 ------- > Good catch Simon, thanks for taking time to look at it. The NPE is due to a > missing implementation of getNumeric() in RelativeNumericProperty (which should > contain "return this;"). > > I would guess that your example are using margins in a page context, so I have > made it return 20% of the page width. But margin-[top,bottom] also used page- > width but they should be using page-height as their base and that isn't handled > correctly yet. > > I'll attach a new patch which fixes the bugs you found and also merges the > different getters in FObj into a single getLayoutDimension().
I like the patch and the way RelativeNumericProperty holds and evaluates an expression tree (except my different preference for storing layout information, as discussed). This is really nice and works well: v = "(((0mpt +(4000mpt +20.0%)) +0mpt) +0mpt)" I found a few things that may need modification: In LengthBase.java: /** array of valid percent-based length types */ public static final int[] PERCENT_BASED_LENGTH_TYPES = { CUSTOM_BASE, FONTSIZE, INH_FONTSIZE, CONTAINING_BOX, CONTAINING_REFAREA } ; add BLOCK_WIDTH and BLOCK_HEIGHT (Is this variable used anywhere?) Block, BlockContainer, Table, Region, PageLayoutManager: getters and setters should be removed again? In LineLayoutManager.java: private Length iTextIndent; remove the i from the name; it stands for int. Regards, Simon Pepping -- Simon Pepping home page: http://www.leverkruid.nl