<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:extension="extension.*" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.controls.DataGrid;
import mx.collections.ArrayCollection;
private function selectSeverityColor1(datagrid:DataGrid, rowIndex:int, color:uint):uint
{
var rColor:uint;
var item:Object = datagrid.dataProvider.getItemAt(rowIndex);
var value:String = item["severity"];
if (value == "Critical") { rColor = 0xFF00FF; }
else if (value == "Major") { rColor = 0xFF0000; }
else rColor =color;
return rColor;
}
private function selectSeverityColor2(datagrid:DataGrid, rowIndex:int, color:uint):uint
{
var rColor:uint;
var item:Object = datagrid.dataProvider.getItemAt(rowIndex);
var value:String = item["severity"];
if (value == "Minor") { rColor = 0xFFFF00; }
else if (value == "Warning") { rColor = 0xFFA500; }
else rColor =color;
return rColor;
}
private function selectSeverityColorXML1(datagrid:DataGrid, dataIndex:int, color:uint):uint
{
var rColor:uint;
var item:XML = datagrid.dataProvider.getItemAt(dataIndex);
var value:String = item.attribute("severity");
if (value == "Critical") { rColor = 0xFF00FF; }
else if (value == "Major") { rColor = 0xFF0000; }
else rColor =color;
return rColor;
}
private function selectSeverityColorXML2(datagrid:DataGrid, dataIndex:int, color:uint):uint
{
var rColor:uint;
var item:XML = datagrid.dataProvider.getItemAt(dataIndex);
var value:String = item.attribute("severity");
if (value == "Minor") { rColor = 0xFFFF00; }
else if (value == "Warning") { rColor = 0xFFA500; }
else rColor =color;
return rColor;
}
[Bindable]
private var myDP:ArrayCollection = new ArrayCollection([
{name:"Order #2314", severity:"Critical"},
{name:"Order #2315", severity:""},
{name:"Order #2316", severity:"Warning"},
{name:"Order #2317", severity:"Major"},
{name:"Order #2318", severity:""},
{name:"Order #222", severity:"Minor"}
]);
private var flip:int = 1;
private function doChangeColorFunction(event:Event):void
{
flip = 1 - flip;
mydg1.rowColorFunction = (flip == 1 ? selectSeverityColor1 : selectSeverityColor2);
mydg2.rowColorFunction = (flip == 1 ? selectSeverityColorXML1 : selectSeverityColorXML2);
}
]]>
</mx:Script>
<extension:RowColorDataGrid id="mydg1" width="50%" height="50%" dataProvider="{myDP}"
alternatingItemColors="[#FFFFFF, #EEEEEE]" rowColorFunction="selectSeverityColor1">
<extension:columns>
<mx:DataGridColumn headerText="Order" dataField="name" />
<mx:DataGridColumn headerText="Severity" dataField="severity" />
</extension:columns>
</extension:RowColorDataGrid>
<mx:XML id="myXML" format="e4x">
<events>
<event severity="Major" name="Commande 1234" />
<event severity="Critical" name="Commande 2789" />
<event severity="" name="Commande 7845" />
<event severity="Warning" name="Commande 5642" />
<event severity="Minor" name="Commande 7851" />
</events>
</mx:XML>
<extension:RowColorDataGrid id="mydg2" width="50%" height="50%" editable="true" dataProvider="{myXML..event}"
rowColorFunction="selectSeverityColorXML1">
<extension:columns>
<mx:DataGridColumn headerText="Commande" dataField="@name" />
<mx:DataGridColumn headerText="Sévérité" dataField="@severity" />
</extension:columns>
</extension:RowColorDataGrid>
<mx:Button label="Change RowColor Function" click="doChangeColorFunction(event)"/>
<mx:Label text="(Right Click to View Source)">
</mx:Label>
</mx:Application>