setVisible(controller.determineVisibility());
// transfer visibility to direct children
originalVisibilityStatus = new HashMap<Component, Boolean>();
DirectChildTagIterator it = new DirectChildTagIterator(markupStream, openTag);
MarkupContainer controllerParent = getEnclosureParent();
while (it.hasNext())
{
ComponentTag t = it.next();
Component child = controllerParent.get(t.getId());
if (child != null)
{
// record original visiblity allowed value, will restore later
originalVisibilityStatus.put(child, child.isVisibilityAllowed());
child.setVisibilityAllowed(isVisible());