/* * @author Galaburda Oleg a_[w] * http://actualwave.com/ * */ package aw.xml{ import aw.events.XMLEvent; import aw.utils.object_utils; import aw.xml.cover.XMLCoverProxy; 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 XMLCover extends XMLCoverProxy implements IEventDispatcher{ protected var _xml:XML; protected var _notifier:XMLNotifier; public function XMLCover(param:*=null, cTree:Boolean=true):void{ if(param is XML){ _xml = param; }else if(param!=null){ _xml = <{String(param)}/>; }else _xml = new XML(null); super(_xml, cTree); _notifier = XMLNotifier.getInstance(_xml); } object_utils function get notifier():XMLNotifier{ return this._notifier; } object_utils function get xml():XML{ return this._xml; } public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void{ this._notifier.addEventListener(type, listener, useCapture, priority, useWeakReference); } public function dispatchEvent(event:Event):Boolean{ return this._notifier.dispatchEvent(event); } public function hasEventListener(type:String):Boolean{ return this._notifier.hasEventListener(type); } public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void{ this._notifier.removeEventListener(type, listener, useCapture); } public function willTrigger(type:String):Boolean{ return this._notifier.willTrigger(type); } override protected function nextValue(index:int):*{ return this._createTree ? this.createCover(this._xml[0]) : this._xml[0]; } } }