The biggest things I need to do are update/change the state of views
within the application. For instance, when a user has logged in
certain buttons get enabled, or certain panels become visible that
would not be so when the user is logged out.

I was thinking along the lines of using Commands, but I don't think
Commands should be concerned about the specific details (ie text
fields, buttons, etc) of a view. Using Commands would also entail
having to register all my views with a locator that would be used to
allow the Commands to find Views. Seems like a huge pain.

To me it seems much cleaner to allow the views to listen for certain
events (likely dispatched from a Manager) and then respond accordingly.

Derrick

--- In [email protected], "Dustin Mercer" <[EMAIL PROTECTED]>
wrote:
>
> Out of curiosity, what is it you want to do when the login happens.  I
> have only found a few things that were difficult to do from within a
> command.  If you can tell me what you want to do, I can tell you what I
> have done in the past and how I accomplished it from within a command.
> In my Cairngorm trials, I had come to some of the same thinking as you
> described here, but I found that there were ways to accomplish it within
> the command instead of a management class.  There were situations I
> chose to implement management classes though, for example, I had a class
> that managed all the media playing on a media player I am building...
> It just didn't feel right broken into commands, just didn't feel very
> cohesive, although accomplishable through commands, just felt better in
> a singleton class....  Especially since I was going to be using these
> same functions across many different commands and didn't want to rewrite
> the logic in each command.
> 
>  
> 
> ________________________________
> 
> From: [email protected] [mailto:[EMAIL PROTECTED] On
> Behalf Of Derrick Grigg
> Sent: Wednesday, October 25, 2006 12:11 PM
> To: [email protected]
> Subject: [flexcoders] Cairngorm, dispatching application events and
> managing states
> 
>  
> 
> Here's a question for any Cairngorm devotees to weigh in on.
> 
> I have an application that has many seperate parts that function
> independently of each other. Each part uses the centralized Cairngorm
> fare (FrontController, ModelLocator, Commands etc). For most parts
> using the ModelLocator and bound properties (ie
> dataProvider={model.users}) works perfect for keeping everything in
> order.
> 
> One case where this seems to fall apart is when one part or the shell
> application needs to notify the other parts of something that has
> happened. For example, a user logs into the application. I can update
> the model.user to reflect a value object for the new user and the
> various components that need to update on this do, BUT, what to do
> when I need something programatic to occur in one of the parts. 
> 
> I have tried unsuccessfully to use the 'mx.binding' classes. I think
> the issue there is that when you initially set the binding it is set
> to a specific instance of an object (ie model.user). When the user
> logs in I typically completely replace the model.user with a new user
> instance, which kills the bindings. The only way around this is to
> never replace object instances in the model but rather update them.
> Thinking this through though, that seems like a ticking time bomb. Any
> accidental overwrite of a instance in the model and all the bindings
> falls apart.
> 
> What I have done in past, pre Cairngorm, applications it to create
> Manager classes, based on the Singleton pattern, that can dispatch
> events, and perform logic that doesn't really belong in a command or
> business delegate. For example an ApplicationManager class that can
> dispatch 'loggedIn' and 'loggedOut' events. Any part of the
> application can register as a listener and act appropriately upon
> receiving the event.
> 
> My question then (to get to the point), is using a Manager class like
> this considered a best practice in the Cairngorm framework (mindframe)
> or is there a better or more acceptable method of doing what I would
> like to accomplish?
> 
> Thanks in advance for any feedback,
> 
> Derrick
>





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

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/flexcoders/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

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