Gabriel did a great job of explaining some of the primary benefits of
the UM extensions, one of which is definitely to reduce the extent to
which ModelLocator is used as a dumping ground for data that really
doesn't belong on the global model.

As for the how, here are a couple of main points. UMEvent extends
CairngormEvent and has a handler:Callbacks parameter as the second
argument of its constructor. Callbacks is the class that bundles your
success and fault handlers (as well as a conflict handler but to be
honest I am not sure when that is triggered). The UM extensions also
allow you to dispatch CairngormEvents/UMEvents just like any other
event via dispatchEvent(). So an example might look like this.

private function handleLoginButtonClick( event:MouseEvent ):void
{
   var userVO:UserVO = new UserVO( user.text, pwd.text );
   // UMEvent subclass
   var userEvent:UserEvent = new UserEvent( UserEvent.EVENT_ID, new
Callbacks( handleLoginSuccess, handleLoginFault ) );
   userEvent.userVO = userVO;
   dispatchEvent( userEvent );
}

HTH,
Ben


--- In flexcoders@yahoogroups.com, "Josh McDonald" <[EMAIL PROTECTED]> wrote:
>
> Thanks heaps for the info guys!
> 
> Are the callbacks members of the UM Event or something? Like do you do
> 
> event.success = myFunc;
> 
> before you dispatchEvent() or something? Is there a copy of the api docs
> online I can poke around in? I'm just looking to add similar
functionality
> to our existing in-house framework so I'm not missing out on any
time-savers
> :)
> 
> -J
> 
> On Tue, Apr 22, 2008 at 1:40 PM, gabriel montagné <
> [EMAIL PROTECTED]> wrote:
> 
> >   On Mon, Apr 21, 2008 at 9:20 PM, Josh McDonald
<[EMAIL PROTECTED]<dznuts%40gmail.com>>
> > wrote:
> > > understanding of modern Cairngorm? Most of the docs I've found
online
> > seem
> >
> > This is a good place to start:
> > http://cairngormdocs.org
> >
> > > On Tue, Apr 22, 2008 at 1:17 PM, shaun
<[EMAIL PROTECTED]<shaun%40internode.on.net>>
> > wrote:
> > > > The model is changed by the result of the event handling and
the views
> > > > observe this.
> >
> > That is the stock cairngorm way of doing it. In cairngorm, the
> > FrontController is the only listener for all the cairngorm events. It
> > keeps a table of commands to use for each event type. When the front
> > controller listens to an event, it will run that command (which is the
> > one that has all the logic packed in it to change the model). It's
> > from the commands that you update the data on the models and all the
> > view, which are bound to it, will respond.
> >
> > The UM Event extension allows you to send an additional callback
> > object on that event (a callback being a couple of functions packed in
> > an object, one for success, one for faults) so that you can bypass
> > keeping data on the model that was going to be used just for letting
> > the original view that dispatched the event that whatever process it
> > initiated was finished. When the command has finished doing
> > whatever it was that it was doing, it will run the callback function
> > that will tell the original view "I'm done".
> >
> > It sounds a bit complicated but actually it isn't. The classic
> > example is a login form.. from the form you pack a UserVO into an
> > event and dispatch the event. Right there, from the view that
> > dispatched the event, you disable the login form. Using stock
> > cairngorm you would have to wait for the command to set a flag on the
> > model that would let the view know that login process was complete.
> > But this would mean that you have to keep that flag there for everyone
> > to see when only the original view that dispatched the event needed
> > it.
> > Using the UM event, you can send a callback to the command... the
> > command does it's thing and when it's done, it runs the success (or
> > fault, if it failed) function on the callback, letting the login view
> > know that it can re-enable the form or whatever without having to keep
> > that data on the model.
> >
> > --
> > gabriel montagné láscaris comneno
> > http://rojored.com
> > t/506.8392.2040
> >  
> >
> 
> 
> 
> -- 
> "Therefore, send not to know For whom the bell tolls. It tolls for
thee."
> 
> :: Josh 'G-Funk' McDonald
> :: 0437 221 380 :: [EMAIL PROTECTED]
>


Reply via email to