[Commits] r382 - in sandbox/opengeo/geoexplorer: . lib/GeoExt/data tests/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Tue Apr 14 22:32:13 CEST 2009
Author: sbenthall
Date: 2009-04-14 22:32:13 +0200 (Tue, 14 Apr 2009)
New Revision: 382
Modified:
sandbox/opengeo/geoexplorer/lib/GeoExt/data/FeatureRecord.js
sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerRecord.js
sandbox/opengeo/geoexplorer/modifications.txt
sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/FeatureRecord.html
sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerRecord.html
Log:
Made FeatureRecord.create() and LayerRecord.create() not modify prototype fields. (see #40)
Modified: sandbox/opengeo/geoexplorer/lib/GeoExt/data/FeatureRecord.js
===================================================================
--- sandbox/opengeo/geoexplorer/lib/GeoExt/data/FeatureRecord.js 2009-04-14 18:50:41 UTC (rev 381)
+++ sandbox/opengeo/geoexplorer/lib/GeoExt/data/FeatureRecord.js 2009-04-14 20:32:13 UTC (rev 382)
@@ -55,10 +55,25 @@
GeoExt.data.FeatureRecord.create = function(o) {
var f = Ext.extend(GeoExt.data.FeatureRecord, {});
var p = f.prototype;
- if(o) {
+
+ var oldFields = p.fields;
+ p.fields = new Ext.util.MixedCollection(false, function(field){
+ return field.name;
+ });
+
+ oldFields.each(function(field){
+ p.fields.add(field);
+ });
+
+ if(o){
for(var i = 0, len = o.length; i < len; i++){
p.fields.add(new Ext.data.Field(o[i]));
}
}
+
+ f.getField = function(name){
+ return p.fields.get(name);
+ };
+
return f;
};
Modified: sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerRecord.js
===================================================================
--- sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerRecord.js 2009-04-14 18:50:41 UTC (rev 381)
+++ sandbox/opengeo/geoexplorer/lib/GeoExt/data/LayerRecord.js 2009-04-14 20:32:13 UTC (rev 382)
@@ -63,10 +63,25 @@
GeoExt.data.LayerRecord.create = function(o) {
var f = Ext.extend(GeoExt.data.LayerRecord, {});
var p = f.prototype;
- if(o) {
+
+ var oldFields = p.fields;
+ p.fields = new Ext.util.MixedCollection(false, function(field){
+ return field.name;
+ });
+
+ oldFields.each(function(field){
+ p.fields.add(field);
+ });
+
+ if(o){
for(var i = 0, len = o.length; i < len; i++){
p.fields.add(new Ext.data.Field(o[i]));
}
}
+
+ f.getField = function(name){
+ return p.fields.get(name);
+ };
+
return f;
};
Modified: sandbox/opengeo/geoexplorer/modifications.txt
===================================================================
--- sandbox/opengeo/geoexplorer/modifications.txt 2009-04-14 18:50:41 UTC (rev 381)
+++ sandbox/opengeo/geoexplorer/modifications.txt 2009-04-14 20:32:13 UTC (rev 382)
@@ -6,4 +6,5 @@
* Add WMSCapabilitiesStore (see #9)
* Added examples of grid using WMSCapabilitiesStore (see #9)
* Added (with some tweaks) LegendPanel from GeoExt #2
+ * Made FeatureRecord.create() and LayerRecord.create() not modify prototype fields. (see #40)
Modified: sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/FeatureRecord.html
===================================================================
--- sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/FeatureRecord.html 2009-04-14 18:50:41 UTC (rev 381)
+++ sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/FeatureRecord.html 2009-04-14 20:32:13 UTC (rev 382)
@@ -10,7 +10,7 @@
<script type="text/javascript">
function test_featurerecord(t) {
- t.plan(14);
+ t.plan(15);
var c, feature, record;
@@ -36,6 +36,8 @@
"\"create(o)\" returns a func with a \"extra1\" field in its prototype");
t.eq(c.prototype.fields.items[4].name, "extra2",
"\"create(o)\" returns a func with a \"extra2\" field in its prototype");
+ t.eq(GeoExt.data.FeatureRecord.prototype.fields.items.length, 3, "create() method does not modify class prototype's fields");
+
feature = new OpenLayers.Feature();
record = new c({feature: feature, state: feature.state, fid: feature.fid}, feature.id);
Modified: sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerRecord.html
===================================================================
--- sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerRecord.html 2009-04-14 18:50:41 UTC (rev 381)
+++ sandbox/opengeo/geoexplorer/tests/lib/GeoExt/data/LayerRecord.html 2009-04-14 20:32:13 UTC (rev 382)
@@ -9,7 +9,7 @@
<script type="text/javascript">
function test_layerrecord(t) {
- t.plan(12);
+ t.plan(13);
var c, layer, record;
@@ -31,7 +31,9 @@
"\"create(o)\" returns a func with a \"extra1\" field in its prototype");
t.eq(c.prototype.fields.items[3].name, "extra2",
"\"create(o)\" returns a func with a \"extra2\" field in its prototype");
+ t.eq(GeoExt.data.LayerRecord.prototype.fields.items.length, 2, "create() method does not modify class prototype's fields");
+
layer = new OpenLayers.Layer();
record = new c({layer: layer, title: layer.name}, layer.id);
t.ok(record instanceof GeoExt.data.LayerRecord, "create returns a constructor (LayerRecord)");
More information about the Commits
mailing list