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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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
>> <[EMAIL PROTECTED]> wrote:
>>> Use event.target.selectedItems instead of event.target.selectedItem
>>>
>>> Thanks,
>>>
>>> with Regards,
>>> Jitendra Jain
>>>
>>>
>>> ----- Original Message ----
>>> From: Greg Morphis <[EMAIL PROTECTED]>
>>> To: [email protected]
>>> 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. 
>>
>

Reply via email to