<?xml version="1.0" encoding="utf-8"?>
<mx:Application name="DataGrid_dataProvider_XML_test2"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
initialize="init();">
<mx:XML id="xmlDP" source="data/log.xml" />
<mx:Script>
<![CDATA[
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.core.ScrollPolicy;
import mx.utils.ObjectUtil;
private var dataGrid:DataGrid;
private var dataGridCol1:DataGridColumn;
private var dataGridCol2:DataGridColumn;
private var dataGridCol3:DataGridColumn;
private function init():void {
dataGridCol1 = new DataGridColumn();
dataGridCol1.headerText = "Name";
dataGridCol1.labelFunction = labelFunc;
dataGridCol1.sortCompareFunction = nameSortCompareFunc;
dataGridCol1.width = 80;
dataGridCol2 = new DataGridColumn("@type");
dataGridCol2.headerText = "Type";
dataGridCol2.sortCompareFunction = typeSortCompareFunc;
dataGridCol2.width = 50;
dataGridCol3 = new DataGridColumn("@message");
dataGridCol3.headerText = "Message";
dataGridCol3.width = 200;
dataGrid = new DataGrid();
dataGrid.columns = [dataGridCol1, dataGridCol2, dataGridCol3];
dataGrid.dataProvider = xmlDP.children();
dataGrid.verticalScrollPolicy = ScrollPolicy.ON;
addChild(dataGrid);
}
private function labelFunc(item:XML, col:DataGridColumn):String {
return item.name();
}
private function nameSortCompareFunc(itemA:XML, itemB:XML):int {
return ObjectUtil.stringCompare(dataGridCol1.itemToLabel(itemA), dataGridCol1.itemToLabel(itemB), true);
}
private function typeSortCompareFunc(itemA:XML, itemB:XML):int {
return ObjectUtil.numericCompare(itemA.@type, itemB.@type);
}
]]>
</mx:Script>
</mx:Application>