/** * @private * Custom reader for property grid data */ Ext.define('Ext.grid.property.Reader', { extend: 'Ext.data.reader.Reader', successProperty: null, totalProperty: null, messageProperty: null, read: function(dataObject) { return this.readRecords(dataObject); }, readRecords: function(dataObject) { var Model = this.getModel(), result = { records: [], success: true }, val, propName; for (propName in dataObject) { if (dataObject.hasOwnProperty(propName)) { val = dataObject[propName]; if (this.isEditableValue(val)) { result.records.push(new Model({ name: propName, value: val })); } } } result.total = result.count = result.records.length; return new Ext.data.ResultSet(result); }, // @private isEditableValue: function(val){ return Ext.isPrimitive(val) || Ext.isDate(val) || val === null; } });