 	import org.openforis.collect.metamodel.proxy.EntityDefinitionProxy;
 	import org.openforis.collect.metamodel.proxy.NumberAttributeDefinitionProxy;
 	import org.openforis.collect.metamodel.proxy.NumberAttributeDefinitionProxy$Type;
+	import org.openforis.collect.util.ArrayUtil;
 	import org.openforis.collect.util.ObjectUtil;
 	import org.openforis.collect.util.StringUtil;
 	import org.openforis.collect.util.UIUtil;

		 * Traverse each child and pass it to the argument function
		 * */
		public function traverse(funct:Function):void {
			var children:IList = getChildren();
			for each (var child:NodeProxy in children) {
				funct(child);
				if(child is EntityProxy) {
					EntityProxy(child).traverse(funct);
				}
			}
		}

			return required == true;
		}
		
		public function get childDefinitionNames():IList {
			//taken from showChildrenErrorsMap that is fully populated from the server
			//with an entry for each child definition
			var names:ArrayCollection = showChildrenErrorsMap.keySet;
