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.
> >> >> >>> >>
> >> >> >>> >
> >> >> >>>
> >> >> >>
> >> >> >>
> >> >> >
> >> >>
> >> >
> >> >
> >>
> >
> >
>


Reply via email to