Seifeddine Dridi updated FOP-2293:
Thanks Vincent for you review,
I left some old code there because I felt like I might need it later, but with
the changes I've doing lately I guess none of it will be useful to me anymore.
MultiCase.isActuated: not sure what you have in mind here? A multi-case cannot
be actuated? Only a multi-toggle can. This method is used in
MultiSwitch.finalizeNode, but I don’t get the point of that latter method?
The name is misleading, I changed it to _hasToggle()_ . It returns _true_ if
the multi-case has a multi-toggle and _false_ otherwise. As for the
_finalizeNode()_ function, that's where I determine which multi-case to select.
In case my extension is enabled, I add them all.
I admit that this part of code still needs some polishing, but it's working
fine for now that's why I'm going to leave it like that until I finish
implementing the extension itself.
As for the changes in this patch:
I implemented a new class _WhiteSpaceManager_ which handles the remaining
whitespace at each page. It's better this way because the code is more
centralized now, and it becomes easier to add new features without messing up
the breaking algorithm. However, it remains challenging to add support for
multiple alternatives because of the dynamic nature of the Knuth algorithm --
we can't immediately know if the current alternative will be accepted without
peeking through the next elements -- so I left that case aside and focused on
making the extension work flawlessly with a single multi-case. And it is
working perfectly, as far as I have tested.
Until next time,
> Whitespace management extension
> Key: FOP-2293
> URL: https://issues.apache.org/jira/browse/FOP-2293
> Project: Fop
> Issue Type: New Feature
> Components: general
> Affects Versions: trunk
> Reporter: Seifeddine Dridi
> Priority: Minor
> Labels: XSL-FO
> Fix For: trunk
> Attachments: FO_multi-switch_best-fit_ext_rev2.patch,
> FO_multi-switch_best-fit_ext_rev3.patch, FO_multi-switch_test.fo,
> FO_multi-switch_with_best-fit_extension.patch, bestfit.fo, doc.pdf,
> multi-switch_bestfit.fo, multiple-feasible-nodes.fo, patch-rev1.1.patch,
> patch-rev1.patch, patch-rev2.patch, patch.patch
> I have been working on an extension for whitespace management, similar to
> what's described here:
> The logic of the extension is very simple: the user defines a set of
> alternatives that he wishes to insert at the end of a page, then if there is
> enough space left, FOP will pick the alternative that best matches the user's
> selection criteria (first fit, smallest fit, biggest fit).
> This is my first work on FOP and it took me almost 2 months to reach this
> stage in development. But it's not the end of course, so I'm relying on your
> feedback to improve it.
> Thank you
This message was sent by Atlassian JIRA