[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