Version 3.18.1
Show:

File: event-custom/js/handle.js

            /**
             * Return value from all subscribe operations
             * @class EventHandle
             * @constructor
             * @param {CustomEvent} evt the custom event.
             * @param {Subscriber} sub the subscriber.
             */
            Y.EventHandle = function(evt, sub) {
            
                /**
                 * The custom event
                 *
                 * @property evt
                 * @type CustomEvent
                 */
                this.evt = evt;
            
                /**
                 * The subscriber object
                 *
                 * @property sub
                 * @type Subscriber
                 */
                this.sub = sub;
            };
            
            Y.EventHandle.prototype = {
                batch: function(f, c) {
                    f.call(c || this, this);
                    if (Y.Lang.isArray(this.evt)) {
                        Y.Array.each(this.evt, function(h) {
                            h.batch.call(c || h, f);
                        });
                    }
                },
            
                /**
                 * Detaches this subscriber
                 * @method detach
                 * @return {Number} the number of detached listeners
                 */
                detach: function() {
                    var evt = this.evt, detached = 0, i;
                    if (evt) {
                        // Y.log('EventHandle.detach: ' + this.sub, 'info', 'Event');
                        if (Y.Lang.isArray(evt)) {
                            for (i = 0; i < evt.length; i++) {
                                detached += evt[i].detach();
                            }
                        } else {
                            evt._delete(this.sub);
                            detached = 1;
                        }
            
                    }
            
                    return detached;
                },
            
                /**
                 * Monitor the event state for the subscribed event.  The first parameter
                 * is what should be monitored, the rest are the normal parameters when
                 * subscribing to an event.
                 * @method monitor
                 * @param what {string} what to monitor ('attach', 'detach', 'publish').
                 * @return {EventHandle} return value from the monitor event subscription.
                 */
                monitor: function(what) {
                    return this.evt.monitor.apply(this.evt, arguments);
                }
            };