Container Controls

A
nother important class of control are the container controls. They are controls which take several other controls as arguments (in the constructor). The output of the container control includes the output of all  of its subcontrols. The main difference between a container control and a conditional control, is that the output of a conditional control depends on the outputs of some  of its subcontrols.

The simplest example of a container control is a CoalesceControl whose output is simply the concatenation of the outputs of all its subcontrols. This is very useful and helps one masquerade several controls as one.

Another example of a container control is the TableContainerControl, which outputs an entire table. It has as subcontrols RowContainerControls which output rows of a table. So the output of a TableContainerControl is just a pair of <TABLE> ... </TABLE> where ... is the output of all the RowContainerControls. Well almost since it is the TableContainerControl which is incharge of outputting the table header and the table attributes. In our implementation of a TableContainerControl, it even messes with the RowContainerControls it contains.

For more example of container controls, see utils/controls/containercontrols.