https://issues.apache.org/bugzilla/show_bug.cgi?id=37579
--- Comment #57 from Dimitri Goloborodko <[email protected]> 2009-04-14 03:33:19 PST --- (In reply to comment #50) > (In reply to comment #49) > > (In reply to comment #48) > > > > > > AFAIU the reason why FootnoteBodyLM is re-parented is that it put its > > > areas at > > > the right place (as children of the footnote-reference-area, instead of > > > the > > > block containing the footnote). Simply moving the setParent call after > > > the call > > > to getNextKnuthElements makes the warnings disappear, and doesn't break > > > any > > > test. > > > Confirmation from specialists of this part of the code would be > > > appreciated ;-) > > > > Seems reasonable to me. Cleaner than overriding getParent() anyway. > > > > In the meantime, I've also been playing with adding an interface > > FootnoteCitationHolder. Such an interface could then be implemented by > > KnuthBlockBox and ActiveCell. The interface methods can be used by > > LineLayoutManager, PageBreaker, ListItemLayoutManager, TableStepper... > > > > The methods would roughly be: > > hasAnchors() > > getFootnoteBodyLMs() > > addFootnotes(List<KnuthElement>) > > addFootnotes(FootnoteCitationHolder) > > addFootnote(FootnoteCitationHolder.Citation) > > expandFootnotes(LayoutManager, LayoutContext, int) > > > > While this would still leave the related portions of code distributed over > > those classes, the interface makes it a bit easier to locate them in an IDE, > > and makes those pieces of code a bit more uniform. > > > > Most of the loops we see now, would move to KnuthBlockBox, as the only > > complete > > implementation. ActiveCell would only implement what is needed to make the > > citations accessible to the box created by TableStepper. Slight compromise > > in > > comparison to the last patch is that, in the iteration over the active > > cells, > > we would only create a temporary list with those having citations. If the > > list > > is empty, we create a regular box. If not, then we iterate over that > > temporary > > list of cells, and instruct the created KnuthBlockBox to add the citations > > from > > those cells. The same pattern can be used by ListItemLayoutManager: > > > > - create a temporary list of FootnoteCitationHolders for which hasAnchors() > > returns true > > - if non-empty, iterate over that temporary list > > - for each element, ask the higher level FootnoteCitationHolder > > (KnuthBlockBox) > > to extract the citations, and add them to its own list. > > > > I'll see if I can attach a patch to demonstrate one of these days. > > I've been asked to look into this issue, so I committed a partial and > temporary > fix based on the latest patch: > http://svn.apache.org/viewvc?view=rev&revision=660979 > Footnotes in table headers and footers are not handled yet, and anyway I think > it's best to wait for clarification from xsl-editors before implementing > anything (which gives us a couple of months ;-) ). > > That doesn't prevent you from exploring your ideas above, though. I await your > patch. > > Vincent I try to use the trunk 660979 and find a case, when a footnote defined in table-body disappears. An example of this is attached. I look for solution since some days, but don’t get much with my very modest knowledge of fop. Do you have any ideas about that? -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
