On 26.03.2005 16:05:46 Andreas L. Delmelle wrote:
> > -----Original Message-----
> > From: Jeremias Maerki [mailto:[EMAIL PROTECTED]
> >
> 
> <snip />
> > I haven't understood everything you wrote, yet. I think there's a spark
> > of an idea in there but ATM I can't get hold of it. I'd appreciate if
> > you could look at the current table layout code.
> 
> Just did.
> 
> > The change from first-fit to Knuth approach doesn't invalidate much of it.
> 
> Indeed not. What I'm referring to goes more in the direction of 'interaction
> between FOTree and Layout', not so much the workings of the Layout system
> itself --although it's bound to have *some* impact on it, this should be
> minimal (and may even facilitate some of the work, but that's still a
> question-mark for me)
> It appears to me more an alternative to the current solution for bridging
> the gap between tables with and without table-rows.
> 
> Currently both possiblities lead to the same structure in the FOTree, which
> is perfectly legitimate --RenderX performs table-normalizing in a
> pre-processing XSLT step, which deals with this amongst others (if I
> remember correctly.. I only had a very quick look and that was quite some
> time ago.)
> 
> However, instead of mapping both possibilities to a structure with rows, we
> could go almost the other way round by using a structure with cells as
> direct descendants from the body, where the first cell of each row would be
> a special type (a subclass of TableCell?) that has the ability to store the
> row's properties (if fo:table-rows are explicitly used). The 'starts-row'
> property is there anyway, so it can be put to good use...

You may not have a first cell for every row. Take this example:

table
  table-body
    table-row
      cell rowspan=3
      cell rowspan=2
    table-row height=50
    table-row height=20
      cell

In this example you don't have a first cell for the second row. If in
collapsing border model, the second row has a dominant border for start
and end edges, you're in trouble. Of course, this is a constructed
example, but maybe there are also real-world cases that may prove
problematic. A more realistic example would be a dominant border in the
third row for the after edge. You need to have a way to collect all
relevant borders for each border segment and I currently don't see how
you would do that.

> In the Layout Tree the RowLM's initialization would be triggered by these
> row-starting cells, but the RowLM would operate on the cells as direct
> descendants of the body. So the RowLM's cell-list would not correspond to
> the unique list of descendants of a corresponding TableRow, but rather to a
> sublist of the unique list of descendants of its parentLM's
> TableBody/-Header/-Footer. (IOW: the RowLM's could be made re-usable; at
> least, there would not *necessarily* have to be a one-to-one relation
> between fo:table-row, TableRow and RowLM --although it still remains
> possible where it *is* needed.)
> 
> I'm still not sure whether it makes sense...

I understand your idea but I don't see (yet) how this can work out. For
the moment anyway, I have a different problem. I still need too figure
out how to handle page breaking for tables in the Knuth model. This
seems to be a rather critical point to me ATM. It all sounds nice and
easy in theory but I'm currently at a loss determining how to actually
implement it in a not too complicated way.


Jeremias Maerki

Reply via email to