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