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
- Inconsistent and in some cases plainly misleading
- 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
- 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
>>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.
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]