Store listener keys into an array instead of individual variables

This commit is contained in:
Frederic Junod
2013-06-06 12:08:32 +02:00
parent fd62963ad2
commit ece2a4b64c
+17 -26
View File
@@ -136,22 +136,10 @@ ol.MapBrowserEventHandler = function(map) {
this.timestamp_ = null; this.timestamp_ = null;
/** /**
* @type {?number} * @type {Array.<number>}
* @private * @private
*/ */
this.clickListenerKey_ = null; this.listenerKeys_ = null;
/**
* @type {?number}
* @private
*/
this.downListenerKey_ = null;
/**
* @type {?number}
* @private
*/
this.moveListenerKey_ = null;
/** /**
* @type {Array.<number>} * @type {Array.<number>}
@@ -172,15 +160,17 @@ ol.MapBrowserEventHandler = function(map) {
this.down_ = null; this.down_ = null;
var element = this.map_.getViewport(); var element = this.map_.getViewport();
this.clickListenerKey_ = goog.events.listen(element, this.listenerKeys_ = [
[goog.events.EventType.CLICK, goog.events.EventType.DBLCLICK], goog.events.listen(element,
this.click_, false, this); [goog.events.EventType.CLICK, goog.events.EventType.DBLCLICK],
this.downListenerKey_ = goog.events.listen(element, this.click_, false, this),
goog.events.EventType.MOUSEDOWN, goog.events.listen(element,
this.handleMouseDown_, false, this); goog.events.EventType.MOUSEDOWN,
this.moveListenerKey_ = goog.events.listen(element, this.handleMouseDown_, false, this),
goog.events.EventType.MOUSEMOVE, goog.events.listen(element,
this.relayMouseMove_, false, this); goog.events.EventType.MOUSEMOVE,
this.relayMouseMove_, false, this)
];
// touch events // touch events
this.touchListenerKeys_ = [ this.touchListenerKeys_ = [
goog.events.listen(element, [ goog.events.listen(element, [
@@ -352,9 +342,10 @@ ol.MapBrowserEventHandler.prototype.handleTouchEnd_ = function(browserEvent) {
* FIXME empty description for jsdoc * FIXME empty description for jsdoc
*/ */
ol.MapBrowserEventHandler.prototype.disposeInternal = function() { ol.MapBrowserEventHandler.prototype.disposeInternal = function() {
goog.events.unlistenByKey(this.clickListenerKey_); if (!goog.isNull(this.listenerKeys_)) {
goog.events.unlistenByKey(this.downListenerKey_); goog.array.forEach(this.listenerKeys_, goog.events.unlistenByKey);
goog.events.unlistenByKey(this.moveListenerKey_); this.listenerKeys_ = null;
}
if (!goog.isNull(this.dragListenerKeys_)) { if (!goog.isNull(this.dragListenerKeys_)) {
goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey);
this.dragListenerKeys_ = null; this.dragListenerKeys_ = null;