I am looking for a way for the pie chart to update each time the
custom component is viewed. Right now the way I have it, the chart
does not visually appear on the screen. If I use creationcomplete
event to fire it off, then it works, but will never update.
Suggestions? Here's some of my code:
<mx:VBox
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:vd="com.cust.app.view.dashboard.*"
show="usagePie_show()">
<mx:Script>
<![CDATA[
private function usagePieDataProvider
(mbUsed:Number, mbAllowed:Number):ArrayCollection {
var mbFree:Number;
var arr:Array = [];
//Calcuate kb free
mbFree = mbAllowed - mbUsed;
//Build chart data
arr.push({label:"MB Used",
data:mbUsed});
arr.push({label:"MB Free",
data:mbFree});
return new ArrayCollection(arr);
}
private function usagePie_show():void {
var bytesUsed:Number = new Number();
var mbUsed:Number = new Number();
var mbAllowed:Number = new Number();
var series:PieSeries;
var pctUsed:Number;
//calculate usage numbers
mbAllowed = 2048; //kmb allowed per
user
bytesUsed =
model.currentCustomer.fileSizeBytes; //get the bytes used
mbUsed = Math.ceil
(bytesUsed/1024/1024); //convert bytes used to MB and rounds up
pctUsed = Math.ceil((mbUsed /
mbAllowed) * 100); //calculate percentage of space used
//Define pie series
series = new PieSeries();
series.nameField = "label";
series.field = "data";
//Define pie chart
usagePie.dataProvider =
usagePieDataProvider(mbUsed, mbAllowed);
usagePie.series = [series];
//Title the chart
usagePieTitle.text = pctUsed + "%
Storage Used (" + mbUsed + "MB)";
}
]]>
</mx:Script>
<mx:PieChart id="usagePie"
showDataTips="true"
width="140"
height="140"
click="usagePie_show()" />
</mx:VBox>