From 6213e07f96d78ea57237a3e68c82229958b1d5e4 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Thu, 21 Jun 2012 14:08:30 +0200 Subject: [PATCH] Navigation control with Drag sequence Dragger This is totally unfinished, but tests pass, and it is only meant to give the map a Navigation control. --- src/ol.js | 3 +- src/ol/Map.js | 24 ++++++++++---- src/ol/control/Control.js | 19 ++++++++++- src/ol/control/Navigation.js | 18 +++++++++-- src/ol/event/Drag.js | 57 +++++++++++++++++++++++++++++++++ src/ol/event/Events.js | 49 +++++++++++++++++++---------- src/ol/event/Sequence.js | 40 +++++++++++++++++++++++ src/ol/event/drag.js | 61 ------------------------------------ test/spec/ol/Events.test.js | 24 ++++++++------ 9 files changed, 198 insertions(+), 97 deletions(-) create mode 100644 src/ol/event/Drag.js create mode 100644 src/ol/event/Sequence.js delete mode 100644 src/ol/event/drag.js diff --git a/src/ol.js b/src/ol.js index 1d04286f31..a633183537 100644 --- a/src/ol.js +++ b/src/ol.js @@ -3,8 +3,9 @@ goog.require('ol.bounds'); goog.require('ol.control.Control'); goog.require('ol.control.Navigation'); goog.require('ol.event'); +goog.require('ol.event.Drag'); goog.require('ol.event.Events'); -goog.require('ol.event.drag'); +goog.require('ol.event.Sequence'); goog.require("ol.map"); goog.require("ol.loc"); goog.require("ol.feature"); diff --git a/src/ol/Map.js b/src/ol/Map.js index faf7f488db..a88bbf9f53 100644 --- a/src/ol/Map.js +++ b/src/ol/Map.js @@ -4,6 +4,8 @@ goog.require('ol.Loc'); goog.require('ol.Projection'); goog.require('ol.event'); goog.require('ol.event.Events'); +goog.require('ol.event.Drag'); +goog.require('ol.control.Control'); @@ -78,7 +80,7 @@ ol.Map = function() { * @type {ol.event.Events} */ this.events_ = new ol.event.Events( - this, undefined, true, [ol.event.drag()] + this, undefined, true, [new ol.event.Drag()] ); /** @@ -109,6 +111,11 @@ ol.Map.ZOOM_FACTOR = 2; @type {number} */ ol.Map.DEFAULT_TILE_SIZE = 256; +/** + @const + @type {Array.} + */ +ol.Map.DEFAULT_CONTROLS = ["Navigation", "Zoom"]; /** * @return {ol.Loc} Location. @@ -288,14 +295,19 @@ ol.Map.prototype.setLayers = function(layers) { }; /** - * @param {Array.} controls + * @param {Array.|undefined} opt_controls */ -ol.Map.prototype.setControls = function(controls) { +ol.Map.prototype.setControls = function(opt_controls) { if (!this.controls_) { - for (var i=0, ii=controls.length; i} + * @type {!Array.} */ - this.sequences_ = goog.isDef(opt_sequences) ? opt_sequences : []; + this.sequences_ = []; this.setElement(opt_element); + this.setSequences(opt_sequences); }; goog.inherits(ol.event.Events, goog.events.EventTarget); +/** + * @param {Array.} sequences + */ +ol.event.Events.prototype.setSequences = function(sequences) { + this.sequences_ = sequences || []; + for (var i=0, ii=this.sequences_.length; i