[Commits] r1329 - in sandbox/camptocamp/geobretagne: lib/GeoExt/data tests/lib/GeoExt/data

commits at geoext.org commits at geoext.org
Wed Aug 19 11:05:32 CEST 2009


Author: bbinet
Date: 2009-08-19 11:05:32 +0200 (Wed, 19 Aug 2009)
New Revision: 1329

Modified:
   sandbox/camptocamp/geobretagne/lib/GeoExt/data/LayerRecord.js
   sandbox/camptocamp/geobretagne/tests/lib/GeoExt/data/LayerRecord.html
Log:
apply patch patch_58-r1327-A0.diff from geoext ticket 58 (reopened): this patch adds a clone method to LayerRecord.

Modified: sandbox/camptocamp/geobretagne/lib/GeoExt/data/LayerRecord.js
===================================================================
--- sandbox/camptocamp/geobretagne/lib/GeoExt/data/LayerRecord.js	2009-08-19 08:57:34 UTC (rev 1328)
+++ sandbox/camptocamp/geobretagne/lib/GeoExt/data/LayerRecord.js	2009-08-19 09:05:32 UTC (rev 1329)
@@ -27,6 +27,20 @@
     {name: "title", type: "string", mapping: "name"}
 ]);
 
+/** api: method[clone]
+ *  :param id: ``String`` (optional) A new Record id.
+ *  :return: ``GeoExt.data.LayerRecord`` A new layer record.
+ *  
+ *  Creates a clone of this LayerRecord. 
+ */
+GeoExt.data.LayerRecord.prototype.clone = function(id) { 
+    var layer = this.get("layer") && this.get("layer").clone(); 
+    return new this.constructor( 
+        Ext.applyIf({layer: layer}, this.data), 
+        id || layer.id
+    );
+}; 
+
 /** api: classmethod[create]
  *  :param o: ``Array`` Field definition as in ``Ext.data.Record.create``. Can
  *      be omitted if no additional fields are required.

Modified: sandbox/camptocamp/geobretagne/tests/lib/GeoExt/data/LayerRecord.html
===================================================================
--- sandbox/camptocamp/geobretagne/tests/lib/GeoExt/data/LayerRecord.html	2009-08-19 08:57:34 UTC (rev 1328)
+++ sandbox/camptocamp/geobretagne/tests/lib/GeoExt/data/LayerRecord.html	2009-08-19 09:05:32 UTC (rev 1329)
@@ -43,6 +43,27 @@
             record = new c({layer: layer, title: layer.name, foo: "bar"}, layer.id);
             t.eq(record.get("foo"), "bar", "foo data row set correctly");
         }
+
+         
+        function test_clone(t) { 
+             
+            t.plan(4); 
+             
+            var layer = new OpenLayers.Layer(); 
+            var recordType = GeoExt.data.LayerRecord.create(); 
+             
+            var record = new recordType({layer: layer, title: layer.name}); 
+            var clone = record.clone(); 
+
+            t.ok(clone.id !== record.id, "clone record does not have original id"); 
+            t.ok(clone.id == clone.get("layer").id, "clone record id is same as its layer id"); 
+             
+            record.set("title", "foo"); 
+            t.ok(clone.get("title") !== "foo", "setting a property on original doesn't modify clone"); 
+             
+            t.ok(clone.get("layer") !== layer, "clone does not have original layer"); 
+             
+        } 
         
     </script>
   <body>



More information about the Commits mailing list