http://code.google.com/p/flexcairngorm/source/browse


On Tue, Apr 29, 2008 at 11:15 PM, Josh McDonald <[EMAIL PROTECTED]> wrote:

>   Is the source broweable online? I'd like to have a quick look at
> Callbacks.as
>
> I'm currently doing almost the exact same thing, although I simply have a
> custom base message with:
>
>         public var failCallback : Function = function() : void {};
>         public var successCallback : Function = function() : void {};
>
> And while it's crunch time right now, I'm interested in other
> implementation ideas as I'll be looking at refactoring this in the future to
> something a little nicer and more flex-like :)
>
> -J
>
>
> On Wed, Apr 30, 2008 at 11:24 AM, Ben Clinkinbeard <
> [EMAIL PROTECTED]> wrote:
>
> >   Hi Josh,
> >
> > The implementation is roughly as follows. One of the additions is a
> > Callbacks class which implements IResponder, so on a basic level its just a
> > container for a result and fault handler. Rather than your custom events
> > extending CairngormEvent, they extend UMEvent (which in turn extends
> > CairngormEvent), whose second parameter is of type Callbacks. Your view
> > callbacks (and your service handlers in your Commands) will receive a
> > ResultEvent or FaultEvent depending on the scenario, so if you want access
> > to the AsyncToken at that point you can pull it off of the event.
> >
> > The simple example that I think illustrates the usefulness of view
> > callbacks very well is that of disabling a portion of your UI during a
> > service call. So maybe its a login form and for obvious reasons you want to
> > prevent interaction with the form between the time the submit button is
> > clicked and when you receive a response from the server. Storing something
> > like loginFormEnabled = true|false on your ModelLocator is not appropriate
> > or desirable, but there isn't much way around it if your view has no way of
> > knowing when the call has finished. View callbacks solve this problem and
> > avoid having to store info like that on your model. Pseudo code is below,
> > hopefully this helps you understand the implementation a bit better.
> >
> >
> > private function handleSubmitBtnClick( event:MouseEvent ):void
> > {
> >    loginForm.enabled = false;
> >    new LoginEvent( userTxt.text, pwdTxt.text, new Callbacks(
> > handleLoginResult, handleLoginFault ) ).dispatch();
> > }
> >
> > private function handleLoginResult( event:ResultEvent ):void
> > {
> >    // handle result, etc
> >    loginForm.enabled = true;
> > }
> >
> > private function handleLoginFault( event:FaultEvent ):void
> > {
> >    // handle failure, etc
> >    loginForm.enabled = true;
> > }
> >
> >
> > HTH,
> > Ben
> >
> >
> > On Tue, Apr 29, 2008 at 8:01 PM, Josh McDonald <[EMAIL PROTECTED]> wrote:
> >
> > >   I'm not using it so I can't comment on the implementation, but the
> > > callbacks are definitely a good idea. Letting each individual view know 
> > > when
> > > whatever it has kicked off has either succeeded or failed in a standard 
> > > way
> > > (whatever that may be) is great.
> > >
> > > It'd be nice if we could get an AsyncToken of some sorts from
> > > dispatchEvent() would be a much nicer way I think. Or even another method 
> > > on
> > > EventDispatcher such as lastEventToken() : Token - although that's kinda
> > > nasty, and would have to rely on a ThreadLocal analogue if AS3 finds its 
> > > way
> > > into a threaded environment.
> > >
> > > -J
> > >
> > >
> > > On Wed, Apr 30, 2008 at 9:40 AM, Bjorn Schultheiss <
> > > [EMAIL PROTECTED]> wrote:
> > >
> > > >   Agreed
> > > > - Model has no reference to the view Classes.
> > > >
> > > > But it can still drive the creation of the view.
> > > >
> > > > For example, you might have an arrayCollection, the amount of items
> > > > in
> > > > the arrayCollection determine the amount of windows on display..
> > > > The items within the arrayCollection may be the 'dataProviders' for
> > > > each window, not necessarily a reference to the view classes but
> > > > still
> > > > responsible for driving the view.
> > > >
> > > > With regards to the additions to Cairngorm UM released, I'm still
> > > > not
> > > > sold on the benifits of all of them or the implementation.
> > > >
> > > >
> > > > --- In flexcoders@yahoogroups.com <flexcoders%40yahoogroups.com>,
> > > > "Josh McDonald" <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > The whole point of MVC is that the model knows *nothing* about the
> > > > view.
> > > > > Which is one of the reasons UM is a great extension to Cairngorm.
> > > > >
> > > > > -J
> > > > >
> > > > > On Wed, Apr 30, 2008 at 8:46 AM, Bjorn Schultheiss <
> > > > > [EMAIL PROTECTED]> wrote:
> > > > >
> > > > > > I think the problem is that the current flex framework
> > > > architecture
> > > > > > doesn't conceptually work well with Cairngorm.
> > > > > > There's too much logic encapsulated into the view.
> > > > > >
> > > > > > Ideally you would like to drive the entire app via the model.
> > > > > >
> > > > > > It would be ideal if your model was managing how many windows
> > > > are
> > > > > > currently open and therefore knows which data models to tear
> > > > down.
> > > > > >
> > > > > > --- In flexcoders@yahoogroups.com 
> > > > > > <flexcoders%40yahoogroups.com><flexcoders%
> > > > 40yahoogroups.com>, "Ben
> > > >
> > > > > > Clinkinbeard"
> > > > > >
> > > > > > <ben.clinkinbeard@> wrote:
> > > > > > >
> > > > > > > You definitely don't want your model keeping track of views
> > > > using
> > > > > > its data.
> > > > > > > My 30 second recommendation would be to look into the UM
> > > > Cairngorm
> > > > > > > extensions as they can help you reduce the amount of clutter
> > > > that
> > > > > > needs to
> > > > > > > be stored on the/a model. Specifically view callbacks is the
> > > > feature
> > > > > > that
> > > > > > > helps enable that. Search flexcoders for additional discussion
> > > > of UM
> > > > > > > Cairngorm.
> > > > > > >
> > > > > > > HTH,
> > > > > > > Ben
> > > > > > >
> > > > > > >
> > > > > > > On Tue, Apr 29, 2008 at 12:24 PM, gerhard.schlager <
> > > > > > > gerhard.schlager@> wrote:
> > > > > > >
> > > > > > > > Hello!
> > > > > > > >
> > > > > > > > I'm currently creating the software design for a large
> > > > application
> > > > > > > > which we are going to build using Flex 3, Cairngorm 2.2.1
> > > > and
> > > > SabreAMF
> > > > > > > > (PHP). I have already created my first prove of concept,
> > > > however, I
> > > > > > > > have a few issues with Cairngorm's Model Locator.
> > > > > > > >
> > > > > > > > 1) How can I make sure that unused data gets removed from
> > > > the
> > > > Model
> > > > > > > > Locator? The simple solution would be to destroy the data
> > > > that
> > > > a view
> > > > > > > > loaded when the view gets closed. However, we are going to
> > > > use
> > > > flexmdi
> > > > > > > > and it's quite possible that one or more MDI windows are
> > > > using the
> > > > > > > > same data. The only solution I've come up so far is to make
> > > > the Model
> > > > > > > > Locator aware of which window uses which data. Therefore it
> > > > could free
> > > > > > > > the unused data when no view uses it anymore. Yet, this
> > > > could be a
> > > > > > > > very error-prone solution. Moreover, I would loose the last
> > > > bit of
> > > > > > > > loose coupling. So, I'm not sure if that's a good way to
> > > > handle this.
> > > > > > > > Well, the Model Locator itself is often seen as an
> > > > anti-pattern as
> > > > > > > > well ...
> > > > > > > >
> > > > > > > > 2) Should I really put everything into _one_ Model Locator?
> > > > I
> > > > guess
> > > > > > > > there could be quite a large number of public variables. Our
> > > > > > > > application will have up to 50 different views and about
> > > > twice
> > > > as many
> > > > > > > > VO ...
> > > > > > > >
> > > > > > > > I'd be really grateful if somebody could enlighten my ;-) or
> > > > if you
> > > > > > > > could give me some tips on how to solve those two problems.
> > > > > > > >
> > > > > > > > Thanks in advance for your help.
> > > > > > > >
> > > > > > > > Best regards,
> > > > > > > > Gerhard
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > "Therefore, send not to know For whom the bell tolls. It tolls for
> > > > thee."
> > > > >
> > > > > :: Josh 'G-Funk' McDonald
> > > > > :: 0437 221 380 :: [EMAIL PROTECTED]
> > > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > "Therefore, send not to know For whom the bell tolls. It tolls for
> > > thee."
> > >
> > > :: Josh 'G-Funk' McDonald
> > >  :: 0437 221 380 :: [EMAIL PROTECTED]
> > >
> >
> >
>
>
> --
> "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