}//buildDG
//uses the first product node to define the columns private function getColumnDefArray():Array { //Alert.show("colcount:" + xmlCatalog.toXMLString()); var aColumns:Array = new Array(); var node0:XML = xmlCatalog.product[0]; //get the first "product" node var xlColumns:XMLList = node0.children(); //get its child nodes (columns) as an XMLList var xmlColumn:XML var oColumnDef:Object; for (var i:int=0;i<xlColumns.length();i++) { //loop over the xmlList xmlColumn = xlColumns[i]; oColumnDef = new Object(); oColumnDef.dataField = xmlColumn.localName(); //make the dataField be the node name switch (oColumnDef.dataField) { //conditional column property logic case "name": oColumnDef.width = 80; oColumnDef.sortable = false; oColumnDef.visible = true; oColumnDef.editable = false; oColumnDef.wordWrap = false; break; case "description": oColumnDef.width = 200; oColumnDef.sortable = false; oColumnDef.visible = true; oColumnDef.editable = false; oColumnDef.wordWrap = true; break; case "price": oColumnDef.width = 40; oColumnDef.sortable = true; oColumnDef.visible = true; oColumnDef.editable = true; oColumnDef.wordWrap = false; break; case "image": oColumnDef.width = 100; oColumnDef.sortable = false; oColumnDef.visible = false; oColumnDef.editable = false; oColumnDef.wordWrap = false; break; default: oColumnDef.width = 50; oColumnDef.sortable = true; oColumnDef.visible = true; oColumnDef.editable = false; oColumnDef.wordWrap = false; break; } aColumns.push(oColumnDef); } |