commit extjs-2.2.1
[extjs.git] / air / src / NativeObservable.js
1 /*\r
2  * Ext JS Library 0.30\r
3  * Copyright(c) 2006-2009, Ext JS, LLC.\r
4  * licensing@extjs.com\r
5  * \r
6  * http://extjs.com/license\r
7  */\r
8 \r
9 /**\r
10  * @class Ext.air.NativeObservable\r
11  * @extends Ext.util.Observable\r
12  * \r
13  * Adds ability for Ext Observable functionality to proxy events for native (AIR) object wrappers\r
14  * \r
15  * @constructor\r
16  */\r
17 \r
18 Ext.air.NativeObservable = Ext.extend(Ext.util.Observable, {\r
19         addListener : function(name){\r
20                 this.proxiedEvents = this.proxiedEvents || {};\r
21                 if(!this.proxiedEvents[name]){\r
22                         var instance = this;\r
23                         var f = function(){\r
24                                 var args = Array.prototype.slice.call(arguments, 0);\r
25                                 args.unshift(name);\r
26                                 instance.fireEvent.apply(instance, args);\r
27                         };\r
28                         this.proxiedEvents[name] = f;\r
29                         this.getNative().addEventListener(name, f);\r
30                 }\r
31                 Ext.air.NativeObservable.superclass.addListener.apply(this, arguments);\r
32         }\r
33 });\r
34 \r
35 Ext.air.NativeObservable.prototype.on = Ext.air.NativeObservable.prototype.addListener;