/* * @author Galaburda Oleg a_[w] * http://actualwave.com/ * */ package aw.xml.cover{ import aw.utils.object_utils; import aw.xml.XMLNotifier; import flash.events.Event; import flash.events.IEventDispatcher; [Event(name="attributeAdded", type="aw.events.XMLEvent")] [Event(name="attributeChanged", type="aw.events.XMLEvent")] [Event(name="attributeRemoved", type="aw.events.XMLEvent")] [Event(name="nodeAdded", type="aw.events.XMLEvent")] [Event(name="nodeChanged", type="aw.events.XMLEvent")] [Event(name="nodeRemoved", type="aw.events.XMLEvent")] [Event(name="namespaceAdded", type="aw.events.XMLEvent")] [Event(name="namespaceRemoved", type="aw.events.XMLEvent")] [Event(name="namespaceSet", type="aw.events.XMLEvent")] [Event(name="textSet", type="aw.events.XMLEvent")] [Event(name="nameSet", type="aw.events.XMLEvent")] [Event(name="changed", type="aw.events.XMLEvent")] [Bindable("changed")] dynamic public class XMLCoverList extends XMLCoverProxy implements IEventDispatcher{ protected var _list:XMLList; protected var _notifiers:Array; protected var _notifiersLength:int; public function XMLCoverList(l:XMLList=null, cTree:Boolean=true):void{ _list = l ? l : new XMLList(); super(_list, cTree); var len:int = _list.length(); } object_utils function get list():XMLList{ return this._list; } object_utils function get notifierList():Array{ if(!this._notifiers) this.fillNotifiersByList(); return this._notifiers.concat(); } public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void{ if(!this._notifiers) this.fillNotifiersByList(); var arr:Array = this._notifiers; var len:int = this._notifiersLength; for(var i:int=0; i1) for(var i:int=1; i0 ? this._notifiers[0].hasEventListener(type) : false; } public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void{ if(!this._notifiers) this.fillNotifiersByList(); var arr:Array = this._notifiers; var len:int = this._notifiersLength; for(var i:int=0; i0 ? this._notifiers[0].willTrigger(type) : false; } protected function fillNotifiersByList():void{ this._notifiers = new Array(); var len:int = this._list.length(); var item:XML; for(var i:int=0; i