StoreMgr.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!
  2.  * Ext JS Library 3.0.0
  3.  * Copyright(c) 2006-2009 Ext JS, LLC
  4.  * licensing@extjs.com
  5.  * http://www.extjs.com/license
  6.  */
  7. /**
  8.  * @class Ext.StoreMgr
  9.  * @extends Ext.util.MixedCollection
  10.  * The default global group of stores.
  11.  * @singleton
  12.  */
  13. Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), {
  14.     /**
  15.      * @cfg {Object} listeners @hide
  16.      */
  17.     /**
  18.      * Registers one or more Stores with the StoreMgr. You do not normally need to register stores
  19.      * manually.  Any store initialized with a {@link Ext.data.Store#storeId} will be auto-registered. 
  20.      * @param {Ext.data.Store} store1 A Store instance
  21.      * @param {Ext.data.Store} store2 (optional)
  22.      * @param {Ext.data.Store} etc... (optional)
  23.      */
  24.     register : function(){
  25.         for(var i = 0, s; (s = arguments[i]); i++){
  26.             this.add(s);
  27.         }
  28.     },
  29.     /**
  30.      * Unregisters one or more Stores with the StoreMgr
  31.      * @param {String/Object} id1 The id of the Store, or a Store instance
  32.      * @param {String/Object} id2 (optional)
  33.      * @param {String/Object} etc... (optional)
  34.      */
  35.     unregister : function(){
  36.         for(var i = 0, s; (s = arguments[i]); i++){
  37.             this.remove(this.lookup(s));
  38.         }
  39.     },
  40.     /**
  41.      * Gets a registered Store by id
  42.      * @param {String/Object} id The id of the Store, or a Store instance
  43.      * @return {Ext.data.Store}
  44.      */
  45.     lookup : function(id){
  46.         if(Ext.isArray(id)){
  47.             var fields = ['field1'], expand = !Ext.isArray(id[0]);
  48.             if(!expand){
  49.                 for(var i = 2, len = id[0].length; i <= len; ++i){
  50.                     fields.push('field' + i);
  51.                 }
  52.             }
  53.             return new Ext.data.ArrayStore({
  54.                 fields: fields,
  55.                 data: id,
  56.                 expandData: expand,
  57.                 autoDestroy: true,
  58.                 autoCreated: true
  59.             });
  60.         }
  61.         return Ext.isObject(id) ? (id.events ? id : Ext.create(id, 'store')) : this.get(id);
  62.     },
  63.     // getKey implementation for MixedCollection
  64.     getKey : function(o){
  65.          return o.storeId;
  66.     }
  67. });