Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / src / data / DirectStore.js
1 /**
2  * @class Ext.data.DirectStore
3  * @extends Ext.data.Store
4  * <p>Small helper class to create an {@link Ext.data.Store} configured with an
5  * {@link Ext.data.proxy.Direct} and {@link Ext.data.reader.Json} to make interacting
6  * with an {@link Ext.Direct} Server-side {@link Ext.direct.Provider Provider} easier.
7  * To create a different proxy/reader combination create a basic {@link Ext.data.Store}
8  * configured as needed.</p>
9  *
10  * <p><b>*Note:</b> Although they are not listed, this class inherits all of the config options of:</p>
11  * <div><ul class="mdetail-params">
12  * <li><b>{@link Ext.data.Store Store}</b></li>
13  * <div class="sub-desc"><ul class="mdetail-params">
14  *
15  * </ul></div>
16  * <li><b>{@link Ext.data.reader.Json JsonReader}</b></li>
17  * <div class="sub-desc"><ul class="mdetail-params">
18  * <li><tt><b>{@link Ext.data.reader.Json#root root}</b></tt></li>
19  * <li><tt><b>{@link Ext.data.reader.Json#idProperty idProperty}</b></tt></li>
20  * <li><tt><b>{@link Ext.data.reader.Json#totalProperty totalProperty}</b></tt></li>
21  * </ul></div>
22  *
23  * <li><b>{@link Ext.data.proxy.Direct DirectProxy}</b></li>
24  * <div class="sub-desc"><ul class="mdetail-params">
25  * <li><tt><b>{@link Ext.data.proxy.Direct#directFn directFn}</b></tt></li>
26  * <li><tt><b>{@link Ext.data.proxy.Direct#paramOrder paramOrder}</b></tt></li>
27  * <li><tt><b>{@link Ext.data.proxy.Direct#paramsAsHash paramsAsHash}</b></tt></li>
28  * </ul></div>
29  * </ul></div>
30  *
31  * @constructor
32  * @param {Object} config
33  */
34
35 Ext.define('Ext.data.DirectStore', {
36     /* Begin Definitions */
37     
38     extend: 'Ext.data.Store',
39     
40     alias: 'store.direct',
41     
42     requires: ['Ext.data.proxy.Direct'],
43    
44     /* End Definitions */
45    
46    constructor : function(config){
47         config = Ext.apply({}, config);
48         if (!config.proxy) {
49             var proxy = {
50                 type: 'direct',
51                 reader: {
52                     type: 'json'
53                 }
54             };
55             Ext.copyTo(proxy, config, 'paramOrder,paramsAsHash,directFn,api,simpleSortMode');
56             Ext.copyTo(proxy.reader, config, 'totalProperty,root,idProperty');
57             config.proxy = proxy;
58         }
59         this.callParent([config]);
60     }    
61 });