-<html>
-<head>
- <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>
-</head>
-<body onload="prettyPrint();">
- <pre class="prettyprint lang-js">/*!
- * Ext JS Library 3.0.3
- * Copyright(c) 2006-2009 Ext JS, LLC
- * licensing@extjs.com
- * http://www.extjs.com/license
- */
-<div id="cls-Ext.data.Record"></div>/**
+<html>\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \r
+ <title>The source code</title>\r
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body onload="prettyPrint();">\r
+ <pre class="prettyprint lang-js"><div id="cls-Ext.data.Record"></div>/**
* @class Ext.data.Record
* <p>Instances of this class encapsulate both Record <em>definition</em> information, and Record
* <em>value</em> information for use in {@link Ext.data.Store} objects, or any code which needs
* @param {Object} data (Optional) An object, the properties of which provide values for the new Record's
* fields. If not specified the <code>{@link Ext.data.Field#defaultValue defaultValue}</code>
* for each field will be assigned.
- * @param {Object} id (Optional) The id of the Record. This id should be unique, and is used by the
- * {@link Ext.data.Store} object which owns the Record to index its collection of Records. If
- * an <code>id</code> is not specified a <b><code>{@link #phantom}</code></b> Record will be created
- * with an {@link #Record.id automatically generated id}.
+ * @param {Object} id (Optional) The id of the Record. The id is used by the
+ * {@link Ext.data.Store} object which owns the Record to index its collection
+ * of Records (therefore this id should be unique within each store). If an
+ * <code>id</code> is not specified a <b><code>{@link #phantom}</code></b>
+ * Record will be created with an {@link #Record.id automatically generated id}.
*/
Ext.data.Record = function(data, id){
// if no id, call the auto id method
* @property id
* @type {Object}
*/
+ <div id="prop-Ext.data.Record-node"></div>/**
+ * <p><b>Only present if this Record was created by an {@link Ext.data.XmlReader XmlReader}</b>.</p>
+ * <p>The XML element which was the source of the data for this Record.</p>
+ * @property node
+ * @type {XMLElement}
+ */
+ <div id="prop-Ext.data.Record-json"></div>/**
+ * <p><b>Only present if this Record was created by an {@link Ext.data.ArrayReader ArrayReader} or a {@link Ext.data.JsonReader JsonReader}</b>.</p>
+ * <p>The Array or object which was the source of the data for this Record.</p>
+ * @property json
+ * @type {Array|Object}
+ */
<div id="prop-Ext.data.Record-dirty"></div>/**
* Readonly flag - true if this Record has been modified.
* @type Boolean
*/
dirty : false,
editing : false,
- error: null,
+ error : null,
<div id="prop-Ext.data.Record-modified"></div>/**
* This object contains a key and value storing the original values of all modified
* fields or is null if no fields have been modified.
* @property modified
* @type {Object}
*/
- modified: null,
+ modified : null,
<div id="prop-Ext.data.Record-phantom"></div>/**
- * <tt>false</tt> when the record does not yet exist in a server-side database (see
+ * <tt>true</tt> when the record does not yet exist in a server-side database (see
* {@link #markDirty}). Any record which has a real database pk set as its id property
* is NOT a phantom -- it's real.
* @property phantom
// update the record in the store, bypass setting dirty flag,
// and do not store the change in the {@link Ext.data.Store#getModifiedRecords modified records}
-rec.{@link #data}['firstname'] = 'Wilma'); // updates record, but not the view
+rec.{@link #data}['firstname'] = 'Wilma'; // updates record, but not the view
rec.{@link #commit}(); // updates the view
* </code></pre>
* <b>Notes</b>:<div class="mdetail-params"><ul>
* event fire.</li>
* </ul></div>
* @param {String} name The {@link Ext.data.Field#name name of the field} to set.
- * @param {Object} value The value to set the field to.
+ * @param {String/Object/Array} value The value to set the field to.
*/
set : function(name, value){
- var isObj = (typeof value === 'object');
- if(!isObj && String(this.data[name]) === String(value)){
- return;
- } else if (isObj && Ext.encode(this.data[name]) === Ext.encode(value)) {
+ var encode = Ext.isPrimitive(value) ? String : Ext.encode;
+ if(encode(this.data[name]) == encode(value)) {
return;
- }
+ }
this.dirty = true;
if(!this.modified){
this.modified = {};
}
- if(typeof this.modified[name] == 'undefined'){
+ if(this.modified[name] === undefined){
this.modified[name] = this.data[name];
}
this.data[name] = value;
},
// private
- afterEdit: function(){
+ afterEdit : function(){
if(this.store){
this.store.afterEdit(this);
}
},
// private
- afterReject: function(){
+ afterReject : function(){
if(this.store){
this.store.afterReject(this);
}
},
// private
- afterCommit: function(){
+ afterCommit : function(){
if(this.store){
this.store.afterCommit(this);
}
},
<div id="method-Ext.data.Record-copy"></div>/**
- * Creates a copy of this Record.
- * @param {String} id (optional) A new Record id, defaults to {@link #Record.id autogenerating an id}.
- * Note: if an <code>id</code> is not specified the copy created will be a
- * <code>{@link #phantom}</code> Record.
+ * Creates a copy (clone) of this Record.
+ * @param {String} id (optional) A new Record id, defaults to the id
+ * of the record being copied. See <code>{@link #id}</code>.
+ * To generate a phantom record with a new id use:<pre><code>
+var rec = record.copy(); // clone the record
+Ext.data.Record.id(rec); // automatically generate a unique sequential id
+ * </code></pre>
* @return {Record}
*/
copy : function(newId) {
this.modified[f.name] = this.data[f.name];
},this);
}
-};</pre>
-</body>
+};
+</pre> \r
+</body>\r
</html>
\ No newline at end of file