| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
-   <title>The source code</title>
 
-   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
-   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
-   <style type="text/css">
 
-     .highlight { display: block; background-color: #ddd; }
 
-   </style>
 
-   <script type="text/javascript">
 
-     function highlight() {
 
-       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
 
-     }
 
-   </script>
 
- </head>
 
- <body onload="prettyPrint(); highlight();">
 
-   <pre class="prettyprint lang-js"><span id='Ext-app-EventBus'>/**
 
- </span> * @class Ext.app.EventBus
 
-  * @private
 
-  */
 
- Ext.define('Ext.app.EventBus', {
 
-     requires: [
 
-         'Ext.util.Event',
 
-         'Ext.Component'
 
-     ],
 
-     mixins: {
 
-         observable: 'Ext.util.Observable'
 
-     },
 
-     constructor: function() {
 
-         this.mixins.observable.constructor.call(this);
 
-         this.bus = {};
 
-         var me = this;
 
-         Ext.override(Ext.Component, {
 
-             fireEvent: function(ev) {
 
-                 if (Ext.util.Observable.prototype.fireEvent.apply(this, arguments) !== false) {
 
-                     return me.dispatch.call(me, ev, this, arguments);
 
-                 }
 
-                 return false;
 
-             }
 
-         });
 
-     },
 
-     dispatch: function(ev, target, args) {
 
-         var bus = this.bus,
 
-             selectors = bus[ev],
 
-             selector, controllers, id, events, event, i, ln;
 
-         if (selectors) {
 
-             // Loop over all the selectors that are bound to this event
 
-             for (selector in selectors) {
 
-                 // Check if the target matches the selector
 
-                 if (selectors.hasOwnProperty(selector) && target.is(selector)) {
 
-                     // Loop over all the controllers that are bound to this selector
 
-                     controllers = selectors[selector];
 
-                     for (id in controllers) {
 
-                         if (controllers.hasOwnProperty(id)) {
 
-                             // Loop over all the events that are bound to this selector on this controller
 
-                             events = controllers[id];
 
-                             for (i = 0, ln = events.length; i < ln; i++) {
 
-                                 event = events[i];
 
-                                 // Fire the event!
 
-                                 if (event.fire.apply(event, Array.prototype.slice.call(args, 1)) === false) {
 
-                                     return false;
 
-                                 }
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         return true;
 
-     },
 
-     control: function(selectors, listeners, controller) {
 
-         var bus = this.bus,
 
-             hasListeners, tree, list,
 
-             selector, options, listener, scope, event, listenerList, ev;
 
-         if (Ext.isString(selectors)) {
 
-             selector = selectors;
 
-             selectors = {};
 
-             selectors[selector] = listeners;
 
-             this.control(selectors, null, controller);
 
-             return;
 
-         }
 
-         hasListeners = Ext.util.Observable.HasListeners.prototype;
 
-         for (selector in selectors) {
 
-             if (selectors.hasOwnProperty(selector)) {
 
-                 listenerList = selectors[selector] || {};
 
-                 for (ev in listenerList) {
 
-                     if (listenerList.hasOwnProperty(ev)) {
 
-                         options  = {};
 
-                         listener = listenerList[ev];
 
-                         scope    = controller;
 
-                         event    = new Ext.util.Event(controller, ev);
 
-                         // Normalize the listener
 
-                         if (Ext.isObject(listener)) {
 
-                             options  = listener;
 
-                             listener = options.fn;
 
-                             scope    = options.scope || controller;
 
-                             delete options.fn;
 
-                             delete options.scope;
 
-                         }
 
-                         event.addListener(listener, scope, options);
 
-                         hasListeners[ev] = 1;
 
-                         // Create the bus tree if it is not there yet
 
-                         tree = bus[ev] || (bus[ev] = {});
 
-                         tree = tree[selector] || (tree[selector] = {});
 
-                         list = tree[controller.id] || (tree[controller.id] = []);
 
-                         // Push our listener in our bus
 
-                         list.push(event);
 
-                     }
 
-                 } //end inner loop
 
-             }
 
-         } //end outer loop
 
-     }
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |