<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initVars()" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.collections.ArrayCollection;
private var submissionsAllAryCol:ArrayCollection;
private var submissionsAllAry:Array;
private var submissionsSlicedAry:Array;
[Bindable]
private var submissionsViewAryCol:ArrayCollection;
[Bindable]
private var start:int;
private var increment:int ;
[Bindable]
private var end:int ;
[Bindable]
private var total:int ;
private function initVars():void {
start = 0;
increment = 10; end = 0;
myService.getAllSubmissions(139);
}
public function handleQueryResult(event:ResultEvent):void{
submissionsAllAryCol = event.result as ArrayCollection;
submissionsAllAry = submissionsAllAryCol.toArray();
total = submissionsAllAry.length;
if ( total < increment) {
end = total;
} else {
end = increment ;
}
submissionsSlicedAry = submissionsAllAry.slice(start, end);
submissionsViewAryCol = new ArrayCollection( submissionsSlicedAry );
nextBtn.enabled = isNextBtnEnabled();
}
private function getNext():void {
start = start + increment ;
end = end + increment ;
if (end > total) {
end = total;
}
submissionsSlicedAry = submissionsAllAry.slice(start, end);
submissionsViewAryCol = new ArrayCollection( submissionsSlicedAry );
nextBtn.enabled = isNextBtnEnabled();
previousBtn.enabled = true;
}
private function getPrevious():void {
end = start;
start = start - increment ;
submissionsSlicedAry = submissionsAllAry.slice(start, end);
submissionsViewAryCol = new ArrayCollection( submissionsSlicedAry );
previousBtn.enabled = isPreviousBtnEnabled();
nextBtn.enabled = true;
}
private function isNextBtnEnabled():Boolean {
var enableBtn:Boolean = false ;
if ( end < total ) {
enableBtn = true ;
}
return enableBtn;
}
private function isPreviousBtnEnabled():Boolean {
var enableBtn:Boolean = false ;
if ( start >= increment ) {
enableBtn = true ;
}
return enableBtn;
}
]]>
</mx:Script>
<mx:RemoteObject
id="myService"
destination="ColdFusion"
source="flex.pagingdatagrid.SubmissionsGateway"
showBusyCursor="true"
>
<mx:method name="getAllSubmissions" result="handleQueryResult(event)"
fault="Alert.show(event.fault.message)"/>
</mx:RemoteObject>
<mx:Panel width="80%" height="80%" layout="vertical" title="Page Through The Submissions"
horizontalAlign="center" verticalAlign="top">
<mx:VBox width="100%" height="100%" verticalAlign="top" horizontalAlign="left">
<mx:Label text="Use the Previous and Next buttons to Get More Submissions"/>
<mx:HBox width="100%">
<mx:Button label="Previous" id="previousBtn" enabled="false"
click="getPrevious()"/>
<mx:Spacer width="50%"/>
<mx:Label text="Viewing Submissions {start+1} - {end} of {total} Submissions" />
<mx:Spacer width="50%"/>
<mx:Button label="Next" id="nextBtn" enabled="true"
click="getNext()"/>
</mx:HBox>
<mx:DataGrid width="100%" height="100%" id="submissionsDG" dataProvider="{submissionsViewAryCol}"
fontFamily="Verdana" fontSize="10">
<mx:columns>
<mx:DataGridColumn dataField="submissionid" width="80" headerText="Sub #"/>
<mx:DataGridColumn dataField="presenter" width="100" headerText="Main Presenter" />
<mx:DataGridColumn dataField="title" width="220" headerText="Title" wordWrap="true"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Panel>
</mx:Application>