3
* Copyright(c) 2006-2008, Ext JS, LLC.
6
* http://extjs.com/license
10
* @class Ext.data.ArrayReader
11
* @extends Ext.data.JsonReader
12
* Data reader class to create an Array of {@link Ext.data.Record} objects from an Array.
13
* Each element of that Array represents a row of data fields. The
14
* fields are pulled into a Record object using as a subscript, the <em>mapping</em> property
15
* of the field definition if it exists, or the field's ordinal position in the definition.<br>
19
var Employee = Ext.data.Record.create([
20
{name: 'name', mapping: 1}, // "mapping" only needed if an "id" field is present which
21
{name: 'occupation', mapping: 2} // precludes using the ordinal position as the index.
23
var myReader = new Ext.data.ArrayReader({
24
id: 0 // The subscript within row Array that provides an ID for the Record (optional)
28
* This would consume an Array like this:
30
[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
32
* @cfg {String} id (optional) The subscript within row Array that provides an ID for the Record
34
* Create a new ArrayReader
35
* @param {Object} meta Metadata configuration options.
36
* @param {Object} recordType Either an Array of field definition objects
37
* as specified to {@link Ext.data.Record#create},
38
* or a {@link Ext.data.Record Record} constructor
39
* created using {@link Ext.data.Record#create}.
41
Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, {
43
* Create a data block containing Ext.data.Records from an Array.
44
* @param {Object} o An Array of row objects which represents the dataset.
45
* @return {Object} data A data block which is used by an Ext.data.Store object as
46
* a cache of Ext.data.Records.
48
readRecords : function(o){
49
var sid = this.meta ? this.meta.id : null;
50
var recordType = this.recordType, fields = recordType.prototype.fields;
53
for(var i = 0; i < root.length; i++){
56
var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
57
for(var j = 0, jlen = fields.length; j < jlen; j++){
58
var f = fields.items[j];
59
var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
60
var v = n[k] !== undefined ? n[k] : f.defaultValue;
64
var record = new recordType(values, id);
66
records[records.length] = record;
70
totalRecords : records.length
b'\\ No newline at end of file'