| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 | <!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-data-StoreManager'>/**</span> * @docauthor Evan Trimboli <evan@sencha.com> * * Contains a collection of all stores that are created that have an identifier. An identifier can be assigned by * setting the {@link Ext.data.AbstractStore#storeId storeId} property. When a store is in the StoreManager, it can be * referred to via it's identifier: * *     Ext.create('Ext.data.Store', { *         model: 'SomeModel', *         storeId: 'myStore' *     }); * *     var store = Ext.data.StoreManager.lookup('myStore'); * * Also note that the {@link #lookup} method is aliased to {@link Ext#getStore} for convenience. * * If a store is registered with the StoreManager, you can also refer to the store by it's identifier when registering * it with any Component that consumes data from a store: * *     Ext.create('Ext.data.Store', { *         model: 'SomeModel', *         storeId: 'myStore' *     }); * *     Ext.create('Ext.view.View', { *         store: 'myStore', *         // other configuration here *     }); * */Ext.define('Ext.data.StoreManager', {    extend: 'Ext.util.MixedCollection',    alternateClassName: ['Ext.StoreMgr', 'Ext.data.StoreMgr', 'Ext.StoreManager'],    singleton: true,    uses: ['Ext.data.ArrayStore'],    <span id='Ext-data-StoreManager-cfg-listeners'>    /**</span>     * @cfg {Object} listeners     * @private     */<span id='Ext-data-StoreManager-method-register'>    /**</span>     * Registers one or more Stores with the StoreManager. You do not normally need to register stores manually. Any     * store initialized with a {@link Ext.data.Store#storeId} will be auto-registered.     * @param {Ext.data.Store...} stores Any number of Store instances     */    register : function() {        for (var i = 0, s; (s = arguments[i]); i++) {            this.add(s);        }    },<span id='Ext-data-StoreManager-method-unregister'>    /**</span>     * Unregisters one or more Stores with the StoreManager     * @param {String/Object...} stores Any number of Store instances or ID-s     */    unregister : function() {        for (var i = 0, s; (s = arguments[i]); i++) {            this.remove(this.lookup(s));        }    },<span id='Ext-data-StoreManager-method-lookup'>    /**</span>     * Gets a registered Store by id     * @param {String/Object} store The id of the Store, or a Store instance, or a store configuration     * @return {Ext.data.Store}     */    lookup : function(store) {        // handle the case when we are given an array or an array of arrays.        if (Ext.isArray(store)) {            var fields = ['field1'],                 expand = !Ext.isArray(store[0]),                data = store,                i,                len;                            if(expand){                data = [];                for (i = 0, len = store.length; i < len; ++i) {                    data.push([store[i]]);                }            } else {                for(i = 2, len = store[0].length; i <= len; ++i){                    fields.push('field' + i);                }            }            return new Ext.data.ArrayStore({                data  : data,                fields: fields,                autoDestroy: true,                autoCreated: true,                expanded: expand            });        }                if (Ext.isString(store)) {            // store id            return this.get(store);        } else {            // store instance or store config            return Ext.data.AbstractStore.create(store);        }    },    // getKey implementation for MixedCollection    getKey : function(o) {         return o.storeId;    }}, function() {    <span id='Ext-method-regStore'>    /**</span>     * Creates a new store for the given id and config, then registers it with the {@link Ext.data.StoreManager Store Manager}.      * Sample usage:     *     *     Ext.regStore('AllUsers', {     *         model: 'User'     *     });     *     *     // the store can now easily be used throughout the application     *     new Ext.List({     *         store: 'AllUsers',     *         ... other config     *     });     *     * @param {String} id The id to set on the new store     * @param {Object} config The store config     * @member Ext     * @method regStore     */    Ext.regStore = function(name, config) {        var store;        if (Ext.isObject(name)) {            config = name;        } else {            config.storeId = name;        }        if (config instanceof Ext.data.Store) {            store = config;        } else {            store = new Ext.data.Store(config);        }        return Ext.data.StoreManager.register(store);    };<span id='Ext-method-getStore'>    /**</span>     * Shortcut to {@link Ext.data.StoreManager#lookup}.     * @member Ext     * @method getStore     * @inheritdoc Ext.data.StoreManager#lookup     */    Ext.getStore = function(name) {        return Ext.data.StoreManager.lookup(name);    };});</pre></body></html>
 |