[flexcoders] Re: Multiple Screen Application
I started out using states, with the current state being bound to a property in the model (using Cairngorm.) Lately, as my application has dozens of screens and different users are privelaged to have certain screens at their disposal, I use a view stack (it's easier on the eyes to program, IMO), and have each state's viewhelper extended to register that given state as a screen object in an arraycollection of available screens. I also have a constants file of screen titles (my menu reflects the title of the current screen.) I register each screen with its static title (pulled from the constants class), and fire off a custom cairngorm event when switching screens. e.g.: CairngormEventDispatcher.getInstance().dispatchEvent( new ScreenSwitchEvent(Constants.MainMenu)); Then I have a class that implements Command and have it do a search in the screen array for any object who's title is Constants.MainMenu. I've found this to be the best way, mainly because I rely on permissions and some screens have read-write access, some only have read, etc. For a smaller application, you could just use states and have a string property in the model called currentState that the currentState of your VBox is bound to. (I say VBox instead of application because I want a menu bar to be at the top of every screen, so the content is loaded into the vbox.) Then switching screens is as easy as calling: model.currentState = Constants.MainMenu Brennan --- In flexcoders@yahoogroups.com, Sam Shrefler [EMAIL PROTECTED] wrote: I'm just looking for an theory overview / suggestions on how to handle multiple screens with nothing in common: For example, i have an application that I'd like to have a menubar on every single screen. After that, i'd have say 5 - 20 totally unrelated screens each with their own display and function. I see on each of those screens where viewStates would come in handy. My question is: Should I make viewStates for every single screen, or would using a viewStack be better? Is there a best practice for an application with multiple screens? Thanks Sam -- 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/
Re: [flexcoders] Re: Multiple Screen Application
Brennan: Thank you very much. What do you mean by ViewHelper? Does each View in the ViewStack have a viewHelper? ThanksSam On 8/31/06, dreuimar [EMAIL PROTECTED] wrote: I started out using states, with the current state being bound to aproperty in the model (using Cairngorm.) Lately, as my application has dozens of screens and different users are privelaged to have certainscreens at their disposal, I use a view stack (it's easier on the eyesto program, IMO), and have each state's viewhelper extended toregister that given state as a screen object in an arraycollection of available screens. I also have a constants file of screen titles (mymenu reflects the title of the current screen.)I register each screen with its static title (pulled from theconstants class), and fire off a custom cairngorm event when switching screens.e.g.:CairngormEventDispatcher.getInstance().dispatchEvent( newScreenSwitchEvent(Constants.MainMenu));Then I have a class that implements Command and have it do a search inthe screen array for any object who's title is Constants.MainMenu.I've found this to be the best way, mainly because I rely onpermissions and some screens have read-write access, some only haveread, etc.For a smaller application, you could just use states and have a string property in the model called currentState that the currentState ofyour VBox is bound to. (I say VBox instead of application because Iwant a menu bar to be at the top of every screen, so the content isloaded into the vbox.) Then switching screens is as easy as calling: model.currentState = Constants.MainMenuBrennan--- In flexcoders@yahoogroups.com, Sam Shrefler [EMAIL PROTECTED] wrote: I'm just looking for an theory overview / suggestions on how to handle multiple screens with nothing in common: For example, i have an application that I'd like to have a menubaron every single screen. After that, i'd have say 5 - 20 totally unrelated screens each with their own display and function. I see on each of those screens where viewStates would come in handy. My question is: Should I make viewStates for every single screen, or would using a viewStack be better?Is there a best practice for an application with multiple screens? Thanks Sam--Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txtSearch Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! 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/ __._,_.___ -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com SPONSORED LINKS Software development tool Software development Software development services Home design software Software development company YAHOO! GROUPS LINKS Visit your group "flexcoders" on the web. To unsubscribe from this group, send an email to:[EMAIL PROTECTED] Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. __,_._,___
[flexcoders] Re: Multiple Screen Application
In Cairngorm you can associate helper classes for views. For instance, I have a package with all of my views, and in that package is a subpackage of helpers. Each view has it's own helper, so MainMenu might have MainMenuHelper as a class, which extends ViewHelper. ViewHelper registers itself with the singleton ViewLocator, so that you can access the logic of any particularly ViewHelper from anywhere in the application. I went further and have each helper implement an interface I call IViewHelper, which has two methods: enter() and exit(), which the SwitchStateCommand executes any code in them upon entering or exiting a screen. This makes me able to have alert windows show up if someone tries to leave a screen without saving their work, for example. I have the views set up like this: Class BaseState extends VBox and has within it: [Bindable] protected var model : Model = Model.getInstance(); This is so I don't need to keep getting the model for each view I design (in case I need to bind any of the fields to a property in the model. Then each of these BaseStates include their helper. e.g., MainMenu.mxml would have: helper:MainMenuHelper id=MainMenuHelper/ The helpers set up like: class MainMenuHelper extends ViewHelper implements IViewHelper Make sense? Brennan --- In flexcoders@yahoogroups.com, Sam Shrefler [EMAIL PROTECTED] wrote: Brennan: Thank you very much. What do you mean by ViewHelper? Does each View in the ViewStack have a viewHelper? Thanks Sam On 8/31/06, dreuimar [EMAIL PROTECTED] wrote: I started out using states, with the current state being bound to a property in the model (using Cairngorm.) Lately, as my application has dozens of screens and different users are privelaged to have certain screens at their disposal, I use a view stack (it's easier on the eyes to program, IMO), and have each state's viewhelper extended to register that given state as a screen object in an arraycollection of available screens. I also have a constants file of screen titles (my menu reflects the title of the current screen.) I register each screen with its static title (pulled from the constants class), and fire off a custom cairngorm event when switching screens. e.g.: CairngormEventDispatcher.getInstance().dispatchEvent( new ScreenSwitchEvent(Constants.MainMenu)); Then I have a class that implements Command and have it do a search in the screen array for any object who's title is Constants.MainMenu. I've found this to be the best way, mainly because I rely on permissions and some screens have read-write access, some only have read, etc. For a smaller application, you could just use states and have a string property in the model called currentState that the currentState of your VBox is bound to. (I say VBox instead of application because I want a menu bar to be at the top of every screen, so the content is loaded into the vbox.) Then switching screens is as easy as calling: model.currentState = Constants.MainMenu Brennan --- In flexcoders@yahoogroups.com, Sam Shrefler sshrefler@ wrote: I'm just looking for an theory overview / suggestions on how to handle multiple screens with nothing in common: For example, i have an application that I'd like to have a menubar on every single screen. After that, i'd have say 5 - 20 totally unrelated screens each with their own display and function. I see on each of those screens where viewStates would come in handy. My question is: Should I make viewStates for every single screen, or would using a viewStack be better? Is there a best practice for an application with multiple screens? Thanks Sam -- 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/