Highlighted

RemoteObject and States

Diderot__Esquir

17-09-2008

Greeitngs,

I have, what should be, a very simple need. I am using an
mxml module basedf on a Panel. The basic jist is I have the state
determined by a var passed, with a value of Pie or Bar, which I use
a the default state. On creationComplete I execute the remote
object and pass it to either the Pie chart state or the Bar chart
state. I don't get any error's, it's just blank. Here is the code.
I've poked around and made a lot of changes trying to debug it, so
just ignore any wierdness. The pie chart is duped in the bar state
just to make the bar chart wasn't causing the issue.



<?xml version="1.0" encoding="utf-8"?>

<mx:Panel xmlns:mx="
http://www.adobe.com/2006/mxml"
x="1" y="0"

layout="absolute" width="100%" height="100%"

horizontalScrollPolicy="off" includeInLayout="true"

visible="true" borderColor="#FFFFFF" borderThickness="0"

borderThicknessBottom="0" borderThicknessLeft="0"

borderThicknessRight="0" borderThicknessTop="0"

dropShadowEnabled="false" verticalAlign="top"

clipContent="true" headerHeight="1" useHandCursor="false"
currentState="Pie"
creationComplete="searchGetPointsAssigned.returnGroups_Points(AwardsDashboard_Variables);">



<mx:States>

<mx:State name="Pie">

<mx:AddChild>

<!-- Render Pie Chart -->

<mx:PieChart id="groupPieChart" height="100%"
width="100%" enabled="true" useHandCursor="true"
showAllDataTips="false" showDataTips="true" x="0" y="0">

<mx:series>

<mx:PieSeries nameField="GroupName" height="100%"
width="100%" field="TotalPoints"
labelPosition="insideWithCallout">

<mx:showDataEffect>

<mx:SeriesInterpolate minimumElementDuration="1000"
duration="1000" />

</mx:showDataEffect>

</mx:PieSeries>

</mx:series>

</mx:PieChart>

<mx:Legend id="chartLegend"
dataProvider="{groupPieChart}" labelPlacement="right"
includeInLayout="true"/>

</mx:AddChild>

</mx:State>

<mx:State name="Bar">

<mx:AddChild>

<!-- Render Pie Chart -->

<mx:PieChart id="groupPie2Chart" height="100%"
width="100%" enabled="true" useHandCursor="true"
selectionMode="none" showAllDataTips="false" showDataTips="true"
x="0" y="0">

<mx:series>

<mx:PieSeries nameField="GroupName" height="100%"
width="100%" field="TotalPoints"
labelPosition="insideWithCallout">

<mx:showDataEffect>

<mx:SeriesInterpolate minimumElementDuration="1000"
duration="1000" />

</mx:showDataEffect>

</mx:PieSeries>

</mx:series>

</mx:PieChart>

</mx:AddChild>

</mx:State>

</mx:States>





<mx:RemoteObject id="searchGetPointsAssigned"
showBusyCursor="true" destination="ColdFusion"
source="_assets_DashBoard.SearchEngine.searchIncludes.getPointsAssigned"
endpoint="
http://www.xxx.com/flex2gateway/">

<mx:method name="returnGroups_Points"
result="processReportTypesHandler(event)"
fault="mx.controls.Alert.show(event.fault.faultString)"/>

</mx:RemoteObject>



<mx:Script>

<![CDATA[

import assets.Variables.AwardsDashboard_Variables;

import mx.rpc.events.ResultEvent;

import mx.rpc.events.FaultEvent;

import mx.utils.ObjectUtil;

import mx.controls.Alert;

import mx.collections.ArrayCollection;



//pass returned data to the chart dataprovider

private function
processReportTypesHandler(returnedReportTypes:ResultEvent):void

{

if (AwardsDashboard_Variables.cbRenderMethod == "Pie"){

groupPieChart.dataProvider = returnedReportTypes.result;

}

else if (AwardsDashboard_Variables.cbRenderMethod == "Pie"){

groupPie2Chart.dataProvider = returnedReportTypes.result;

}

}

;]]>

</mx:Script>



</mx:Panel>





I am assuming it is a fundemental issue with remoteobject
and states and what is visible to flash when but, I am pretty new
at this so what do I know. 🙂

Thanks for any input or suggestions.

-Kevin

Replies

Highlighted

riesvantwisk

18-09-2008

You might want to give databinding a shot.



instead of this : groupPieChart.dataProvider =
returnedReportTypes.result;



You do something like this:



myResult = returnedReportTypes.result;

(MyResult is declared globally and Bindable)



then in your pieChart you do something like this :





<mx:PieChart dataprovider="{MyResult}" .... ... .... ...
..>



Wild guess.....

Ries
Highlighted

Diderot__Esquir

18-09-2008

Thanks for the input but no go, it leaves me with the same
issue. From my poking around and changing things up this is
basically what happens: If I remove the states altogether, the
remote obejct and chart works fine. If I remove the pie chart and
just leave the date range in the state, it works fine. So, in a
nutshell, it is only when I use states and add the pie chart does
it not render anything, including the <mx:text> to show the
date range...help?

-Kevin
Highlighted

Diderot__Esquir

21-09-2008

Hi Ries,

Turns out you were correct. When I tried data binding the
first time, I screwed it up. After much frustration, I went back to
the binding issue and found my mistake so thanks very much, it is
finally working.

Kevin
Highlighted

johny_blaze

12-10-2008

Hi I have been following up supplying the data to a pie
chart, could you please post the solution you finally came up with?

A lot of people like me would like to see the solution very
urgently




Thanks