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>
|