| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- <!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-ux-data-PagingMemoryProxy'>/**
 
- </span> * @class Ext.ux.data.PagingMemoryProxy
 
-  * @extends Ext.data.proxy.Memory
 
-  * <p>Paging Memory Proxy, allows to use paging grid with in memory dataset</p>
 
-  */
 
- Ext.define('Ext.ux.data.PagingMemoryProxy', {
 
-     extend: 'Ext.data.proxy.Memory',
 
-     alias: 'proxy.pagingmemory',
 
-     alternateClassName: 'Ext.data.PagingMemoryProxy',
 
-     read : function(operation, callback, scope){
 
-         var reader = this.getReader(),
 
-             result = reader.read(this.data),
 
-             sorters, filters, sorterFn, records;
 
-         scope = scope || this;
 
-         // filtering
 
-         filters = operation.filters;
 
-         if (filters.length > 0) {
 
-             //at this point we have an array of  Ext.util.Filter objects to filter with,
 
-             //so here we construct a function that combines these filters by ANDing them together
 
-             records = [];
 
-             Ext.each(result.records, function(record) {
 
-                 var isMatch = true,
 
-                     length = filters.length,
 
-                     i;
 
-                 for (i = 0; i < length; i++) {
 
-                     var filter = filters[i],
 
-                         fn     = filter.filterFn,
 
-                         scope  = filter.scope;
 
-                     isMatch = isMatch && fn.call(scope, record);
 
-                 }
 
-                 if (isMatch) {
 
-                     records.push(record);
 
-                 }
 
-             }, this);
 
-             result.records = records;
 
-             result.totalRecords = result.total = records.length;
 
-         }
 
-         
 
-         // sorting
 
-         sorters = operation.sorters;
 
-         if (sorters.length > 0) {
 
-             //construct an amalgamated sorter function which combines all of the Sorters passed
 
-             sorterFn = function(r1, r2) {
 
-                 var result = sorters[0].sort(r1, r2),
 
-                     length = sorters.length,
 
-                     i;
 
-                 
 
-                     //if we have more than one sorter, OR any additional sorter functions together
 
-                     for (i = 1; i < length; i++) {
 
-                         result = result || sorters[i].sort.call(this, r1, r2);
 
-                     }                
 
-                
 
-                 return result;
 
-             };
 
-     
 
-             result.records.sort(sorterFn);
 
-         }
 
-         
 
-         // paging (use undefined cause start can also be 0 (thus false))
 
-         if (operation.start !== undefined && operation.limit !== undefined) {
 
-             result.records = result.records.slice(operation.start, operation.start + operation.limit);
 
-             result.count = result.records.length;
 
-         }
 
-         Ext.apply(operation, {
 
-             resultSet: result
 
-         });
 
-         
 
-         operation.setCompleted();
 
-         operation.setSuccessful();
 
-         Ext.Function.defer(function () {
 
-             Ext.callback(callback, scope, [operation]);
 
-         }, 10);
 
-     }
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |