| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 | 
							- <!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-proxy-Memory'>/**
 
- </span> * @author Ed Spencer
 
-  *
 
-  * In-memory proxy. This proxy simply uses a local variable for data storage/retrieval, so its contents are lost on
 
-  * every page refresh.
 
-  *
 
-  * Usually this Proxy isn't used directly, serving instead as a helper to a {@link Ext.data.Store Store} where a reader
 
-  * is required to load data. For example, say we have a Store for a User model and have some inline data we want to
 
-  * load, but this data isn't in quite the right format: we can use a MemoryProxy with a JsonReader to read it into our
 
-  * Store:
 
-  *
 
-  *     //this is the model we will be using in the store
 
-  *     Ext.define('User', {
 
-  *         extend: 'Ext.data.Model',
 
-  *         fields: [
 
-  *             {name: 'id',    type: 'int'},
 
-  *             {name: 'name',  type: 'string'},
 
-  *             {name: 'phone', type: 'string', mapping: 'phoneNumber'}
 
-  *         ]
 
-  *     });
 
-  *
 
-  *     //this data does not line up to our model fields - the phone field is called phoneNumber
 
-  *     var data = {
 
-  *         users: [
 
-  *             {
 
-  *                 id: 1,
 
-  *                 name: 'Ed Spencer',
 
-  *                 phoneNumber: '555 1234'
 
-  *             },
 
-  *             {
 
-  *                 id: 2,
 
-  *                 name: 'Abe Elias',
 
-  *                 phoneNumber: '666 1234'
 
-  *             }
 
-  *         ]
 
-  *     };
 
-  *
 
-  *     //note how we set the 'root' in the reader to match the data structure above
 
-  *     var store = Ext.create('Ext.data.Store', {
 
-  *         autoLoad: true,
 
-  *         model: 'User',
 
-  *         data : data,
 
-  *         proxy: {
 
-  *             type: 'memory',
 
-  *             reader: {
 
-  *                 type: 'json',
 
-  *                 root: 'users'
 
-  *             }
 
-  *         }
 
-  *     });
 
-  */
 
- Ext.define('Ext.data.proxy.Memory', {
 
-     extend: 'Ext.data.proxy.Client',
 
-     alias: 'proxy.memory',
 
-     alternateClassName: 'Ext.data.MemoryProxy',
 
- <span id='Ext-data-proxy-Memory-cfg-data'>    /**
 
- </span>     * @cfg {Object} data
 
-      * Optional data to pass to configured Reader.
 
-      */
 
-     constructor: function(config) {
 
-         this.callParent([config]);
 
-         //ensures that the reader has been instantiated properly
 
-         this.setReader(this.reader);
 
-     },
 
-     
 
- <span id='Ext-data-proxy-Memory-method-updateOperation'>    /**
 
- </span>     * @private
 
-      * Fake processing function to commit the records, set the current operation
 
-      * to successful and call the callback if provided. This function is shared
 
-      * by the create, update and destroy methods to perform the bare minimum
 
-      * processing required for the proxy to register a result from the action.
 
-      */
 
-     updateOperation: function(operation, callback, scope) {
 
-         var i = 0,
 
-             recs = operation.getRecords(),
 
-             len = recs.length;
 
-             
 
-         for (i; i < len; i++) {
 
-             recs[i].commit();
 
-         }
 
-         operation.setCompleted();
 
-         operation.setSuccessful();
 
-         
 
-         Ext.callback(callback, scope || this, [operation]);
 
-     },
 
-     
 
- <span id='Ext-data-proxy-Memory-method-create'>    /**
 
- </span>     * Currently this is a hard-coded method that simply commits any records and sets the operation to successful,
 
-      * then calls the callback function, if provided. It is essentially mocking a server call in memory, but since
 
-      * there is no real back end in this case there's not much else to do. This method can be easily overridden to 
 
-      * implement more complex logic if needed.
 
-      * @param {Ext.data.Operation} operation The Operation to perform
 
-      * @param {Function} callback Callback function to be called when the Operation has completed (whether
 
-      * successful or not)
 
-      * @param {Object} scope Scope to execute the callback function in
 
-      * @method
 
-      */
 
-     create: function() {
 
-         this.updateOperation.apply(this, arguments);
 
-     },
 
-     
 
- <span id='Ext-data-proxy-Memory-method-update'>    /**
 
- </span>     * Currently this is a hard-coded method that simply commits any records and sets the operation to successful,
 
-      * then calls the callback function, if provided. It is essentially mocking a server call in memory, but since
 
-      * there is no real back end in this case there's not much else to do. This method can be easily overridden to 
 
-      * implement more complex logic if needed.
 
-      * @param {Ext.data.Operation} operation The Operation to perform
 
-      * @param {Function} callback Callback function to be called when the Operation has completed (whether
 
-      * successful or not)
 
-      * @param {Object} scope Scope to execute the callback function in
 
-      * @method
 
-      */
 
-     update: function() {
 
-         this.updateOperation.apply(this, arguments);
 
-     },
 
-     
 
- <span id='Ext-data-proxy-Memory-method-destroy'>    /**
 
- </span>     * Currently this is a hard-coded method that simply commits any records and sets the operation to successful,
 
-      * then calls the callback function, if provided. It is essentially mocking a server call in memory, but since
 
-      * there is no real back end in this case there's not much else to do. This method can be easily overridden to 
 
-      * implement more complex logic if needed.
 
-      * @param {Ext.data.Operation} operation The Operation to perform
 
-      * @param {Function} callback Callback function to be called when the Operation has completed (whether
 
-      * successful or not)
 
-      * @param {Object} scope Scope to execute the callback function in
 
-      * @method
 
-      */
 
-     destroy: function() {
 
-         this.updateOperation.apply(this, arguments);
 
-     },
 
- <span id='Ext-data-proxy-Memory-method-read'>    /**
 
- </span>     * Reads data from the configured {@link #data} object. Uses the Proxy's {@link #reader}, if present.
 
-      * @param {Ext.data.Operation} operation The read Operation
 
-      * @param {Function} callback The callback to call when reading has completed
 
-      * @param {Object} scope The scope to call the callback function in
 
-      */
 
-     read: function(operation, callback, scope) {
 
-         var me = this;
 
-         operation.resultSet = me.getReader().read(me.data);
 
-         operation.setCompleted();
 
-         operation.setSuccessful();
 
-         Ext.callback(callback, scope || me, [operation]);
 
-     },
 
-     clear: Ext.emptyFn
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |