I'm fighting with this as well. The idea you've presented fits well
Cairngorm, the problem is ... this is not really a best a idea. You need to
create an Event, then put the desired state string into the event (where to
get this string from?), dispatch event, register in front controller, create
a command and in command get the data from event and change the model value
accordingly. This does not seem like bad, if you just manage single state.
Now imagine that you use components and they have their own states. What's
more, you would probably want to react on higher level on a state
broadcaster down below. You need to create as many events/commands as the
amount of your components, and what's more : you're inevitably coupling them
with cairngorm.

My blueprint would be to have each component managing its own state in his
as code. State is bound to component the same way you've described (by
currentState). Each component has method changeState and probably exports
static strings with state names. When the state is changed from within the
component, the basic flash event is broadcasted, and you react to it on the
level (container) that holds this component as child.

Probably a bit way off your question, anyway :P Generally, for your needs,
the solution you presented feels valid to me.

Seb

-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of stephen50232
Sent: Wednesday, November 21, 2007 6:01 PM
To: [email protected]
Subject: [flexcoders] Managing States and Cairngorm

Hi,

I'm building a new app using Cairgorm and one of the problems I'm
having is managing states. 
My application is set up with a base state which is blank and then two
other states, one which contains my login screen (called Login) and
one which contains the main menu (called MainApp). Then all my other
states are based on the state called MainApp so that they all contain
the main menu. 

Now when my application starts it should go to the Login state, then
after logging in the system will load the Welcome state, which is
based on the MainApp state. So to change between states in my
Application tag I have set currentState like this:

currentState="{model.workflowState}"

When my application first starts it should load the Login state as
default, I set the model.workflowState variable as:

public var workflowState:String = "Login";

Will I be able to update the model.workflowState? The way I am
thinking of doing this is by having an event on all the menu buttons
which changes model.workflowState to the value of the state, for
example if the user clicks on the Welcome button, model.workflowState
is set as "Welcome".

Now is this a good way to manage states in a Cairngorm application,
I'm trying to achieve 2 things, one only have one main menu which is
used in all states, and two use binding to select the current state.

Is there another way I could do this?

Thanks

Stephen



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




Reply via email to