    /**
     * This class implements the global event domain. This domain represents event fired from
     * {@link Ext#globalEvents} Observable instance. No selectors are supported for this domain.
     *
     * @protected
     */
    Ext.define('Ext.app.domain.Global', {
        extend: 'Ext.app.EventDomain',
        singleton: true,

        type: 'global',

        constructor: function() {
            var me = this;

            me.callParent();
            me.monitor(Ext.globalEvents);
        },

        /**
         * This method adds listeners on behalf of a controller. Since Global domain does not
         * support selectors, we skip this layer and just accept an object keyed by events.
         * For example:
         *
         *      domain.listen({
         *          idle: function() { ... },
         *          afterlayout: {
         *              fn: function() { ... },
         *              delay: 10
         *          }
         *      });
         *
         * @param {Object} listeners Config object containing listeners.
         *
         * @private
         */
        listen: function(listeners, controller) {
            // Parent method requires selectors so we just wrap passed listeners
            // in a dummy selector
            this.callParent([{ global: listeners }, controller]);
        },

        match: function() {
            return true;
        }
    });