Jester, this question is a little off-topic, but on my mind none the less... Where do you put this code:
> prefsWindow = PopUpManager.createPopUp(this, PrefsWindow, true); > prefsWindow.setFormData(ModelLocator.prefsObject); I naturally want to put this in my PrefsWindowViewHelper, but it doesn't seem to work when there. What I find is happening is every view that's a titlewindow ends up adding code to my applicationViewHelper. this "smells" i think. todd --- In flexcoders@yahoogroups.com, "JesterXL" <[EMAIL PROTECTED]> wrote: > > That's what I've been deadling with for the past 2 days! > > I won't suggest best practices, I'll just suggest what works as of 1:00pm > this afternoon. > > My model is much like yours, on ModelLocator, but it's not actually written > to unless the user hits save or apply. As such, I create a copy of the > preferences object by passing the true one into a fucntion, which makes a > copy, and uses that as something to bind to. That way, all my bindings > work, but they only affect the real data if the user hits save. > > Psuedo code: > > prefsWindow = PopUpManager.createPopUp(this, PrefsWindow, true); > prefsWindow.setFormData(ModelLocator.prefsObject); > > > // psudeo code in PrefsWindow > public var formData:Object; > > public function setFormData(o:Object):Void > { > // could be a specific ValueObject type as well > // just DON'T set it to null, or delete it; this'll screw up the > bindings > formData = new Object(); > for(var p in o) > { > formData[p] = o[p]; > } > } > > public function getFormData():Object > { > return formData; > } > > Then, in your main class, just replace your VO on the ModelLocator with the > formData. For avoiding references, see the earlier threads today about > Object.copy. > > > ----- Original Message ----- > From: "charged2885" <[EMAIL PROTECTED]> > To: <flexcoders@yahoogroups.com> > Sent: Thursday, December 01, 2005 4:45 PM > Subject: [flexcoders] PreferencesWindow design pattern > > > Note, this example is mitigated. there are dozens of preferences i want my > users to be > able to set. Anyways.... > > I have a simple preference i want my users to be able to set: > showConsoleWindow. I have > created a simple PreferencesWindow with a CheckBox on it. This checkbox's > selected > property is bound to ModelLocator.currentUser.preferences.showConsoleWindow. > currentUser is a UserVO object as described below: > > class UserVO { > preferences:PreferencesVO; > username:String; > } > > class PreferencesVO { > showConsoleWindow:Boolean; > } > > I'd like to offer a cancel button to my PreferencesWindow. however, since > showConsoleWindow is bound, this approach won't work. It seems I should > first, create a > temporary preferences object to bind to. This is where my question comes in. > How do I > create a copy of my ModelLocator.currentUser.preferences object? > > Or would you implement this functionality differently? Please, I'm new to > flex and I want to > do this "the right way". Thanks for your time. > > > > > > > > > > > -- > 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 > ------------------------ Yahoo! Groups Sponsor --------------------~--> Most low income households are not online. Help bridge the digital divide today! http://us.click.yahoo.com/I258zB/QnQLAA/TtwFAA/nhFolB/TM --------------------------------------------------------------------~-> -- 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/