Try elementName -> No elementName -> show default if(selectedItem != null) { containersLoop: for each(var obj:Object in _containers) { var form:Element = Element(obj); var elements:Array = form.element is Array ? form.element as Array : [form.element]; for each(var currentElement:Object in elements) { if(currentElement is NodeTest) { if(NodeTest(currentElement).doTest(selectedItem)) { newForm = form; break containersLoop; } } else if(currentElement == selectedItem.name()) { newForm = form; break containersLoop; } } } } else { if(elementName) { containersLoop: for each(obj in _containers) { form = Element(obj); elements = form.element is Array ? form.element as Array : [form.element]; for each(currentElement in elements) { if(currentElement == elementName) { newForm = form; break containersLoop; } } } } } if(newForm != _currentContainer) { viewStack.selectedChild = newForm; createComponents(newForm); //ExtendedForm.createForms(newForm); _currentContainer = newForm; dispatchEvent(new Event("containerSwitch")); } // _currentContainer might be set to defaultContainer // which is not necessarily an object of class Element. if(_currentContainer is Element) { Element(_currentContainer).selectedItem = selectedItem; } } public function get currentContainer() : Container { return _currentContainer; } private function createComponents(container:Container) : void { if(container.childDescriptors && container.childDescriptors.length > 0 && container.numChildren == 0) { container.createComponentsFromDescriptors(); } for each(var component:Object in container.getChildren()) { if(component is Container) { createComponents(component as Container); } } } ]]> [Event(name="containerSwitch")]