function to reset handler

This commit is contained in:
Matthew Perry
2012-02-06 19:56:02 -08:00
parent 9e3bd972f4
commit d900028c2a

View File

@@ -45,7 +45,7 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
* options - {Object} Options for control.
*/
defaultHandlerOptions: {
'delay': 500,
'delay': 200,
'pixelTolerance': null,
'stopMove': false,
'single': true,
@@ -55,10 +55,23 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
'stopDouble': false
},
handlerMode: 'move',
/* Property: handlerMode
* Defaults to 'click'. Can be 'hover' or 'move'.
*/
handlerMode: 'hover',
setHandler: function(hm) {
this.handlerMode = hm;
this.resetHandler();
},
resetHandler: function() {
if (this.handler) {
this.handler.deactivate();
this.handler.destroy();
this.handler = null;
}
setHandler: function() {
this.handler = null;
if (this.handlerMode == 'hover') {
// Handle this event on hover
this.handler = new OpenLayers.Handler.Hover(
@@ -81,6 +94,11 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
this.handlerOptions
);
}
if (this.handler) {
return true;
} else {
return false;
}
},
initialize: function(options) {
@@ -90,7 +108,7 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.setHandler();
this.resetHandler();
},
/**
@@ -124,7 +142,6 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
var layer;
for (var i=0, len=layers.length; i<len; i++) {
layer = layers[i];
var info = layer.getTileInfo( lonLat );
this.writeDebugInfo(info);
var tile = info.tile;
@@ -139,7 +156,8 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
Math.floor((info.i) / resolution)
));
attrs = data.data[data.keys[code]];
this.callback(attrs);
if (attrs)
this.callback(attrs);
}
}
}
@@ -178,7 +196,6 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
val += "<li>" + index + " : " + attrs[index] + "</li>";
}
val += "</ul>";
//var val = attrs.NAME + ": population " + attrs.POP2005;
this.element.innerHTML = val;
return true;
} else {
@@ -207,7 +224,7 @@ OpenLayers.Control.UTFGrid = OpenLayers.Class(OpenLayers.Control, {
reset: function(evt) {
this.callback(null);
if (this.element)
this.element.innerHTML = this.emptyString;
this.element.innerHTML = '';
},
/**