[OpenLayers-Dev] Re: How to override abstract OpenLayers.Protocol.WFS.v1?

Tim Schaub tschaub at opengeo.org
Fri Jul 1 13:30:21 EDT 2011


This does what I'd expect:

     var orig = OpenLayers.Protocol.WFS.v1.prototype.handleRead;

     OpenLayers.Util.extend(OpenLayers.Protocol.WFS.v1.prototype, {
         handleRead: function(response, options) {
             alert("handleRead");
             orig.apply(this, arguments);
         }
     });

Does it for you?

Tim

On 6/30/11 3:39 PM, myOpenLayersUName wrote:
> Hi Tim,
> Thank you for your response. Yes, I was able to get your simple case to
> work. Further, I was able to load this:
>
> OpenLayers.Util.extend(OpenLayers.Protocol.WFS.v1.prototype, {
>      foo: "bar"
>      ,blah: function(){
>          alert(this.foo);
>      }
> });
>
> And, within the real OpenLayers.Protocol.WFS.v1.handleRead function, I added
> a call to this.blah() and at runtime, the alert with "bar" appeared.
> However, when I try to override an existing function I don't seem able to do
> it.
>
> Continuing with my example above, if I removed the this.blah() call that I
> added in the real OpenLayers.Protocol.WFS.v1.handleRead function (so it's
> back to its distribution form) and updated my own file as follows:
>
> OpenLayers.Util.extend(OpenLayers.Protocol.WFS.v1.prototype, {
>      foo: "bar"
>      ,blah: function(){
>          alert(this.foo);
>      }
>      ,handleRead: function(response, options) {
>          this.blah();
>          if(options.callback) {
>              var request = response.priv;
>              if(request.status>= 200&&  request.status<  300) {
>                  // success
>                  response.features = this.parseFeatures(request);
>                  response.code = OpenLayers.Protocol.Response.SUCCESS;
>              } else {
>                  // failure
>                  response.code = OpenLayers.Protocol.Response.FAILURE;
>              }
>              options.callback.call(options.scope, response);
>          };
>      }
> });
>
> At runtime, my handleRead is not run and I don't see the alert with "bar" in
> it.
>
> When I step through the OpenLayers.Util.extend function, it sure looks like
> my handleRead is overwriting the distributed one but at runtime it's
> definitely not using it.
>
> I really don't get what the problem could be here.
>
> --
> View this message in context: http://osgeo-org.1803224.n2.nabble.com/How-to-override-abstract-OpenLayers-Protocol-WFS-v1-tp6534072p6535084.html
> Sent from the OpenLayers Dev mailing list archive at Nabble.com.
> _______________________________________________
> Dev mailing list
> Dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-dev


-- 
Tim Schaub
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.


More information about the Dev mailing list