package views { import core.IModel; import events.ViewInitializedEvent; import mx.binding.utils.ChangeWatcher; import mx.core.UIComponent; import mx.events.FlexEvent; public class SimpleViewUtil { public static function addEventListeners(oldModel:IModel, model:IModel, members:Array, changeHandler:Function) : void { if(oldModel) { for each(var member:String in members) { var events:Object = ChangeWatcher.getEvents(oldModel, member); for(var eventName:String in events) { oldModel.removeEventListener(eventName, changeHandler); } } } for each(member in members) { events = ChangeWatcher.getEvents(model, member); for(eventName in events) { model.addEventListener(eventName, changeHandler); } } } public static function addValidationListeners(component:UIComponent) : void { component.dispatchEvent(new ViewInitializedEvent()); component.addEventListener(FlexEvent.INVALID, function() : void { //component.setStyle("oldBackgroundColor", component.getStyle("backgroundColor")); //component.setStyle("backgroundColor", component.getStyle("errorColor")); component.parent.dispatchEvent(new FlexEvent(FlexEvent.INVALID, true)); }); component.addEventListener(FlexEvent.VALID, function() : void { //component.setStyle("backgroundColor", component.getStyle("oldBackgroundColor")); component.parent.dispatchEvent(new FlexEvent(FlexEvent.VALID, true)); }); } } }