Heh, sorry dood, didn't mean to challenge you while in an exhaustion-induced haze. I just wanted to make sure there wasn't some basic concept quietly sailing above my head. :)
Get some sleep. --- In flexcoders@yahoogroups.com, "JesterXL" <[EMAIL PROTECTED]> wrote: > > 5 coffee's and 3 RedBull's later, I'm running on fumes, so don't really have > intelligent answers for you, just guesses. > > Don't know, I guess you're right. > > Find some way to either A) follow the convention a Command will get the > event class of a similiar name, and thus feel safe in casting it or B ) find > some way to strongly type that parameter. You can't up-cast function > arguments, though, so it's kind of stuck as CairngormEvent... I think. > > For the multiple events, yes, you are correct. I've definately taken for > granted all my other stuff has worked for that very fact. Oops. > > Actually, at this point, no clue... wtf were you talking about anyway, > Bokel? > > ----- Original Message ----- > From: "ben.clinkinbeard" <[EMAIL PROTECTED]> > To: <flexcoders@yahoogroups.com> > Sent: Thursday, July 27, 2006 10:50 PM > Subject: [flexcoders] Re: cairngorm Events and data payloads > > > Doesn't execute() accept a CairngromEvent for the sake of polymorphism > though? How could you do things any differently and still preserve > that aspect? Additionally, if you want your Commands to support > multiple types of events isn't it essential that execute() accept a > superclass or common interface? Are you just wishing AS supported > method overloading or is there something I am still not getting? > > Thanks, > Ben > http://www.returnundefined.com/ > > --- In flexcoders@yahoogroups.com, "JesterXL" <jesterxl@> wrote: > > > > My initial frustration was I'd create this event class, which allowed > > strong-typing, like so: > > > > package > > { > > import com.adobe.control.CairngormEvent; > > > > public class MyEvent extends CairngormEvent > > { > > public static const ACTION:String = "action"; > > > > public var someID:int; > > > > public function MyEvent(p_type:String, p_someID:int) > > { > > super(p_type); > > someID = p_someID; > > } > > } > > } > > > > So, my event now has context. If I need to have my Command get a > person > > record from the DB for example, this event will contain the payload it > > needs; the person ID I'm looking for. However, by the time it gets > to the > > Command, it's a base class, the CairngormEvent. > > > > package > > { > > public class MyCommand implements AllTheInterfacesEct > > { > > public function execute ( event:CairngormEvent ) > > { > > trace(event.someID); // faith based programming > > } > > } > > } > > > > Now, for some, their Events are directly linked to Commands, like so: > > > > LoginEvent will fire LoginCommand which calls LoginDelegate > > GetPersonEvent will fire GetPersonCommand which calls GetPersonDelegate > > > > At a simple level, yes, this'll do. So, you can acutally make some > > assumptions in the above; if you play by the default Cairngorm > rules, you > > KNOW by convention that your MyCommand class will get a MyEvent, so you > > could risk up-casting, like so: > > > > someDelegateMethod ( MyEvent ( event ) . someID ); > > > > ...that's faith, though. You'll get an exception if for some reason > that's > > not the real event. It'd be better if the compiler caught that vs. the > > runtime, before it's a problem. For me, I use multiple events inside > > Commands, so it's exacerbated. The Controller keeps all of this > under tabs, > > but again, it'd be nice if MyCommand for example GOT MyEvent in the > execute. > > I supposed you could make that assumption; not sure if it'd compile. > > Anyway, convention over strict-typing is ok since a lot of > conventions teams > > follow can do the above, for example, and assume you'll get what you > need. > > > > > > ----- Original Message ----- > > From: "ben.clinkinbeard" <ben.clinkinbeard@> > > To: <flexcoders@yahoogroups.com> > > Sent: Thursday, July 27, 2006 10:22 PM > > Subject: [flexcoders] Re: cairngorm Events and data payloads > > > > > > Forgive the dense noob here, but how is the type info lost? I thought > > that by subclassing CairngormEvent you get basic checking and then you > > can just do a cast or 'event as MyCutomEvent' inside the execute > > method. I guess I am just not clear on what the issue is and where the > > problem lies. Can someone edumacate me? > > > > Thanks, > > Ben > > http://www.returnundefined.com/ > > > > --- In flexcoders@yahoogroups.com, "JesterXL" <jesterxl@> wrote: > > > > > > Well, my events extend CairngormEvent, so I can technically upcast > > 'em when they get in the Command's execute method. I know Steven > > didn't really dig this idea, but if you case the type, you can compare > > to the Event's constant like: > > > > > > public static const EVENT_DOSOMETHING:String = "doSomething"; > > > > > > function execute(event:CairngormEvent) > > > { > > > switch(event.type) > > > { > > > case MyEvent.EVENT_DOSOMETHING: > > > someMethod ( MyEvent(event).someTypeSafeProp); > > > break; > > > } > > > } > > > > > > > > > ----- Original Message ----- > > > From: Ralf Bokelberg > > > To: flexcoders@yahoogroups.com > > > Sent: Thursday, July 27, 2006 4:20 PM > > > Subject: Re: [flexcoders] Re: cairngorm Events and data payloads > > > > > > > > > The only typesafe solution i can think of, is to abandon > > CairngormEvents and replace them by methods of the FrontController. > > Most of the apps i've seen so far don't make use of the runtime > > changeability anyways. What do we loose if we do it like that? > > > > > > Cheers, > > > Ralf. > > > > > > > > > On 7/27/06, JesterXL <jesterxl@> wrote: > > > I'm with you. I've been determing type of event based on the > > event.type in the Command's execute method to get my strong-typing back. > > > > > > ----- Original Message ----- > > > From: Ralf Bokelberg > > > To: flexcoders@yahoogroups.com > > > Sent: Thursday, July 27, 2006 12:58 PM > > > Subject: Re: [flexcoders] Re: cairngorm Events and data payloads > > > > > > > > > Its really a pity, that we loose all the nice type information > > while going all the way through Cairngorm. > > > > > > Cheers, > > > Ralf. > > > > > > > > > On 7/27/06, Douglas Knudsen <douglasknudsen@> wrote: > > > ah, righto. thanks d00ds. I had this hacked up too much...no > > worky good. If only I can get that damn RO to calm down now and do > > what its told! but that's another thread. > > > > > > > > > DK > > > > > > > > > > > > On 7/27/06, thunderstumpgesatwork < thunder.stumpges@> wrote: > > > Hi, > > > > > > The delegate function thinks you just have a CairngormEvent. I > > think > > > you just need to check to make sure the event you received > is your > > > custom event type and then cast it. > > > > > > so: > > > > > > if (eventHere is LoadScorecardEvent) > > > { > > > del.getScorecard( > LoadScorecardEvent(eventHere).scorecardId ); > > > } > > > else > > > { > > > // do nothing, or raise error, or log warning, or whatever. > > > } > > > > > > > > > best of luck, > > > Thunder > > > > > > --- In flexcoders@yahoogroups.com, "Douglas Knudsen" > > > <douglasknudsen@> wrote: > > > > > > > > can someone point me to a example of how to pass data in a > > cairngorm > > > type > > > > event? I'm trying the below with > > > > > > > > package com.mycompany.events > > > > { > > > > import com.adobe.cairngorm.control.CairngormEvent; > > > > > > > > public class LoadScorecardEvent extends CairngormEvent > > > > { > > > > public static var EVENT_LOAD_SCORECARD: String = > > > > 'LoadScorecardEvent'; > > > > public var scorecardId:Number; > > > > /** > > > > * The constructor, > > > > */ > > > > public function LoadScorecardEvent( ) > > > > { > > > > super( EVENT_LOAD_SCORECARD ); > > > > > > > > } > > > > > > > > } > > > > > > > > } > > > > > > > > then in a view dispatching like so > > > > var devent : LoadScorecardEvent = new LoadScorecardEvent( ); > > > > devent.scorecardId = 5; > > > > > > > CairngormEventDispatcher.getInstance().dispatchEvent( > > > > devent ); > > > > > > > > and in the command I have > > > > > > > > public function execute( eventHere : CairngormEvent ) : void > > > > { > > > > var del : MainDelegate = new MainDelegate( this ); > > > > del.getScorecard( eventHere.scorecardId ); > > > > > > > > } > > > > > > > > But this bombs out with a error about scorecardId not in > > eventHere. > > > > > > > > DK > > > > > > > > > > > > -- > > > > Douglas Knudsen > > > > http://www.cubicleman.com > > > > this is my signature, like it? > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Flexcoders Mailing List > > > FAQ: > > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > > > Search Archives: > > http://www.mail-archive.com/flexcoders%40yahoogroups.com > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Douglas Knudsen > > > http://www.cubicleman.com > > > this is my signature, like it? > > > > > > > > > > > > > > > -- > > > Ralf Bokelberg <ralf.bokelberg@> > > > > > > Flex & Flash Consultant based in Cologne/Germany > > > > > > > > > > > > -- > > > Ralf Bokelberg <ralf.bokelberg@> > > > Flex & Flash Consultant based in Cologne/Germany > > > > > > > > > > > > > > > > > > > -- > > Flexcoders Mailing List > > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > > Search Archives: > http://www.mail-archive.com/flexcoders%40yahoogroups.com > > Yahoo! Groups Links > > > > > > > > > -- > Flexcoders Mailing List > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com > Yahoo! Groups Links > -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/