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/
 


Reply via email to