From 0188809918d6b30b05773d028d005bcefe5b07a8 Mon Sep 17 00:00:00 2001 From: jonataswalker Date: Wed, 23 Sep 2015 11:30:29 -0300 Subject: [PATCH 1/3] Add 'translatestart', 'translateend' and 'translatedrag' events to 'ol.interaction.Translate' --- src/ol/interaction/translateinteraction.js | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/src/ol/interaction/translateinteraction.js b/src/ol/interaction/translateinteraction.js index 09fbe8c349..0fd48a08db 100644 --- a/src/ol/interaction/translateinteraction.js +++ b/src/ol/interaction/translateinteraction.js @@ -1,9 +1,84 @@ goog.provide('ol.interaction.Translate'); +goog.provide('ol.interaction.TranslateEvent'); goog.require('goog.array'); +goog.require('goog.events'); +goog.require('goog.events.Event'); +goog.require('goog.events.EventType'); +goog.require('ol.MapBrowserEvent.EventType'); goog.require('ol.interaction.Pointer'); +/** + * @enum {string} + */ +ol.TranslateEventType = { + /** + * Triggered upon feature translation start + * @event ol.interaction.TranslateEvent#translatestart + * @api + */ + TRANSLATESTART: 'translatestart', + /** + * Triggered upon feature translation drag + * @event ol.interaction.TranslateEvent#translatedrag + * @api + */ + TRANSLATEDRAG: 'translatedrag', + /** + * Triggered upon feature translation end + * @event ol.interaction.TranslateEvent#translateend + * @api + */ + TRANSLATEEND: 'translateend' +}; + + + +/** + * @classdesc + * Events emitted by {@link ol.interaction.Translate} instances are instances of + * this type. + * + * @constructor + * @extends {goog.events.Event} + * @implements {oli.TranslateEvent} + * @param {ol.TranslateEventType} type Type. + * @param {ol.Collection.} features The features translated. + * @param {ol.Coordinate} coordinate The event coordinate. + * @param {ol.MapBrowserPointerEvent} mapBrowserPointerEvent Associated + * {@link ol.MapBrowserPointerEvent}. + */ +ol.interaction.TranslateEvent = + function(type, features, coordinate, mapBrowserPointerEvent) { + + goog.base(this, type); + + /** + * The features being translated. + * @type {ol.Collection.} + * @api + */ + this.features = features; + + /** + * The coordinate of the drag event. + * @const + * @type {ol.Coordinate} + * @api + */ + this.coordinate = coordinate; + + /** + * Associated {@link ol.MapBrowserPointerEvent}. + * @type {ol.MapBrowserPointerEvent} + * @api + */ + this.mapBrowserPointerEvent = mapBrowserPointerEvent; +}; +goog.inherits(ol.interaction.TranslateEvent, goog.events.Event); + + /** * @classdesc @@ -64,6 +139,9 @@ ol.interaction.Translate.handleDownEvent_ = function(event) { if (goog.isNull(this.lastCoordinate_) && !goog.isNull(this.lastFeature_)) { this.lastCoordinate_ = event.coordinate; ol.interaction.Translate.handleMoveEvent_.call(this, event); + this.dispatchEvent( + new ol.interaction.TranslateEvent(ol.TranslateEventType.TRANSLATESTART, + this.features_, event.coordinate)); return true; } return false; @@ -80,6 +158,9 @@ ol.interaction.Translate.handleUpEvent_ = function(event) { if (!goog.isNull(this.lastCoordinate_)) { this.lastCoordinate_ = null; ol.interaction.Translate.handleMoveEvent_.call(this, event); + this.dispatchEvent( + new ol.interaction.TranslateEvent(ol.TranslateEventType.TRANSLATEEND, + this.features_, event.coordinate)); return true; } return false; @@ -94,6 +175,7 @@ ol.interaction.Translate.handleUpEvent_ = function(event) { ol.interaction.Translate.handleDragEvent_ = function(event) { if (!goog.isNull(this.lastCoordinate_)) { var newCoordinate = event.coordinate; + //console.info(newCoordinate); var deltaX = newCoordinate[0] - this.lastCoordinate_[0]; var deltaY = newCoordinate[1] - this.lastCoordinate_[1]; @@ -110,6 +192,9 @@ ol.interaction.Translate.handleDragEvent_ = function(event) { } this.lastCoordinate_ = newCoordinate; + this.dispatchEvent( + new ol.interaction.TranslateEvent(ol.TranslateEventType.TRANSLATEDRAG, + this.features_, newCoordinate)); } }; From 9a923cc5dc8ba91c158e687f3b3dcd3988fe1b36 Mon Sep 17 00:00:00 2001 From: jonataswalker Date: Wed, 23 Sep 2015 19:19:26 -0300 Subject: [PATCH 2/3] Add 'translatestart', 'translateend' and 'translatedrag' events to 'ol.interaction.Translate' --- externs/oli.js | 19 ++++++++++++ src/ol/interaction/translateinteraction.js | 36 +++++++++------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/externs/oli.js b/externs/oli.js index 7d1631024d..16498949ee 100644 --- a/externs/oli.js +++ b/externs/oli.js @@ -211,6 +211,25 @@ oli.interaction.DragAndDropEvent.prototype.projection; oli.interaction.DragAndDropEvent.prototype.file; + +/** + * @interface + */ +oli.interaction.TranslateEvent = function() {}; + + +/** + * @type {ol.Collection.} + */ +oli.interaction.TranslateEvent.prototype.features; + + +/** + * @type {ol.Coordinate} + */ +oli.interaction.TranslateEvent.prototype.coordinate; + + /** * @type {Object} */ diff --git a/src/ol/interaction/translateinteraction.js b/src/ol/interaction/translateinteraction.js index 0fd48a08db..1c59800bd1 100644 --- a/src/ol/interaction/translateinteraction.js +++ b/src/ol/interaction/translateinteraction.js @@ -4,15 +4,13 @@ goog.provide('ol.interaction.TranslateEvent'); goog.require('goog.array'); goog.require('goog.events'); goog.require('goog.events.Event'); -goog.require('goog.events.EventType'); -goog.require('ol.MapBrowserEvent.EventType'); goog.require('ol.interaction.Pointer'); /** * @enum {string} */ -ol.TranslateEventType = { +ol.interaction.TranslateEventType = { /** * Triggered upon feature translation start * @event ol.interaction.TranslateEvent#translatestart @@ -42,15 +40,12 @@ ol.TranslateEventType = { * * @constructor * @extends {goog.events.Event} - * @implements {oli.TranslateEvent} - * @param {ol.TranslateEventType} type Type. + * @implements {oli.interaction.TranslateEvent} + * @param {ol.interaction.TranslateEventType} type Type. * @param {ol.Collection.} features The features translated. * @param {ol.Coordinate} coordinate The event coordinate. - * @param {ol.MapBrowserPointerEvent} mapBrowserPointerEvent Associated - * {@link ol.MapBrowserPointerEvent}. */ -ol.interaction.TranslateEvent = - function(type, features, coordinate, mapBrowserPointerEvent) { +ol.interaction.TranslateEvent = function(type, features, coordinate) { goog.base(this, type); @@ -68,13 +63,6 @@ ol.interaction.TranslateEvent = * @api */ this.coordinate = coordinate; - - /** - * Associated {@link ol.MapBrowserPointerEvent}. - * @type {ol.MapBrowserPointerEvent} - * @api - */ - this.mapBrowserPointerEvent = mapBrowserPointerEvent; }; goog.inherits(ol.interaction.TranslateEvent, goog.events.Event); @@ -86,6 +74,7 @@ goog.inherits(ol.interaction.TranslateEvent, goog.events.Event); * * @constructor * @extends {ol.interaction.Pointer} + * @fires ol.interaction.TranslateEvent * @param {olx.interaction.TranslateOptions} options Options. * @api */ @@ -140,8 +129,9 @@ ol.interaction.Translate.handleDownEvent_ = function(event) { this.lastCoordinate_ = event.coordinate; ol.interaction.Translate.handleMoveEvent_.call(this, event); this.dispatchEvent( - new ol.interaction.TranslateEvent(ol.TranslateEventType.TRANSLATESTART, - this.features_, event.coordinate)); + new ol.interaction.TranslateEvent( + ol.interaction.TranslateEventType.TRANSLATESTART, this.features_, + event.coordinate)); return true; } return false; @@ -159,8 +149,9 @@ ol.interaction.Translate.handleUpEvent_ = function(event) { this.lastCoordinate_ = null; ol.interaction.Translate.handleMoveEvent_.call(this, event); this.dispatchEvent( - new ol.interaction.TranslateEvent(ol.TranslateEventType.TRANSLATEEND, - this.features_, event.coordinate)); + new ol.interaction.TranslateEvent( + ol.interaction.TranslateEventType.TRANSLATEEND, this.features_, + event.coordinate)); return true; } return false; @@ -193,8 +184,9 @@ ol.interaction.Translate.handleDragEvent_ = function(event) { this.lastCoordinate_ = newCoordinate; this.dispatchEvent( - new ol.interaction.TranslateEvent(ol.TranslateEventType.TRANSLATEDRAG, - this.features_, newCoordinate)); + new ol.interaction.TranslateEvent( + ol.interaction.TranslateEventType.TRANSLATEDRAG, this.features_, + newCoordinate)); } }; From 4a66289e5a6e3f18655af3974ebdead41945deeb Mon Sep 17 00:00:00 2001 From: jonataswalker Date: Thu, 24 Sep 2015 06:07:39 -0300 Subject: [PATCH 3/3] Add 'translatestart', 'translateend' and 'translating' events to 'ol.interaction.Translate' --- src/ol/interaction/translateinteraction.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/ol/interaction/translateinteraction.js b/src/ol/interaction/translateinteraction.js index 1c59800bd1..3923600a81 100644 --- a/src/ol/interaction/translateinteraction.js +++ b/src/ol/interaction/translateinteraction.js @@ -12,19 +12,19 @@ goog.require('ol.interaction.Pointer'); */ ol.interaction.TranslateEventType = { /** - * Triggered upon feature translation start + * Triggered upon feature translation start. * @event ol.interaction.TranslateEvent#translatestart * @api */ TRANSLATESTART: 'translatestart', /** - * Triggered upon feature translation drag - * @event ol.interaction.TranslateEvent#translatedrag + * Triggered upon feature translation. + * @event ol.interaction.TranslateEvent#translating * @api */ - TRANSLATEDRAG: 'translatedrag', + TRANSLATING: 'translating', /** - * Triggered upon feature translation end + * Triggered upon feature translation end. * @event ol.interaction.TranslateEvent#translateend * @api */ @@ -166,7 +166,6 @@ ol.interaction.Translate.handleUpEvent_ = function(event) { ol.interaction.Translate.handleDragEvent_ = function(event) { if (!goog.isNull(this.lastCoordinate_)) { var newCoordinate = event.coordinate; - //console.info(newCoordinate); var deltaX = newCoordinate[0] - this.lastCoordinate_[0]; var deltaY = newCoordinate[1] - this.lastCoordinate_[1]; @@ -185,7 +184,7 @@ ol.interaction.Translate.handleDragEvent_ = function(event) { this.lastCoordinate_ = newCoordinate; this.dispatchEvent( new ol.interaction.TranslateEvent( - ol.interaction.TranslateEventType.TRANSLATEDRAG, this.features_, + ol.interaction.TranslateEventType.TRANSLATING, this.features_, newCoordinate)); } };