[flexcoders] PreferencesWindow design pattern

2005-12-01 Thread charged2885
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.









 Yahoo! Groups Sponsor ~-- 
1.2 million kids a year are victims of human trafficking. Stop slavery.
http://us.click.yahoo.com/WpTY2A/izNLAA/yQLSAA/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/
 




Re: [flexcoders] PreferencesWindow design pattern

2005-12-01 Thread JesterXL
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/