<?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.*"
xmlns:controls="com.flexicious.controls.*"
xmlns:functional="com.flexicious.example.view.functional.*"
creationComplete="application1_creationCompleteHandler(event)" >
<fx:Script>
<![CDATA[
import com.flexicious.controls.TriStateCheckBox;
import com.flexicious.example.view.functional.MyDataGrid;
import com.flexicious.example.view.support.customprint.MyCustomPager;
import com.flexicious.nestedtreedatagrid.FlexDataGridColumn;
import com.flexicious.nestedtreedatagrid.FlexDataGridColumnLevel;
import com.flexicious.nestedtreedatagrid.events.FlexDataGridEvent;
import com.flexicious.nestedtreedatagrid.interfaces.IFlexDataGridCell;
import com.flexicious.utils.UIUtils;
import mock.FlexiciousMockGenerator;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
import mx.utils.ObjectUtil;
import mx.utils.UIDUtil;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
mdg.buildFromXml(FlexiciousMockGenerator.mockNestedXml);
insertUIDColumn(mdg.columnLevel);
mdg.dataProvider=FlexiciousMockGenerator.mockNestedData;
mdg.validateNow();
mdg.expandAll();
mdg.columnLevel.rowDisabledFunction=checkRowDisabled
mdg_changeHandler(null)
}
function checkRowDisabled(cell:IFlexDataGridCell, data:Object):Boolean{
if(!cbDisable.selected)return false;
return data.hasOwnProperty("title")&&data.title=="Architect";
}
protected function mdg_changeHandler(event:FlexDataGridEvent):void
{
lblSelectedKeys.text = mdg.getSelectedKeys().join("\n");
lblUnSelectedKeys.text= mdg.getUnSelectedKeys().join("\n");
lblOpenKeys.text = mdg.getOpenKeys().join("\n");
}
protected function btnRefresh_clickHandler(event:MouseEvent):void
{
mdg.dataProvider=FlexiciousMockGenerator.mockNestedData; mdg_changeHandler(null);
}
private function insertUIDColumn(columnLevel:FlexDataGridColumnLevel):void
{
var cols:Array=columnLevel.columns;
var uuIdCol:FlexDataGridColumn = new FlexDataGridColumn();
uuIdCol.labelFunction=getUID;
uuIdCol.headerText="UID";
cols.push(uuIdCol)
columnLevel.columns=cols;
if(columnLevel.nextLevel)
insertUIDColumn(columnLevel.nextLevel);
}
private function getUID(item:Object,col:Object):String
{
return UIDUtil.getUID(item);
}
]]>
</fx:Script>
<mx:HBox>
<mx:CheckBox label="Use Selection Exclusion" id="cbSelectionExclusion" selected="false" click="mdg.clearSelection();mdg.enableSelectionExclusion=event.target.selected"/>
<mx:CheckBox label="Selection Cascade/Bubble"
selected="true"
click="mdg.clearSelection();mdg.enableSelectionCascade=event.target.selected;mdg.enableSelectionBubble=event.target.selected;mdg.enableTriStateCheckbox=event.target.selected"/>
<mx:CheckBox label="Disable Selection for a Row" id="cbDisable" change="mdg.clearSelection();mdg.redrawBody();"/>
</mx:HBox>
<mx:HBox>
<mx:CheckBox label="Clear Open Items on Dataprovider Refresh"
click="mdg.clearOpenItemsOnDataProviderChange=event.target.selected"/>
<mx:CheckBox label="Clear Selected Items on Dataprovider Refresh"
click="mdg.clearSelectionOnDataProviderChange=event.target.selected"/>
<mx:Button label="Refresh DataProvider" id="btnRefresh" click="btnRefresh_clickHandler(event)"/>
</mx:HBox>
<mx:HBox width="100%"
height="100%">
<functional:MyDataGrid id="mdg" horizontalGridLines="true"
width="100%"
height="100%" clearOpenItemsOnDataProviderChange="false"
clearSelectionOnDataProviderChange="false"
change="mdg_changeHandler(event)"
itemOpen="mdg_changeHandler(event)"
itemClose="mdg_changeHandler(event)"/>
<mx:VBox width="200" height="100%">
<mx:Label text="Selected Keys"/>
<mx:TextArea id="lblSelectedKeys" width="100%" height="100%"/>
<mx:Label text="UnSelected Keys(Exclusion Only)"/>
<mx:TextArea id="lblUnSelectedKeys" width="100%" height="100%" enabled="{cbSelectionExclusion.selected}"/>
<mx:Label text="Open Keys"/>
<mx:TextArea id="lblOpenKeys" width="100%" height="100%"/>
</mx:VBox>
</mx:HBox>
</mx:VBox>