What the heck? Using dg.selectedItem as BudgetVO should work. You can also go to the dataProvider:
var budgetVO:BudgetVO = new BudgetVO(); budgetVO = MyModel.getInstance().BudgetAC.getItemAt(dg.selectedIndex) as BudgetVO; var evt:BudgetEvent = new BudgetEvent(budgetVO,MyControl.EVENT_GET_BUDGET_DETAILS); CairngormEventDispatcher.getInstance().dispatchEvent(evt); However, this is no different than the other way. Is BudgetAC an ArrayCollection of BudgetVOs? Also, it's also conventional to use camel case (lower case first letter) for all of your variables. That way it's easy to distinguish them from classes. -TH --- In flexcoders@yahoogroups.com, "Greg Morphis" <[EMAIL PROTECTED]> wrote: > > Nah I tried this too.. > > var evt:BudgetEvent = new BudgetEvent(BudgetVO(dg.selectedItem) as > BudgetVO,MyControl.EVENT_GET_BUDGET_DETAILS); > CairngormEventDispatcher.getInstance().dispatchEvent(evt); > > (added the wrapper BudgetVO around the dg) and got this error message > TypeError: Error #1034: Type Coercion failed: cannot convert > [EMAIL PROTECTED] to com.vo.BudgetVO > > > > On Tue, Oct 7, 2008 at 11:47 AM, Tim Hoff [EMAIL PROTECTED] wrote: > > Hey, no worries Greg. Just passing it on. Once the VO is setup, you > > really shouldn't have to cast the individual properties. To reduce some of > > the code, does this work? > > > > var evt:BudgetEvent = new BudgetEvent(myDataGrid.selectedItem as > > BudgetVO,MyControl.EVENT_GET_BUDGET_DETAILS); > > CairngormEventDispatcher.getInstance().dispatchEvent(evt); > > > > -TH > > > > --- In flexcoders@yahoogroups.com, "Greg Morphis" gmorphis@ wrote: > >> > >> Thanks Tim, I appreciate the help. I want to learn but yeah I want to > >> learn the right way to do things. > >> Again, I appreciate your time and patience with me.. > >> > >> Thanks! > >> > >> On Tue, Oct 7, 2008 at 10:43 AM, Tim Hoff TimHoff@ wrote: > >> > Well, it's better practice to update the model with an event/command > >> > anyway. No idea why the selectedItem isn't working through the event. > >> > Another approach would be: > >> > > >> > MyModel.getInstance().SelectedBudgetVO = myDataGrid.selectedItem as > >> > BudgetVO; > >> > > >> > -TH > >> > > >> > --- In flexcoders@yahoogroups.com, "Greg Morphis" gmorphis@ wrote: > >> >> > >> >> Also this returns null > >> >> > >> >> Alert.show(MyModel.getInstance().SelectedBudgetVO.amount.toString()); > >> >> > >> >> (trying it right after assigned the event.target.selectedItem to the > >> >> SelectedBudgetVO) > >> >> > >> >> On Tue, Oct 7, 2008 at 10:30 AM, Greg Morphis gmorphis@ wrote: > >> >> > I don't think something is firing.. > >> >> > I had it working with the other code.. creating the empty VO and > >> >> > assigning the values one by one and then passing the VO to the > >> >> > command > >> >> > to populate the MyModel SelectedVO.. > >> >> > When I chose a row a form I had started populating using this: > >> >> > {MyModel.getInstance().SelectedBudgetVO.amount.toString()} > >> >> > > >> >> > but when I changed the changeHandler to just > >> >> > MyModel.getInstance().SelectedBudgetVO = event.target.selectedItem as > >> >> > BudgetVO; > >> >> > > >> >> > They stopped populating > >> >> > > >> >> > > >> >> > On Tue, Oct 7, 2008 at 10:17 AM, Tim Hoff TimHoff@ wrote: > >> >> >> "I have no idea why it wont work with an ArrayCollection" > >> >> >> > >> >> >> Because your ArrayCollection is a collection of VO's, not a > >> >> >> collection > >> >> >> of > >> >> >> ArrayCollections; although there may be ArrayCollections as > >> >> >> properties > >> >> >> of > >> >> >> the VO. Can you not just do this? > >> >> >> > >> >> >> MyModel.getInstance().SelectedBudgetVO = event.target.selectedItem > >> >> >> as > >> >> >> BudgetVO; > >> >> >> > >> >> >> -TH > >> >> >> > >> >> >> --- In flexcoders@yahoogroups.com, "Greg Morphis" gmorphis@ wrote: > >> >> >>> > >> >> >>> I changed it to using a VO and it works.. > >> >> >>> > >> >> >>> MyModel.getInstance().SelectedBudgetVO = (event as > >> >> >>> BudgetEvent).budget; > >> >> >>> > >> >> >>> //Alert.show(MyModel.getInstance().Budget.amount.toString()); > >> >> >>> > >> >> >>> I have no idea why it wont work with an ArrayCollection, but it > >> >> >>> works > >> >> >>> as a VO.. not sure if this is best practice or not > >> >> >>> > >> >> >>> On Tue, Oct 7, 2008 at 9:41 AM, Greg Morphis gmorphis@ wrote: > >> >> >>> > This is F'ed up... > >> >> >>> > > >> >> >>> > I changed my code to this... > >> >> >>> > > >> >> >>> > public function handleChangeEvent(event:Event):void > >> >> >>> > { > >> >> >>> > var myVO:BudgetVO = new BudgetVO(); > >> >> >>> > myVO.actiondate = event.target.selectedItem.actiondate; > >> >> >>> > myVO.amount = event.target.selectedItem.amount; > >> >> >>> > myVO.id = event.target.selectedItem.id; > >> >> >>> > ... > >> >> >>> > > >> >> >>> > var evt:BudgetEvent = new BudgetEvent(myVO, > >> >> >>> > MyControl.EVENT_GET_BUDGET_DETAILS); > >> >> >>> > CairngormEventDispatcher.getInstance().dispatchEvent(evt); > >> >> >>> > > >> >> >>> > } > >> >> >>> > > >> >> >>> > public class GetBudgetDetailsCommand implements ICommand, > >> >> >>> > IResponder > >> >> >>> > { > >> >> >>> > > >> >> >>> > private var currentSelectedVO:BudgetVO = null; > >> >> >>> > > >> >> >>> > public function execute(event:CairngormEvent):void { > >> >> >>> > > >> >> >>> > MyModel.getInstance().SelectedBudgetAC = (event as > >> >> >>> > BudgetEvent).budget > >> >> >>> > as ArrayCollection; > >> >> >>> > > >> >> >>> > /* If I Alert the (event as BudgetEvent).budget.amount.toString() > >> >> >>> > I > >> >> >>> > get the amount > >> >> >>> > > >> >> >>> > But if I Alert > >> >> >>> > > >> >> >>> > > >> >> >>> > MyModel.getInstance().SelectedBudgetAC.getItemAt(0).amount.toString() > >> >> >>> > I get a null error.. matter of fact if I Alert > >> >> >>> > MyModel.getInstance().SelectedBudgetAC.toString() > >> >> >>> > I get a null error.. so where the hell is my data going? > >> >> >>> > MyModel.as > >> >> >>> > is > >> >> >>> > being imported into the command. > >> >> >>> > > >> >> >>> > import com.model.MyModel > >> >> >>> > > >> >> >>> > Again, inside MyModel.as I have the global vars.. > >> >> >>> > > >> >> >>> > public var SelectedBudgetAC:ArrayCollection; > >> >> >>> > > >> >> >>> > to check to make sure the MyModel was loading properly I added > >> >> >>> > another > >> >> >>> > var to it.. > >> >> >>> > > >> >> >>> > public var fooVar:Number = 0; > >> >> >>> > > >> >> >>> > And if I alert that value in the execute() function, it Alerts > >> >> >>> > "0" > >> >> >>> > as > >> >> >>> > it should.. > >> >> >>> > I'm lost > >> >> >>> > */ > >> >> >>> > Alert.show(MyModel.getInstance().fooVar.toString()); > >> >> >>> > > >> >> >>> > } > >> >> >>> > .... > >> >> >>> > > >> >> >>> > > >> >> >>> > > >> >> >>> > On Tue, Oct 7, 2008 at 8:28 AM, Greg Morphis gmorphis@ wrote: > >> >> >>> >> Still null.... > >> >> >>> >> > >> >> >>> >> The DataGrid looks like > >> >> >>> >> <mx:DataGrid id="dg" width="100%" > >> >> >>> >> height="100%" dataProvider="{MyModel.getInstance().BudgetAC}" > >> >> >>> >> click="clickHandler(event);" > >> >> >>> >> change="handleChangeEvent(event as DataGridEvent);"> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> Data loads fine in the grid.. cool.. The change event fires and > >> >> >>> >> > >> >> >>> >> public function handleChangeEvent(event:Event):void > >> >> >>> >> { > >> >> >>> >> MyModel.getInstance().SelectedBudgetAC = > >> >> >>> >> event.target.selectedItem > >> >> >>> >> as ArrayCollection; > >> >> >>> >> Alert.show(event.target.selectedItem.amount.toString()); > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> Alert.show(MyModel.getInstance().SelectedBudgetAC.getItemAt(0).toString(\ )); > >> >> >>> >> > >> >> >>> >> var evt:CairngormEvent = new > >> >> >>> >> CairngormEvent(MyControl.EVENT_GET_BUDGET_DETAILS); > >> >> >>> >> CairngormEventDispatcher.getInstance().dispatchEvent(evt); > >> >> >>> >> > >> >> >>> >> } > >> >> >>> >> > >> >> >>> >> I just don't get it.. the first Alert works and I see the amount > >> >> >>> >> of > >> >> >>> >> the selectedItem, but the second gives a null error.. > >> >> >>> >> TypeError: Error #1009: Cannot access a property or method of a > >> >> >>> >> null > >> >> >>> >> object reference. > >> >> >>> >> at com.view::budgetBook/handleChangeEvent() > >> >> >>> >> at com.view::budgetBook/__dg_change() > >> >> >>> >> at flash.events::EventDispatcher/dispatchEventFunction() > >> >> >>> >> at flash.events::EventDispatcher/dispatchEvent() > >> >> >>> >> at mx.controls.listClasses::ListBase/mouseUpHandler() > >> >> >>> >> at mx.controls::DataGrid/mouseUpHandler() > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> On Tue, Oct 7, 2008 at 7:37 AM, jitendra jain > >> >> >>> >> jitendra_jain_2007@ wrote: > >> >> >>> >>> Use event.target.selectedItems instead of > >> >> >>> >>> event.target.selectedItem > >> >> >>> >>> > >> >> >>> >>> Thanks, > >> >> >>> >>> > >> >> >>> >>> with Regards, > >> >> >>> >>> Jitendra Jain > >> >> >>> >>> > >> >> >>> >>> > >> >> >>> >>> ----- Original Message ---- > >> >> >>> >>> From: Greg Morphis gmorphis@ > >> >> >>> >>> To: flexcoders@yahoogroups.com > >> >> >>> >>> Sent: Tuesday, 7 October, 2008 7:22:23 AM > >> >> >>> >>> Subject: Re: [flexcoders] handling data within a datagrid > >> >> >>> >>> > >> >> >>> >>> That was a typo instead of copying and pasting.. > >> >> >>> >>> mySelectedRow is an ArrayCollection > >> >> >>> >>> I'm assignin the event.target. selectedItem which is a datagrid > >> >> >>> >>> row to > >> >> >>> >>> it.. > >> >> >>> >>> I want to knmow why it's not working the way it should... > >> >> >>> >>> > >> >> >>> >>> To learn I'm creating a budgetbook of sorts.. so here's what I > >> >> >>> >>> have > >> >> >>> >>> copied and pasted.. > >> >> >>> >>> > >> >> >>> >>> public function handleChangeEvent( event:DataGridEv ent):void > >> >> >>> >>> { > >> >> >>> >>> MyModel.getInstance ().SelectedBudge tAC = event.target. > >> >> >>> >>> selectedItem > >> >> >>> >>> as > >> >> >>> >>> ArrayCollection; > >> >> >>> >>> Alert.show(MyModel. getInstance( ).SelectedBudget AC.getItemAt( > >> >> >>> >>> 0).payee) ; > >> >> >>> >>> var evt:CairngormEvent = new CairngormEvent( MyControl. > >> >> >>> >>> EVENT_GET_ > >> >> >>> >>> BUDGET_DETAILS) ; > >> >> >>> >>> CairngormEventDispa tcher.getInstanc e().dispatchEven t(evt); > >> >> >>> >>> > >> >> >>> >>> } > >> >> >>> >>> > >> >> >>> >>> public var Budget:BudgetVO; > >> >> >>> >>> public var BudgetAC:ArrayColle ction; > >> >> >>> >>> public var budgetID:Number; > >> >> >>> >>> public var SelectedBudgetAC: ArrayCollection; > >> >> >>> >>> > >> >> >>> >>> sorry about that.. > >> >> >>> >>> > >> >> >>> >>> On Mon, Oct 6, 2008 at 9:02 PM, Tracy Spratt [EMAIL PROTECTED] > >> >> >>> >>> com> > >> >> >>> >>> wrote: > >> >> >>> >>>> Then how are you expecting that setting "mySelectedRow" > >> >> >>> >>>> property > >> >> >>> >>>> will > >> >> >>> >>>> do > >> >> >>> >>>> anything regarding the "SelectedBudgetAC" property? > >> >> >>> >>>> > >> >> >>> >>>> Tracy > >> >> >>> >>>> > >> >> >>> >>>> > >> >> >>> >>>> > >> >> >>> >>>> ____________ _________ _________ __ > >> >> >>> >>>> > >> >> >>> >>>> From: [EMAIL PROTECTED] ups.com [mailto:[EMAIL PROTECTED] > >> >> >>> >>>> ups.com] On > >> >> >>> >>>> Behalf Of Greg Morphis > >> >> >>> >>>> Sent: Monday, October 06, 2008 8:02 PM > >> >> >>> >>>> To: [EMAIL PROTECTED] ups.com > >> >> >>> >>>> Subject: Re: [flexcoders] handling data within a datagrid > >> >> >>> >>>> > >> >> >>> >>>> > >> >> >>> >>>> > >> >> >>> >>>> No, just global variables > >> >> >>> >>>> > >> >> >>> >>>> On Mon, Oct 6, 2008 at 7:13 PM, Tracy Spratt > >> >> >>> >>>> [EMAIL PROTECTED] > >> >> >>> >>>> com> > >> >> >>> >>>> wrote: > >> >> >>> >>>>> Does MyModel handle the relationship between mySelectedRow > >> >> >>> >>>>> and > >> >> >>> >>>>> SelectedBudgetAC? Using setters or getters? > >> >> >>> >>>>> > >> >> >>> >>>>> Tracy > >> >> >>> >>>>> > >> >> >>> >>>>> > >> >> >>> >>>>> > >> >> >>> >>>>> ____________ _________ _________ __ > >> >> >>> >>>>> > >> >> >>> >>>>> From: [EMAIL PROTECTED] ups.com [mailto:[EMAIL PROTECTED] > >> >> >>> >>>>> ups.com] On > >> >> >>> >>>>> Behalf Of Greg Morphis > >> >> >>> >>>>> Sent: Monday, October 06, 2008 7:48 PM > >> >> >>> >>>>> To: [EMAIL PROTECTED] ups.com > >> >> >>> >>>>> Subject: [flexcoders] handling data within a datagrid > >> >> >>> >>>>> > >> >> >>> >>>>> > >> >> >>> >>>>> > >> >> >>> >>>>> I've got my datagrid populating but I need to see that data > >> >> >>> >>>>> in > >> >> >>> >>>>> aother > >> >> >>> >>>>> location within my app. > >> >> >>> >>>>> In my MyModel.as > >> >> >>> >>>>> I have a "global" variable > >> >> >>> >>>>> public var mySelectedRow: ArrayCollection; > >> >> >>> >>>>> > >> >> >>> >>>>> I've tried setting this variable in the dataGrid change > >> >> >>> >>>>> event... > >> >> >>> >>>>> public function handleChangeEvent( event:Event) :void > >> >> >>> >>>>> { > >> >> >>> >>>>> MyModel.getInstance ().mySelectedRow = event.target. > >> >> >>> >>>>> selectedItem as > >> >> >>> >>>>> ArrayCollection; > >> >> >>> >>>>> Alert.show(MyModel. getInstance( ).SelectedBudget > >> >> >>> >>>>> AC.getItemAt( > >> >> >>> >>>>> 0).amount) ; > >> >> >>> >>>>> var evt:CairngormEvent = new > >> >> >>> >>>>> CairngormEvent( MyControl. EVENT_GET_ DATA_DETAILS) ; > >> >> >>> >>>>> CairngormEventDispa tcher.getInstanc e().dispatchEven t(evt); > >> >> >>> >>>>> > >> >> >>> >>>>> } > >> >> >>> >>>>> > >> >> >>> >>>>> The Alert returns a null error.. but it looks like it should > >> >> >>> >>>>> be > >> >> >>> >>>>> working? > >> >> >>> >>>>> What I'm trying to do is I have a VO I need to populate.. I > >> >> >>> >>>>> was > >> >> >>> >>>>> going > >> >> >>> >>>>> to do that within a command (is that best practice? -- to > >> >> >>> >>>>> seperate > >> >> >>> >>>>> display from logic) > >> >> >>> >>>>> So anywho I'm trying to populate that arraycollection and > >> >> >>> >>>>> then > >> >> >>> >>>>> in > >> >> >>> >>>>> the > >> >> >>> >>>>> command do all the fun stuff... > >> >> >>> >>>>> var myVO:FootVO = MyModel.getInstance ().FooVO; > >> >> >>> >>>>> myVO.amount = MyModel.getInstance ().SelectedBudge > >> >> >>> >>>>> tAC.getItemAt( > >> >> >>> >>>>> 0).amount; > >> >> >>> >>>>> > >> >> >>> >>>>> but I'm getting a null error.. is this the proper way to load > >> >> >>> >>>>> a > >> >> >>> >>>>> VO > >> >> >>> >>>>> from a selected DataGrid row? > >> >> >>> >>>>> > >> >> >>> >>>>> Thanks > >> >> >>> >>>>> > >> >> >>> >>>>> > >> >> >>> >>>> > >> >> >>> >>>> > >> >> >>> >>> > >> >> >>> >>> ________________________________ > >> >> >>> >>> Add more friends to your messenger and enjoy! Invite them now. > >> >> >>> >> > >> >> >>> > > >> >> >>> > >> >> >> > >> >> >> > >> >> > > >> >> > >> > > >> > > >> > > > > >