<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" xmlns:nestedtreedatagrid="com.flexicious.nestedtreedatagrid.*">
    <fx:Script>
        <![CDATA[
            import com.flexicious.example.utils.ExampleUtils;
            import com.flexicious.utils.UIUtils;
            
            import mock.FlexiciousMockGenerator;

            


            protected function radioClick(event:MouseEvent,mode:String):void
            {
                
                grid.selectionMode=mode;
                if(cbCol.radioButtonMode!=cbSinlgeRow.selected){
                    cbCol.radioButtonMode=cbSinlgeRow.selected;
                    grid.reDraw();
                }
                
                // TODO Auto-generated method stub
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:HBox>
        <mx:RadioButton label="Single Cell" groupName="selectionMode" click="radioClick(event,'singleCell')"/>
        <mx:RadioButton label="Multiple Cell" groupName="selectionMode" click="radioClick(event,'multipleCells')"/>
        <mx:RadioButton label="Single Row" id="cbSinlgeRow" groupName="selectionMode" click="radioClick(event,'singleRow')"
                        />
        <mx:RadioButton label="Multiple Rows" groupName="selectionMode" selected="true" click="radioClick(event,'multipleRows')"/>
        <mx:RadioButton label="None" groupName="selectionMode" click="radioClick(event,'none')"/>
        <mx:Button label="Clear Selection" click="grid.clearSelection()"/>
        <mx:Label text="Selected Indices: {grid.selectedIndices.join('|')}"/>
    </mx:HBox>
    <nestedtreedatagrid:FlexDataGrid width="100%" height="100%" id="grid"
                                         dataProvider="{FlexiciousMockGenerator.instance().getFlatOrgList()}"
                                         enableFooters="true" selectedKeyField="id"
                                         preferencePersistenceKey="selectionModes"
                                         >
        <nestedtreedatagrid:columnLevel >
                <nestedtreedatagrid:FlexDataGridColumnLevel >
                    <nestedtreedatagrid:columns>
                        <nestedtreedatagrid:FlexDataGridCheckBoxColumn id="cbCol" />
                        <nestedtreedatagrid:FlexDataGridColumn dataField="id" headerText="ID" filterControl="TextInput"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="legalName" headerText="Legal Name"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="headquarterAddress.line1" headerText="Address Line 1" footerLabel="Count:" footerOperation="count"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="headquarterAddress.line2" headerText="Address Line 2"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="headquarterAddress.city.name" headerText="City" />
                        <nestedtreedatagrid:FlexDataGridColumn dataField="headquarterAddress.state.name" headerText="State" />
                        <nestedtreedatagrid:FlexDataGridColumn dataField="headquarterAddress.country.name" headerText="Country" />
                        <nestedtreedatagrid:FlexDataGridColumn dataField="annualRevenue" headerText="Annual Revenue" textAlign="right" headerAlign="center" footerLabel="Avg:" footerOperation="average" 
                                                                    footerAlign="center" footerOperationPrecision="2" footerFormatter="{ExampleUtils.globalCurrencyFormatter}" 
                                                                   labelFunction="UIUtils.dataGridFormatCurrencyLabelFunction"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="numEmployees" headerText="Num Employees" textAlign="right" footerLabel="Avg:" footerOperation="average" footerOperationPrecision="2" 
                                                                   footerFormatter="{ExampleUtils.globalCurrencyFormatter}" labelFunction="UIUtils.dataGridFormatCurrencyLabelFunction"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="earningsPerShare" headerText="EPS" textAlign="right" footerLabel="Avg:" footerOperation="average" 
                                                                   footerFormatter="{ExampleUtils.globalCurrencyFormatter}" labelFunction="UIUtils.dataGridFormatCurrencyLabelFunction"/>
                        <nestedtreedatagrid:FlexDataGridColumn dataField="lastStockPrice" headerText="Stock Price" textAlign="right" footerLabel="Avg:" footerOperation="average" 
                                                                   footerOperationPrecision="2" footerFormatter="{ExampleUtils.globalCurrencyFormatter}" labelFunction="UIUtils.dataGridFormatCurrencyLabelFunction"/>
                    </nestedtreedatagrid:columns>
                </nestedtreedatagrid:FlexDataGridColumnLevel>
                
        </nestedtreedatagrid:columnLevel>
        
    </nestedtreedatagrid:FlexDataGrid>
    
</mx:VBox>