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):
#0=3300
#1=3000
#2=3000
#3=17814
#4=53858
Correct any of the decisions if I'm wrong. I made some dirty hack to get the right unit from
anonymous Lengthinterfacerealizations (instanceofoperator) and found PercentLength.value()method
in a twilight zone (cite: "really necessary?"), every other Lengthrealization 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 instanceofoperations,
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 PercentBaseContext)?
I'm quite unsatisfied, due to the fact, that I did nothing RTFspecific until now. Did I reinvent
the columnwidthalgorithm, 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 reprogramming the same
stateobjects and transitions for every rendering engine....). It's getting more and more
like a basic LayoutManager (being nested, holding fo.flowobjects, 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"
www.klarmobil.de/index.html?pid=73025
