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")]