Files
openlayers/src/ol/interaction/keyboardinteraction.js
2013-01-07 13:18:59 +01:00

54 lines
1.1 KiB
JavaScript

// FIXME this class is ugly and should be removed
goog.provide('ol.interaction.Keyboard');
goog.require('ol.interaction.Interaction');
/**
* @constructor
* @extends {ol.interaction.Interaction}
*/
ol.interaction.Keyboard = function() {
goog.base(this);
/**
* @private
* @type {Object.<number, Function>}
*/
this.charCodeCallbacks_ = {};
};
goog.inherits(ol.interaction.Keyboard, ol.interaction.Interaction);
/**
* @param {string} s String.
* @param {Function} callback Callback.
*/
ol.interaction.Keyboard.prototype.addCallback = function(s, callback) {
var i;
for (i = 0; i < s.length; ++i) {
this.charCodeCallbacks_[s.charCodeAt(i)] = callback;
}
};
/**
* @inheritDoc
*/
ol.interaction.Keyboard.prototype.handleMapBrowserEvent =
function(mapBrowserEvent) {
if (mapBrowserEvent.type == goog.events.KeyHandler.EventType.KEY) {
var keyEvent = /** @type {goog.events.KeyEvent} */
(mapBrowserEvent.browserEvent);
var callback = this.charCodeCallbacks_[keyEvent.charCode];
if (callback) {
callback();
mapBrowserEvent.preventDefault();
}
}
};