<?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.nestedtreedatagrid.FlexDataGridColumn;
import com.flexicious.utils.UIUtils;
import mock.FlexiciousMockGenerator;
import mx.events.FlexEvent;
import mx.formatters.NumberFormatter;
import pdf.AlivePdfGenerator;
private function addColumn(dataField:String,headerText:String):FlexDataGridColumn
{
var dgCol:FlexDataGridColumn = new FlexDataGridColumn();
dgCol.dataField=dataField;
dgCol.headerText=headerText;
dgCol.filterControl="TextInput";
dgCol.filterOperation="BeginsWith";
dgCol.filterWaterMark = "Begins With";
return dgCol;
}
private function addCurrencyColumn(dataField:String,headerText:String):FlexDataGridColumn
{
var dgCol:FlexDataGridColumn = addColumn(dataField,headerText);
dgCol.labelFunction=UIUtils.dataGridFormatCurrencyLabelFunction;
dgCol.setStyle("textAlign","right");
dgCol.footerOperation="average";
dgCol.footerLabel="Avg: ";
dgCol.footerAlign="right";
dgCol.setStyle("paddingRight",15);
dgCol.filterOperation="GreaterThan";
dgCol.filterWaterMark = "Greater Than";
return dgCol;
}
private function addDateColumn(dataField:String,headerText:String):FlexDataGridColumn
{
var dgCol:FlexDataGridColumn = addColumn(dataField,headerText);
dgCol.labelFunction=UIUtils.dataGridFormatDateLabelFunction;
dgCol.filterControl="DateComboBox";
return dgCol;
}
protected function grid_creationCompleteHandler(event:FlexEvent):void
{
grid.dataProvider = FlexiciousMockGenerator.instance().getFlatOrgList()
grid.clearColumns();
var col:FlexDataGridColumn=addColumn("id","Company ID");
col.columnLockMode=FlexDataGridColumn.LOCK_MODE_LEFT
grid.addColumn(col);
col=addColumn("legalName","Company Name");
col.columnLockMode=FlexDataGridColumn.LOCK_MODE_RIGHT
grid.addColumn(col);
grid.addColumn(addColumn("headquarterAddress.line1","Address Line 1"));
grid.addColumn(addColumn("headquarterAddress.line2","Address Line2"));
grid.addColumn(addCurrencyColumn("earningsPerShare","EPS"));
grid.addColumn(addColumn("headquarterAddress.line1","Address Line 1"));
grid.addColumn(addColumn("headquarterAddress.line2","Address Line2"));
grid.addColumn(addCurrencyColumn("earningsPerShare","EPS"));
grid.addColumn(addColumn("headquarterAddress.line1","Address Line 1"));
grid.addColumn(addColumn("headquarterAddress.line2","Address Line2"));
grid.addColumn(addCurrencyColumn("earningsPerShare","EPS"));
grid.addColumn(addColumn("headquarterAddress.line1","Address Line 1"));
grid.addColumn(addColumn("headquarterAddress.line2","Address Line2"));
grid.addColumn(addCurrencyColumn("earningsPerShare","EPS"));
grid.distributeColumnWidthsEqually();
grid.reDraw();
}
protected function btnAddCol_clickHandler(event:MouseEvent):void
{
var col:FlexDataGridColumn=addCurrencyColumn("lastStockPrice","Last Stock Price")
grid.addColumn(col);
grid.distributeColumnWidthsEqually();
grid.reDraw();
}
protected function btnRemoveCol_clickHandler(event:MouseEvent):void
{
grid.removeColumn(grid.getColumnByDataField("lastStockPrice"));
grid.distributeColumnWidthsEqually();
grid.reDraw();
}
]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
<mx:HBox>
<mx:Button label="Add Last Stock Price Column" id="btnAddCol" click="btnAddCol_clickHandler(event)"/>
<mx:Button label="Remove Last Stock Price Column" id="btnRemoveCol" click="btnRemoveCol_clickHandler(event)"/>
</mx:HBox>
<nestedtreedatagrid:FlexDataGrid horizontalScrollPolicy="on" id="grid" width="100%" height="100%" enablePrint="true" enablePreferencePersistence="true"
enableExport="true" enableCopy="true" enableFilters="true" enableFooters="true" enablePaging="true" preferencePersistenceKey="dynamicColumns"
pdfBytesReady="new AlivePdfGenerator().generate(event.target as FlexDataGrid ,event.printOptions)"
creationComplete="grid_creationCompleteHandler(event)">
</nestedtreedatagrid:FlexDataGrid>
</mx:VBox>