Hi there,

after being silent for I while, I have some questions, only to be sure. First 
one is raised by the following table column attributes:

width=1.1; width=3pt; null; width=22%; width=19mm;

I implemented it like this:

1. determine smallest fixed width
2. if no smallest fixed width is given:
2.1 sum up all weights
2.2 divide table's total width by sum of weights
2.3 muliply each weight with this factor
3. else
3.1 multiply all weights with the smalles fixed width
3.2 sum up all percentages
3.3 determine width of 1% based on available fixed widths (1., 3.1)
3.4 multiply all percentages with 1%-width

So according to the numbers above the widths will be (mpt):

Correct any of the decisions if I'm wrong. I made some dirty hack to get the 
right unit from anonymous Length-interface-realizations (instanceof-operator) 
and found PercentLength.value()-method in a twilight zone (cite: "really 
necessary?"), every other Length-realization is able to return the "naked" 
value (TableColLength.getTableUnits(), FixedLength.getValue()<- no context!). 
Is there another way calculating the widths more "polite" (I don't like 
instanceof-operations, casts and that sort of thing, Length should be able to 
return the unit and the value, in addition to a value filtered through the 

I'm quite unsatisfied, due to the fact, that I did nothing RTF-specific until 
now. Did I re-invent the column-width-algorithm, is it hidden somewhere and 
already working fine? (I've attached the fo.flow.TableColumn to the 
rtf.TableContext and calculated the widths when the first row starts, maybe the 
Table should do this on it's own, being a column container, returning the 
widths if needed...which would lead to a stateful parser instead of 
re-programming the same state-objects and  -transitions for every rendering 
engine....). It's getting more and more like a basic LayoutManager (being 
nested, holding fo.flow-objects, doing some calculations...)

Thanks for any comment, maybe I'll finish this chapter this week, opening some 
sort of discussion about moving some basic functionalities to a more abstract 
level. Thanks for being patient...

"Jetzt Handykosten senken mit klarmobil - 14 Ct./Min.! Hier klicken"

Reply via email to