[Commits] r2203 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Thu May 20 22:18:02 CEST 2010
Author: elemoine
Date: 2010-05-20 22:18:02 +0200 (Thu, 20 May 2010)
New Revision: 2203
Modified:
core/trunk/geoext/lib/GeoExt/data/WFSCapabilitiesReader.js
core/trunk/geoext/tests/lib/GeoExt/data/WFSCapabilitiesReader.html
Log:
WFSCapabilitiesReader should set featureNS in the WFS protocols it creates, reported by fvanderbiest, r=tschaub (closes #278)
Modified: core/trunk/geoext/lib/GeoExt/data/WFSCapabilitiesReader.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/WFSCapabilitiesReader.js 2010-05-20 15:33:01 UTC (rev 2202)
+++ core/trunk/geoext/lib/GeoExt/data/WFSCapabilitiesReader.js 2010-05-20 20:18:02 UTC (rev 2203)
@@ -38,6 +38,8 @@
recordType = GeoExt.data.LayerRecord.create(
recordType || meta.fields || [
{name: "name", type: "string"},
+ {name: "title", type: "string"},
+ {name: "namespace", type: "string", mapping: "featureNS"},
{name: "abstract", type: "string"}
]
);
@@ -78,34 +80,43 @@
if(typeof data === "string" || data.nodeType) {
data = this.meta.format.read(data);
}
- var records = [], layer, l, parts, layerOptions, protocolOptions;
+
var featureTypes = data.featureTypeList.featureTypes;
+ var fields = this.recordType.prototype.fields;
+
+ var featureType, values, field, v, parts, layer, values;
+ var layerOptions, protocolOptions;
+
var protocolDefaults = {
url: data.capability.request.getfeature.href.post
};
- for(var i=0, len=featureTypes.length; i<len; i++) {
- layer = featureTypes[i];
- if(layer.name) {
- // create protocol
- parts = layer.name.split(":");
- if (parts.length > 1) {
- protocolOptions = {
- featureType: parts[1],
- featurePrefix: parts[0]
- };
- } else {
- protocolOptions = {
- featureType: parts[0],
- featurePrefix: null
- };
+
+ var records = [];
+
+ for(var i=0, lenI=featureTypes.length; i<lenI; i++) {
+ featureType = featureTypes[i];
+ if(featureType.name) {
+ values = {};
+
+ for(var j=0, lenJ=fields.length; j<lenJ; j++) {
+ field = fields.items[j];
+ v = featureType[field.mapping || field.name] ||
+ field.defaultValue;
+ v = field.convert(v);
+ values[field.name] = v;
}
+
+ protocolOptions = {
+ featureType: featureType.name,
+ featureNS: featureType.featureNS
+ };
if(this.meta.protocolOptions) {
Ext.apply(protocolOptions, this.meta.protocolOptions,
protocolDefaults);
} else {
Ext.apply(protocolOptions, {}, protocolDefaults);
}
- // create vector layer with protocol
+
layerOptions = {
protocol: new OpenLayers.Protocol.WFS(protocolOptions),
strategies: [new OpenLayers.Strategy.Fixed()]
@@ -113,13 +124,13 @@
if(this.meta.layerOptions) {
Ext.apply(layerOptions, this.meta.layerOptions);
}
- l = new OpenLayers.Layer.Vector(
- layer.title || layer.name,
+
+ values.layer = new OpenLayers.Layer.Vector(
+ featureType.title || featureType.name,
layerOptions
);
- records.push(new this.recordType(Ext.apply(layer, {
- layer: l
- }), l.id));
+
+ records.push(new this.recordType(values, values.layer.id));
}
}
return {
Modified: core/trunk/geoext/tests/lib/GeoExt/data/WFSCapabilitiesReader.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/WFSCapabilitiesReader.html 2010-05-20 15:33:01 UTC (rev 2202)
+++ core/trunk/geoext/tests/lib/GeoExt/data/WFSCapabilitiesReader.html 2010-05-20 20:18:02 UTC (rev 2203)
@@ -17,7 +17,7 @@
var fields = reader.recordType.prototype.fields;
// 1 test
- t.eq(fields.items.length, 4, 'number of default items is correct');
+ t.eq(fields.items.length, 5, 'number of default items is correct');
var reader = new GeoExt.data.WFSCapabilitiesReader({},[
{name: "foo"},
@@ -33,7 +33,7 @@
}
function test_read(t) {
- t.plan(7);
+ t.plan(9);
var reader = new GeoExt.data.WFSCapabilitiesReader();
@@ -45,8 +45,9 @@
var record = records.records[0];
//3 tests -- testing the fields of a record
- t.eq(record.get("name"), "sf:archsites", "[0] correct layer name");
+ t.eq(record.get("name"), "archsites", "[0] correct layer name");
t.eq(record.get("title"), "Spearfish archeological sites", "[0] correct layer title");
+ t.eq(record.get("namespace"), "http://www.openplans.org/spearfish", "[0] correct layer namespace");
t.eq(
record.get("abstract"),
"Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA",
@@ -58,6 +59,7 @@
t.eq(layer.CLASS_NAME, "OpenLayers.Layer.Vector", "[0] layer field is of type OpenLayers.Layer.Vector");
t.eq(layer.protocol.CLASS_NAME, "OpenLayers.Protocol.WFS.v1_0_0", "[0] protocol is of type OpenLayers.Protocol.WFS.v1_0_0");
t.eq(layer.protocol.url, "http://someserver.com:8080/geoserver/wfs?", "[0] protocol has correct URL");
+ t.eq(layer.protocol.featureNS, "http://www.openplans.org/spearfish", "[0] protocol has correct featureNS");
}
</script>
More information about the Commits
mailing list