Keiron Liddle wrote:
> Of course, but how can we make it understandable.

The problems I had
- I was not able to follow the control flow. Too many
   classes/instances involved in even a few lines of
   code, too many indirections through custom iterators.
   I had to insert a few dumpStack(), which I did only
   once before (in Excalibur of course).
- Too many classes in general.
- Deep inheritance trees.
- Parallel object/inheritance trees.
- The state of some important objects is smeared across
   classes in the inheritance tree as well as auxillary
   classes.
- Inconsistent and in some cases plainly misleading
   packages.
- A few misleading comments.
- Distracting style issues.

Some hints to possibly improve it:
- Will layout managers ever be about something else that
   break possibilities? If not, discard the BPLayoutManager
   and the AbstractBPLayoutManager from the hierarchy.
   (Otherwise, why is LeafNodeLayoutManager not directly
   derived from AbstractLayoutManager?)
- Will positions ever be used to indicate something
   else that break possiblities? If not, use BreakPoss
   and LeafBreakPoss and NonLeafBreakPoss instead. This
   way it should also be possible to get rid of
   BreakPossPosIterator.
- In general, encapsulate iterators otherwise, at
   least do not use them in method signatures as parameters.
- Do something about the responsibilities of
   StructureHandler, AreaTree and Renderer.
- In general, don't be too greedy and derive a class from
   another to inherit a few short methods. Dont overuse
   inheritance for code reuse.
- Make methods abstract if they are abstract instead of
   providing an empty implementation (resetPosition() in
   particular).

>>I took a stab at the static content layout and ...
..it does not work, because BlockLayoutManager inherits
the no-op implementation of resetPosition() from
Abstract...whatever...LayoutManager. Therefore, the
block(s) in the static content are never reset, and
the content is only printed on the first page :-(
This should be easy to fix for you.

>>Actually, how is "unlimited" expressed in MinOptMax terms?
> I could imagine that it might adjust to the size of the region. So if
> larger it uses min value etc.

Static content is laid out after the main flow, so the
page viewport should already have been adjusted to the
real page if necessary.

J.Pietschmann


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to