On Sep 4, 2008, at 10:03, Stefan Bund wrote:
Andreas Delmelle <[EMAIL PROTECTED]> writes:
Seems like a nice job you did here!
Thanks. Do you know, wether my assumptions are valid ? I've been
guessing my way along and it would be nice for someone in the know to
check up on the code.
From what you have described, it seems to be a valid approach, but
without looking at the actual code, it's still an impression only...
The only thing I'm slightly concerned with is that the proposed
solution would only work for PDF output (not for the AWT preview
panel, for example).
However, since it is by far the most popular output format, this is
not really a big issue. Supporting it for one format is still a lot
better than nothing at all. :-)
The quesetion is, how to make the code
available.
As I hinted, creating an 'svn diff' of the altered/added files, and
attaching it to a Bugzilla entry (https://issues.apache.org/bugzilla)
is the preferred option.
What I don't understand is, how the linking stuff in the renderers
integrates with the Resolvable stuff in the area tree. I do not add
any resolvables in the area tree for the SVG images.
The area tree is created by the layoutengine. When an area has to be
generated for a FO node that references another node by its
'id' (like a basic-link, or a page-number-citation), and the 'id' it
points to has not yet been associated to a previous page-viewport, a
Resolvable is created and added to the IdTracker. Upon generating an
area for a FO node with a given 'id', a check is performed to see if
any Resolvables exist that reference it. If the 'id' was already
added to a previous page, we don't need a Resolvable, as we can
immediately get the information we need.
As such, you don't need them, if you can resolve the links in the SVG
entirely at the rendering stage. As Jeremias did mention, if you need
to track them from the layoutengine (in which case the page they
point to may not exist yet in the area tree) then you would need a
Resolvable implementation to make sure the resolution is triggered
automatically when the corresponding 'id' is encountered on a
following page.
If you like, you can already open a Bugzilla entry for this, and
attach a diff against FOP Trunk there.
No problem. Only, what should I do when I later change the code
further? Followup on the Bugzilla entry with a new patch ?
Indeed. Upon adding a new attachment, you can mark the earlier
version as 'obsolete'.
Cheers
Andreas