pentaho/pentaho-reporting — pull request #325 by tmorgner (2014-02-10 16:28:54+00:00)
Title: PRD-4760 - Fixing design-time mode for hidden elements.

Fixing design-time mode of PRD-4760.

The report designer depends on the layouter for its design-mode
and cannot edit nodes that have no layout. When hiding elements,
the engine optimizes the layout model and removes all invisible
nodes, if those nodes have no effect in the resulting layout.
This confuses the report-designer who expects to see a layout for
each node in the report.

This change adds some special handling at design-time.

If a node is invisible, not needed for the layout and would
ordinarily be removed during the generation phase, the engine
now treats the nodes as invisible. During design-time layouting
they do not consume space in their parent, but their contents
are laid out normally.

Invisible nodes within a row-layout band can be potentially
important for the layout. If the "invisible-consumes-space"
style is set on the parent, these nodes will be laid out as
if they are not invisible, and the report designer just skips
them during the rendering process.

Most of this commit concerns computing the "visible" flag,
and then slapping if-statements around to stop the layouter
from updating widths and heights for invisible child elements.