[Commits] r2633 - sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets

commits at geoext.org commits at geoext.org
Wed Mar 23 20:53:32 CET 2011


Author: adube
Date: 2011-03-23 20:53:32 +0100 (Wed, 23 Mar 2011)
New Revision: 2633

Modified:
   sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js
Log:
WFSTFeatureEditing - Save strategy detect, event listeners and callbacks

Modified: sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js
===================================================================
--- sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js	2011-03-23 14:23:09 UTC (rev 2632)
+++ sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js	2011-03-23 19:53:32 UTC (rev 2633)
@@ -199,22 +199,24 @@
                 "wmsLayerSibling": this.getWMSLayerSibling(layer)
             };
             
-            // todo : create SaveStrategy in WFSCapabilitiesReader
-            // find the save strategy and keep a reference to it
-/*
+            // find the save strategy : keep a reference to it and add events
             Ext.each(layer.strategies, function(strategy, strategyIndex) {
                 if (strategy instanceof OpenLayers.Strategy.Save) {
-                    layer.saveStrategy = strategy;
+                    layer.wfstFeatureEditing.saveStrategy = strategy;
                     strategy.events.on({
-                        "success": onCommitSuccess,
-                        "fail": onCommitFail,
-                        scope: strategy
+                        "success": this.onCommitSuccess,
+                        "fail": this.onCommitFail,
+                        scope: {layer: layer, manager: this}
                     });
                     return false;
                 }
-            });
-*/
-            layers.push(layer);
+            }, this);
+
+            if (layer.wfstFeatureEditing.saveStrategy) {
+                layers.push(layer);
+            } else {
+                // todo : log - layer had no save strategy...
+            }
         }, this);
         this.map.addLayers(layers);
         this.layers = layers;
@@ -526,10 +528,6 @@
         }); // end of return
     },
 
-    commitFeature: function(feature) {
-
-    },
-
     cancelEditing: function(layer) {
         if (layer.wfstFeatureEditing.editorGrid) {
             var feature = layer.wfstFeatureEditing.editorGrid.store.feature;
@@ -537,7 +535,7 @@
                 layer.wfstFeatureEditing.editorGrid.cancel();
             this.closeEditing(layer);
             if (this.isDrawing) {
-                feature.layer.wfstFeatureEditing.highlight.deactivate();
+                feature.layer.wfstFeatureEditing.highlightControl.deactivate();
                 feature.layer.wfstFeatureEditing.drawControl.activate();
             }
             if(feature && feature.state === OpenLayers.State.INSERT) {
@@ -558,4 +556,22 @@
             delete arguments.callee._in;
         }
     },
+
+    commitFeature: function(feature) {
+        if (feature.state != null) {
+            feature.layer.wfstFeatureEditing.saveStrategy.save([feature]);
+        }
+    },
+
+    onCommitSuccess: function(e) {
+        // todo : show success message
+        this.layer.wfstFeatureEditing.wmsLayerSibling &&
+            this.layer.wfstFeatureEditing.wmsLayerSibling.redraw(true);
+        this.manager.cancelEditing(this.layer);
+    },
+
+    onCommitFail: function(e) {
+        // todo : show error message instead
+        alert("an error occured");
+    }
 });



More information about the Commits mailing list