Merge pull request #1588 from twpayne/event-properties

Use properties, not get* methods, in events
This commit is contained in:
Tom Payne
2014-01-29 06:23:30 -08:00
49 changed files with 228 additions and 257 deletions
+3 -4
View File
@@ -26,11 +26,10 @@ var track = new ol.dom.Input(document.getElementById('track'));
track.bindTo('checked', deviceOrientation, 'tracking'); track.bindTo('checked', deviceOrientation, 'tracking');
deviceOrientation.on('propertychange', function(event) { deviceOrientation.on('propertychange', function(event) {
// event.getKey() is the changed property name // event.key is the changed property name
var key = event.getKey(); var element = document.getElementById(event.key);
var element = document.getElementById(key);
if (element) { if (element) {
element.innerHTML = deviceOrientation.get(key); element.innerHTML = deviceOrientation.get(event.key);
} }
}); });
+3 -4
View File
@@ -115,8 +115,8 @@ var map = new ol.Map({
dragAndDropInteraction.on('addfeatures', function(event) { dragAndDropInteraction.on('addfeatures', function(event) {
var vectorSource = new ol.source.Vector({ var vectorSource = new ol.source.Vector({
features: event.getFeatures(), features: event.features,
projection: event.getProjection() projection: event.projection
}); });
map.getLayers().push(new ol.layer.Image({ map.getLayers().push(new ol.layer.Image({
source: new ol.source.ImageVector({ source: new ol.source.ImageVector({
@@ -151,6 +151,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var pixel = evt.getPixel(); displayFeatureInfo(evt.pixel);
displayFeatureInfo(pixel);
}); });
+3 -4
View File
@@ -114,8 +114,8 @@ var map = new ol.Map({
dragAndDropInteraction.on('addfeatures', function(event) { dragAndDropInteraction.on('addfeatures', function(event) {
var vectorSource = new ol.source.Vector({ var vectorSource = new ol.source.Vector({
features: event.getFeatures(), features: event.features,
projection: event.getProjection() projection: event.projection
}); });
map.getLayers().push(new ol.layer.Vector({ map.getLayers().push(new ol.layer.Vector({
source: vectorSource, source: vectorSource,
@@ -148,6 +148,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var pixel = evt.getPixel(); displayFeatureInfo(evt.pixel);
displayFeatureInfo(pixel);
}); });
+2 -2
View File
@@ -35,8 +35,8 @@ var R = 7e6;
var r = 2e6; var r = 2e6;
var p = 2e6; var p = 2e6;
map.on('postcompose', function(event) { map.on('postcompose', function(event) {
var render = event.getRender(); var render = event.render;
var frameState = event.getFrameState(); var frameState = event.frameState;
var theta = 2 * Math.PI * frameState.time / omegaTheta; var theta = 2 * Math.PI * frameState.time / omegaTheta;
var coordinates = []; var coordinates = [];
var i; var i;
+1 -1
View File
@@ -24,7 +24,7 @@ var exportPNGElement = document.getElementById('export-png');
if ('download' in exportPNGElement) { if ('download' in exportPNGElement) {
exportPNGElement.addEventListener('click', function(e) { exportPNGElement.addEventListener('click', function(e) {
map.once('postcompose', function(event) { map.once('postcompose', function(event) {
var canvas = event.getContext().canvas; var canvas = event.context.canvas;
exportPNGElement.href = canvas.toDataURL('image/png'); exportPNGElement.href = canvas.toDataURL('image/png');
}); });
map.render(); map.render();
+1 -2
View File
@@ -89,6 +89,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var pixel = evt.getPixel(); displayFeatureInfo(evt.pixel);
displayFeatureInfo(pixel);
}); });
+1 -1
View File
@@ -70,7 +70,7 @@ map.addOverlay(popup);
// display popup on click // display popup on click
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.getPixel(), var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) { function(feature, layer) {
return feature; return feature;
}); });
+2 -3
View File
@@ -111,8 +111,7 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var coordinate = evt.getCoordinate(); displaySnap(evt.coordinate);
displaySnap(coordinate);
}); });
var imageStyle = new ol.style.Circle({ var imageStyle = new ol.style.Circle({
@@ -128,7 +127,7 @@ var strokeStyle = new ol.style.Stroke({
width: 1 width: 1
}); });
map.on('postcompose', function(evt) { map.on('postcompose', function(evt) {
var render = evt.getRender(); var render = evt.render;
if (point !== null) { if (point !== null) {
render.setImageStyle(imageStyle); render.setImageStyle(imageStyle);
render.drawPointGeometry(point); render.drawPointGeometry(point);
+1 -2
View File
@@ -95,6 +95,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var pixel = evt.getPixel(); displayFeatureInfo(evt.pixel);
displayFeatureInfo(pixel);
}); });
+1 -1
View File
@@ -91,5 +91,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
displayFeatureInfo(evt.getPixel()); displayFeatureInfo(evt.pixel);
}); });
+1 -1
View File
@@ -97,5 +97,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
displayFeatureInfo(evt.getPixel()); displayFeatureInfo(evt.pixel);
}); });
+1 -2
View File
@@ -55,6 +55,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var pixel = evt.getPixel(); displayFeatureInfo(evt.pixel);
displayFeatureInfo(pixel);
}); });
+2 -2
View File
@@ -41,7 +41,7 @@ if (!ol.BrowserFeature.HAS_WEBGL) {
].join(''); ].join('');
osm.on('precompose', function(event) { osm.on('precompose', function(event) {
var context = event.getGlContext(); var context = event.glContext;
var gl = context.getGL(); var gl = context.getGL();
var program = gl.createProgram(); var program = gl.createProgram();
@@ -96,7 +96,7 @@ if (!ol.BrowserFeature.HAS_WEBGL) {
}); });
osm.on('postcompose', function(event) { osm.on('postcompose', function(event) {
var context = event.getGlContext(); var context = event.glContext;
var gl = context.getGL(); var gl = context.getGL();
gl.disable(gl.STENCIL_TEST); gl.disable(gl.STENCIL_TEST);
}); });
+2 -2
View File
@@ -19,7 +19,7 @@ var map = new ol.Map({
}); });
osm.on('precompose', function(event) { osm.on('precompose', function(event) {
var ctx = event.getContext(); var ctx = event.context;
ctx.save(); ctx.save();
ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2); ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2);
ctx.scale(3, 3); ctx.scale(3, 3);
@@ -37,6 +37,6 @@ osm.on('precompose', function(event) {
}); });
osm.on('postcompose', function(event) { osm.on('postcompose', function(event) {
var ctx = event.getContext(); var ctx = event.context;
ctx.restore(); ctx.restore();
}); });
+2 -2
View File
@@ -48,7 +48,7 @@ $(map.getViewport()).on('mousemove', function(evt) {
// before rendering the layer, do some clipping // before rendering the layer, do some clipping
imagery.on('precompose', function(event) { imagery.on('precompose', function(event) {
var ctx = event.getContext(); var ctx = event.context;
ctx.save(); ctx.save();
ctx.beginPath(); ctx.beginPath();
if (mousePosition) { if (mousePosition) {
@@ -63,6 +63,6 @@ imagery.on('precompose', function(event) {
// after rendering the layer, restore the canvas context // after rendering the layer, restore the canvas context
imagery.on('postcompose', function(event) { imagery.on('postcompose', function(event) {
var ctx = event.getContext(); var ctx = event.context;
ctx.restore(); ctx.restore();
}); });
+2 -2
View File
@@ -28,7 +28,7 @@ var map = new ol.Map({
var swipe = document.getElementById('swipe'); var swipe = document.getElementById('swipe');
bing.on('precompose', function(event) { bing.on('precompose', function(event) {
var ctx = event.getContext(); var ctx = event.context;
var width = ctx.canvas.width * (swipe.value / 100); var width = ctx.canvas.width * (swipe.value / 100);
ctx.save(); ctx.save();
@@ -38,7 +38,7 @@ bing.on('precompose', function(event) {
}); });
bing.on('postcompose', function(event) { bing.on('postcompose', function(event) {
var ctx = event.getContext(); var ctx = event.context;
ctx.restore(); ctx.restore();
}); });
+1 -1
View File
@@ -49,7 +49,7 @@ map.addOverlay(popup);
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var element = popup.getElement(); var element = popup.getElement();
var coordinate = evt.getCoordinate(); var coordinate = evt.coordinate;
var hdms = ol.coordinate.toStringHDMS(ol.proj.transform( var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(
coordinate, 'EPSG:3857', 'EPSG:4326')); coordinate, 'EPSG:3857', 'EPSG:4326'));
+1 -1
View File
@@ -62,7 +62,7 @@ var map = new ol.Map({
* Add a click handler to the map to render the popup. * Add a click handler to the map to render the popup.
*/ */
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var coordinate = evt.getCoordinate(); var coordinate = evt.coordinate;
var hdms = ol.coordinate.toStringHDMS(ol.proj.transform( var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(
coordinate, 'EPSG:3857', 'EPSG:4326')); coordinate, 'EPSG:3857', 'EPSG:4326'));
+2 -3
View File
@@ -97,8 +97,7 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var coordinate = evt.getCoordinate(); displaySnap(evt.coordinate);
displaySnap(coordinate);
}); });
var imageStyle = new ol.style.Circle({ var imageStyle = new ol.style.Circle({
@@ -114,7 +113,7 @@ var strokeStyle = new ol.style.Stroke({
width: 3 width: 3
}); });
map.on('postcompose', function(evt) { map.on('postcompose', function(evt) {
var render = evt.getRender(); var render = evt.render;
if (point !== null) { if (point !== null) {
render.setImageStyle(imageStyle); render.setImageStyle(imageStyle);
render.drawPointGeometry(point); render.drawPointGeometry(point);
+1 -2
View File
@@ -94,6 +94,5 @@ $(map.getViewport()).on('mousemove', function(evt) {
}); });
map.on('singleclick', function(evt) { map.on('singleclick', function(evt) {
var pixel = evt.getPixel(); displayFeatureInfo(evt.pixel);
displayFeatureInfo(pixel);
}); });
+87
View File
@@ -9,6 +9,50 @@
var oli; var oli;
/** @interface */
oli.CollectionEvent = function() {};
/** @type {*} */
oli.CollectionEvent.prototype.element;
/** @interface */
oli.DrawEvent;
/** @type {ol.Feature} */
oli.DrawEvent.prototype.feature;
/** @interface */
oli.ObjectEvent;
/** @type {string} */
oli.ObjectEvent.prototype.key;
/** @interface */
oli.MapBrowserEvent;
/** @type {ol.Coordinate} */
oli.MapBrowserEvent.prototype.coordinate;
/** @type {Event} */
oli.MapBrowserEvent.prototype.originalEvent;
/** @type {ol.Pixel} */
oli.MapBrowserEvent.prototype.pixel;
/** /**
* @interface * @interface
*/ */
@@ -20,3 +64,46 @@ oli.control.Control = function() {};
* @return {undefined} Undefined. * @return {undefined} Undefined.
*/ */
oli.control.Control.prototype.setMap = function(map) {}; oli.control.Control.prototype.setMap = function(map) {};
/** @interface */
oli.interaction.DragAndDropEvent = function() {};
/** @type {Array.<ol.Feature>} */
oli.interaction.DragAndDropEvent.prototype.features;
/** @type {ol.proj.Projection} */
oli.interaction.DragAndDropEvent.prototype.projection;
/** @interface */
oli.render.Event = function() {};
/** @type {CanvasRenderingContext2D|null|undefined} */
oli.render.Event.prototype.context;
/** @type {ol.FrameState|undefined} */
oli.render.Event.prototype.frameState;
/** @type {ol.webgl.Context|null|undefined} */
oli.render.Event.prototype.glContext;
/** @type {ol.render.IRender|undefined} */
oli.render.Event.prototype.render;
/** @interface */
oli.source.VectorEvent;
/** @type {ol.Feature} */
oli.source.VectorEvent.prototype.feature;
-2
View File
@@ -11,5 +11,3 @@
@exportProperty ol.Collection.prototype.remove @exportProperty ol.Collection.prototype.remove
@exportProperty ol.Collection.prototype.removeAt @exportProperty ol.Collection.prototype.removeAt
@exportProperty ol.Collection.prototype.setAt @exportProperty ol.Collection.prototype.setAt
@exportProperty ol.CollectionEvent.prototype.getElement
+4 -12
View File
@@ -26,32 +26,24 @@ ol.CollectionEventType = {
/** /**
* @constructor * @constructor
* @extends {goog.events.Event} * @extends {goog.events.Event}
* @implements {oli.CollectionEvent}
* @param {ol.CollectionEventType} type Type. * @param {ol.CollectionEventType} type Type.
* @param {*=} opt_elem Element. * @param {*=} opt_element Element.
* @param {Object=} opt_target Target. * @param {Object=} opt_target Target.
*/ */
ol.CollectionEvent = function(type, opt_elem, opt_target) { ol.CollectionEvent = function(type, opt_element, opt_target) {
goog.base(this, type, opt_target); goog.base(this, type, opt_target);
/** /**
* @private
* @type {*} * @type {*}
*/ */
this.elem_ = opt_elem; this.element = opt_element;
}; };
goog.inherits(ol.CollectionEvent, goog.events.Event); goog.inherits(ol.CollectionEvent, goog.events.Event);
/**
* @return {*} The element to which this event pertains.
*/
ol.CollectionEvent.prototype.getElement = function() {
return this.elem_;
};
/** /**
* @enum {string} * @enum {string}
*/ */
@@ -48,7 +48,7 @@ ol.interaction.DoubleClickZoom.prototype.handleMapBrowserEvent =
var browserEvent = mapBrowserEvent.browserEvent; var browserEvent = mapBrowserEvent.browserEvent;
if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DBLCLICK) { if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DBLCLICK) {
var map = mapBrowserEvent.map; var map = mapBrowserEvent.map;
var anchor = mapBrowserEvent.getCoordinate(); var anchor = mapBrowserEvent.coordinate;
var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_; var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_;
// FIXME works for View2D only // FIXME works for View2D only
var view = map.getView().getView2D(); var view = map.getView().getView2D();
@@ -1,4 +1 @@
@exportSymbol ol.interaction.DragAndDrop @exportSymbol ol.interaction.DragAndDrop
@exportProperty ol.interaction.DragAndDropEvent.prototype.getFeatures
@exportProperty ol.interaction.DragAndDropEvent.prototype.getProjection
+3 -20
View File
@@ -183,6 +183,7 @@ ol.interaction.DragAndDropEventType = {
/** /**
* @constructor * @constructor
* @extends {goog.events.Event} * @extends {goog.events.Event}
* @implements {oli.interaction.DragAndDropEvent}
* @param {ol.interaction.DragAndDropEventType} type Type. * @param {ol.interaction.DragAndDropEventType} type Type.
* @param {Object=} opt_target Target. * @param {Object=} opt_target Target.
* @param {Array.<ol.Feature>=} opt_features Features. * @param {Array.<ol.Feature>=} opt_features Features.
@@ -194,32 +195,14 @@ ol.interaction.DragAndDropEvent =
goog.base(this, type, opt_target); goog.base(this, type, opt_target);
/** /**
* @private
* @type {Array.<ol.Feature>|undefined} * @type {Array.<ol.Feature>|undefined}
*/ */
this.features_ = opt_features; this.features = opt_features;
/** /**
* @private
* @type {ol.proj.Projection|undefined} * @type {ol.proj.Projection|undefined}
*/ */
this.projection_ = opt_projection; this.projection = opt_projection;
}; };
goog.inherits(ol.interaction.DragAndDropEvent, goog.events.Event); goog.inherits(ol.interaction.DragAndDropEvent, goog.events.Event);
/**
* @return {Array.<ol.Feature>|undefined} Features.
*/
ol.interaction.DragAndDropEvent.prototype.getFeatures = function() {
return this.features_;
};
/**
* @return {ol.proj.Projection|undefined} Projection.
*/
ol.interaction.DragAndDropEvent.prototype.getProjection = function() {
return this.projection_;
};
+4 -4
View File
@@ -114,7 +114,7 @@ goog.inherits(ol.interaction.DragBox, ol.interaction.Drag);
* @inheritDoc * @inheritDoc
*/ */
ol.interaction.DragBox.prototype.handleDrag = function(mapBrowserEvent) { ol.interaction.DragBox.prototype.handleDrag = function(mapBrowserEvent) {
this.box_.setPixels(this.startPixel_, mapBrowserEvent.getPixel()); this.box_.setPixels(this.startPixel_, mapBrowserEvent.pixel);
}; };
@@ -144,7 +144,7 @@ ol.interaction.DragBox.prototype.handleDragEnd =
ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED) { ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED) {
this.onBoxEnd(mapBrowserEvent); this.onBoxEnd(mapBrowserEvent);
this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXEND, this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXEND,
mapBrowserEvent.getCoordinate())); mapBrowserEvent.coordinate));
} }
}; };
@@ -156,11 +156,11 @@ ol.interaction.DragBox.prototype.handleDragStart =
function(mapBrowserEvent) { function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent; var browserEvent = mapBrowserEvent.browserEvent;
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
this.startPixel_ = mapBrowserEvent.getPixel(); this.startPixel_ = mapBrowserEvent.pixel;
this.box_.setMap(mapBrowserEvent.map); this.box_.setMap(mapBrowserEvent.map);
this.box_.setPixels(this.startPixel_, this.startPixel_); this.box_.setPixels(this.startPixel_, this.startPixel_);
this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXSTART, this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXSTART,
mapBrowserEvent.getCoordinate())); mapBrowserEvent.coordinate));
return true; return true;
} else { } else {
return false; return false;
+1 -2
View File
@@ -133,8 +133,7 @@ ol.interaction.Drag.prototype.handleMapBrowserEvent =
this.deltaX = 0; this.deltaX = 0;
this.deltaY = 0; this.deltaY = 0;
this.startCenter = view2DState.center; this.startCenter = view2DState.center;
this.startCoordinate = /** @type {ol.Coordinate} */ this.startCoordinate = mapBrowserEvent.coordinate;
(mapBrowserEvent.getCoordinate());
var handled = this.handleDragStart(mapBrowserEvent); var handled = this.handleDragStart(mapBrowserEvent);
if (handled) { if (handled) {
this.dragging_ = true; this.dragging_ = true;
@@ -71,7 +71,7 @@ ol.interaction.DragRotateAndZoom.prototype.handleDrag =
function(mapBrowserEvent) { function(mapBrowserEvent) {
var map = mapBrowserEvent.map; var map = mapBrowserEvent.map;
var size = map.getSize(); var size = map.getSize();
var offset = mapBrowserEvent.getPixel(); var offset = mapBrowserEvent.pixel;
var delta = new goog.math.Vec2( var delta = new goog.math.Vec2(
offset[0] - size[0] / 2, offset[0] - size[0] / 2,
size[1] / 2 - offset[1]); size[1] / 2 - offset[1]);
+1 -1
View File
@@ -52,7 +52,7 @@ goog.inherits(ol.interaction.DragRotate, ol.interaction.Drag);
ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) { ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) {
var map = mapBrowserEvent.map; var map = mapBrowserEvent.map;
var size = map.getSize(); var size = map.getSize();
var offset = mapBrowserEvent.getPixel(); var offset = mapBrowserEvent.pixel;
var theta = var theta =
Math.atan2(size[1] / 2 - offset[1], offset[0] - size[0] / 2); Math.atan2(size[1] / 2 - offset[1], offset[0] - size[0] / 2);
if (goog.isDef(this.lastAngle_)) { if (goog.isDef(this.lastAngle_)) {
@@ -1,3 +1 @@
@exportSymbol ol.interaction.Draw @exportSymbol ol.interaction.Draw
@exportProperty ol.DrawEvent.prototype.getFeature
+7 -15
View File
@@ -38,6 +38,7 @@ ol.DrawEventType = {
/** /**
* @constructor * @constructor
* @extends {goog.events.Event} * @extends {goog.events.Event}
* @implements {oli.DrawEvent}
* @param {ol.DrawEventType} type Type. * @param {ol.DrawEventType} type Type.
* @param {ol.Feature} feature The feature drawn. * @param {ol.Feature} feature The feature drawn.
*/ */
@@ -46,23 +47,14 @@ ol.DrawEvent = function(type, feature) {
goog.base(this, type); goog.base(this, type);
/** /**
* @private
* @type {ol.Feature} * @type {ol.Feature}
*/ */
this.feature_ = feature; this.feature = feature;
}; };
goog.inherits(ol.DrawEvent, goog.events.Event); goog.inherits(ol.DrawEvent, goog.events.Event);
/**
* @return {ol.Feature} The feature drawn to which this event pertains.
*/
ol.DrawEvent.prototype.getFeature = function() {
return this.feature_;
};
/** /**
* Interaction that allows drawing geometries * Interaction that allows drawing geometries
@@ -261,7 +253,7 @@ ol.interaction.Draw.prototype.handleMapBrowserEvent = function(event) {
*/ */
ol.interaction.Draw.prototype.handleClick_ = function(event) { ol.interaction.Draw.prototype.handleClick_ = function(event) {
var downPx = event.map.getEventPixel(event.target.getDown()); var downPx = event.map.getEventPixel(event.target.getDown());
var clickPx = event.getPixel(); var clickPx = event.pixel;
var dx = downPx[0] - clickPx[0]; var dx = downPx[0] - clickPx[0];
var dy = downPx[1] - clickPx[1]; var dy = downPx[1] - clickPx[1];
var squaredDistance = dx * dx + dy * dy; var squaredDistance = dx * dx + dy * dy;
@@ -324,7 +316,7 @@ ol.interaction.Draw.prototype.atFinish_ = function(event) {
for (var i = 0, ii = potentiallyFinishCoordinates.length; i < ii; i++) { for (var i = 0, ii = potentiallyFinishCoordinates.length; i < ii; i++) {
var finishCoordinate = potentiallyFinishCoordinates[i]; var finishCoordinate = potentiallyFinishCoordinates[i];
var finishPixel = map.getPixelFromCoordinate(finishCoordinate); var finishPixel = map.getPixelFromCoordinate(finishCoordinate);
var pixel = event.getPixel(); var pixel = event.pixel;
var dx = pixel[0] - finishPixel[0]; var dx = pixel[0] - finishPixel[0];
var dy = pixel[1] - finishPixel[1]; var dy = pixel[1] - finishPixel[1];
at = Math.sqrt(dx * dx + dy * dy) <= this.snapTolerance_; at = Math.sqrt(dx * dx + dy * dy) <= this.snapTolerance_;
@@ -345,7 +337,7 @@ ol.interaction.Draw.prototype.atFinish_ = function(event) {
* @private * @private
*/ */
ol.interaction.Draw.prototype.startDrawing_ = function(event) { ol.interaction.Draw.prototype.startDrawing_ = function(event) {
var start = event.getCoordinate(); var start = event.coordinate;
this.finishCoordinate_ = start; this.finishCoordinate_ = start;
var geometry; var geometry;
if (this.mode_ === ol.interaction.DrawMode.POINT) { if (this.mode_ === ol.interaction.DrawMode.POINT) {
@@ -376,7 +368,7 @@ ol.interaction.Draw.prototype.startDrawing_ = function(event) {
* @private * @private
*/ */
ol.interaction.Draw.prototype.modifyDrawing_ = function(event) { ol.interaction.Draw.prototype.modifyDrawing_ = function(event) {
var coordinate = event.getCoordinate(); var coordinate = event.coordinate;
var geometry = this.sketchFeature_.getGeometry(); var geometry = this.sketchFeature_.getGeometry();
var coordinates, last; var coordinates, last;
if (this.mode_ === ol.interaction.DrawMode.POINT) { if (this.mode_ === ol.interaction.DrawMode.POINT) {
@@ -424,7 +416,7 @@ ol.interaction.Draw.prototype.modifyDrawing_ = function(event) {
* @private * @private
*/ */
ol.interaction.Draw.prototype.addToDrawing_ = function(event) { ol.interaction.Draw.prototype.addToDrawing_ = function(event) {
var coordinate = event.getCoordinate(); var coordinate = event.coordinate;
var geometry = this.sketchFeature_.getGeometry(); var geometry = this.sketchFeature_.getGeometry();
var coordinates, last; var coordinates, last;
if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) {
@@ -79,11 +79,10 @@ ol.interaction.MouseWheelZoom.prototype.handleMapBrowserEvent =
if (mapBrowserEvent.type == if (mapBrowserEvent.type ==
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL) { goog.events.MouseWheelHandler.EventType.MOUSEWHEEL) {
var map = mapBrowserEvent.map; var map = mapBrowserEvent.map;
var mouseWheelEvent = /** @type {goog.events.MouseWheelEvent} */ var mouseWheelEvent = mapBrowserEvent.browserEvent;
(mapBrowserEvent.browserEvent);
goog.asserts.assertInstanceof(mouseWheelEvent, goog.events.MouseWheelEvent); goog.asserts.assertInstanceof(mouseWheelEvent, goog.events.MouseWheelEvent);
this.lastAnchor_ = mapBrowserEvent.getCoordinate(); this.lastAnchor_ = mapBrowserEvent.coordinate;
this.delta_ += mouseWheelEvent.deltaY / 3; this.delta_ += mouseWheelEvent.deltaY / 3;
if (!goog.isDef(this.startTime_)) { if (!goog.isDef(this.startTime_)) {
+1 -1
View File
@@ -81,7 +81,7 @@ ol.interaction.Touch.isTouchEvent_ = function(mapBrowserEvent) {
ol.interaction.Touch.prototype.updateTrackedTouches_ = ol.interaction.Touch.prototype.updateTrackedTouches_ =
function(mapBrowserEvent) { function(mapBrowserEvent) {
if (ol.interaction.Touch.isTouchEvent_(mapBrowserEvent)) { if (ol.interaction.Touch.isTouchEvent_(mapBrowserEvent)) {
var event = mapBrowserEvent.browserEvent.getBrowserEvent(); var event = mapBrowserEvent.browserEvent;
if (goog.isDef(event.targetTouches)) { if (goog.isDef(event.targetTouches)) {
// W3C touch events // W3C touch events
this.targetTouches = event.targetTouches; this.targetTouches = event.targetTouches;
+2 -2
View File
@@ -120,7 +120,7 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
* @private * @private
*/ */
ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) { ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) {
var layer = /** @type {ol.layer.Base} */ (collectionEvent.getElement()); var layer = /** @type {ol.layer.Base} */ (collectionEvent.element);
this.listenerKeys_[goog.getUid(layer).toString()] = goog.events.listen( this.listenerKeys_[goog.getUid(layer).toString()] = goog.events.listen(
layer, [ol.ObjectEventType.PROPERTYCHANGE, goog.events.EventType.CHANGE], layer, [ol.ObjectEventType.PROPERTYCHANGE, goog.events.EventType.CHANGE],
this.handleLayerChange_, false, this); this.handleLayerChange_, false, this);
@@ -133,7 +133,7 @@ ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) {
* @private * @private
*/ */
ol.layer.Group.prototype.handleLayersRemove_ = function(collectionEvent) { ol.layer.Group.prototype.handleLayersRemove_ = function(collectionEvent) {
var layer = /** @type {ol.layer.Base} */ (collectionEvent.getElement()); var layer = /** @type {ol.layer.Base} */ (collectionEvent.element);
var key = goog.getUid(layer).toString(); var key = goog.getUid(layer).toString();
goog.events.unlistenByKey(this.listenerKeys_[key]); goog.events.unlistenByKey(this.listenerKeys_[key]);
delete this.listenerKeys_[key]; delete this.listenerKeys_[key];
+1 -1
View File
@@ -777,7 +777,7 @@ ol.Map.prototype.handleMapBrowserEvent = function(mapBrowserEvent) {
// coordinates so interactions cannot be used. // coordinates so interactions cannot be used.
return; return;
} }
this.focus_ = mapBrowserEvent.getCoordinate(); this.focus_ = mapBrowserEvent.coordinate;
mapBrowserEvent.frameState = this.frameState_; mapBrowserEvent.frameState = this.frameState_;
var interactions = this.getInteractions(); var interactions = this.getInteractions();
var interactionsArray = /** @type {Array.<ol.interaction.Interaction>} */ var interactionsArray = /** @type {Array.<ol.interaction.Interaction>} */
-3
View File
@@ -1,5 +1,2 @@
@exportProperty ol.MapBrowserEvent.prototype.getBrowserEvent
@exportProperty ol.MapBrowserEvent.prototype.getCoordinate
@exportProperty ol.MapBrowserEvent.prototype.getPixel
@exportProperty ol.MapBrowserEvent.prototype.preventDefault @exportProperty ol.MapBrowserEvent.prototype.preventDefault
@exportProperty ol.MapBrowserEvent.prototype.stopPropagation @exportProperty ol.MapBrowserEvent.prototype.stopPropagation
+10 -39
View File
@@ -18,6 +18,7 @@ goog.require('ol.Pixel');
/** /**
* @constructor * @constructor
* @extends {ol.MapEvent} * @extends {ol.MapEvent}
* @implements {oli.MapBrowserEvent}
* @param {string} type Event type. * @param {string} type Event type.
* @param {ol.Map} map Map. * @param {ol.Map} map Map.
* @param {goog.events.BrowserEvent} browserEvent Browser event. * @param {goog.events.BrowserEvent} browserEvent Browser event.
@@ -35,55 +36,25 @@ ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) {
this.browserEvent = browserEvent; this.browserEvent = browserEvent;
/** /**
* @private * @const
* @type {ol.Coordinate} * @type {Event}
*/ */
this.coordinate_ = null; this.originalEvent = browserEvent.getBrowserEvent();
/**
* @type {ol.Coordinate}
*/
this.coordinate = map.getEventCoordinate(this.originalEvent);
/** /**
* @private
* @type {ol.Pixel} * @type {ol.Pixel}
*/ */
this.pixel_ = null; this.pixel = map.getEventPixel(this.originalEvent);
}; };
goog.inherits(ol.MapBrowserEvent, ol.MapEvent); goog.inherits(ol.MapBrowserEvent, ol.MapEvent);
/**
* @return {Event} The underlying browser event object.
*/
ol.MapBrowserEvent.prototype.getBrowserEvent = function() {
return this.browserEvent.getBrowserEvent();
};
/**
* @return {ol.Coordinate} Coordinate.
* @todo stability experimental
*/
ol.MapBrowserEvent.prototype.getCoordinate = function() {
if (goog.isNull(this.coordinate_)) {
this.coordinate_ = this.map.getEventCoordinate(
this.browserEvent.getBrowserEvent());
}
return this.coordinate_;
};
/**
* Get pixel offset of the event from the top-left corner of the map viewport.
* @return {ol.Pixel} Pixel offset.
* @todo stability experimental
*/
ol.MapBrowserEvent.prototype.getPixel = function() {
if (goog.isNull(this.pixel_)) {
this.pixel_ = this.map.getEventPixel(this.browserEvent.getBrowserEvent());
}
return this.pixel_;
};
/** /**
* Prevents the default browser action. * Prevents the default browser action.
* @see https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault * @see https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
-2
View File
@@ -7,5 +7,3 @@
@exportProperty ol.Object.prototype.setValues @exportProperty ol.Object.prototype.setValues
@exportProperty ol.Object.prototype.unbind @exportProperty ol.Object.prototype.unbind
@exportProperty ol.Object.prototype.unbindAll @exportProperty ol.Object.prototype.unbindAll
@exportProperty ol.ObjectEvent.prototype.getKey
+3 -12
View File
@@ -33,6 +33,7 @@ ol.ObjectEventType = {
* @param {string} type The event type. * @param {string} type The event type.
* @param {string} key The property name. * @param {string} key The property name.
* @extends {goog.events.Event} * @extends {goog.events.Event}
* @implements {oli.ObjectEvent}
* @constructor * @constructor
*/ */
ol.ObjectEvent = function(type, key) { ol.ObjectEvent = function(type, key) {
@@ -41,23 +42,13 @@ ol.ObjectEvent = function(type, key) {
/** /**
* The name of the property whose value is changing. * The name of the property whose value is changing.
* @type {string} * @type {string}
* @private
*/ */
this.key_ = key; this.key = key;
}; };
goog.inherits(ol.ObjectEvent, goog.events.Event); goog.inherits(ol.ObjectEvent, goog.events.Event);
/**
* Get the name of the property associated with this event.
* @return {string} Object property name.
*/
ol.ObjectEvent.prototype.getKey = function() {
return this.key_;
};
/** /**
* @constructor * @constructor
@@ -277,7 +268,7 @@ ol.Object.prototype.createBeforeChangeListener_ = function(key, targetKey) {
* @this {ol.Object} * @this {ol.Object}
*/ */
return function(event) { return function(event) {
if (event.getKey() === targetKey) { if (event.key === targetKey) {
this.dispatchEvent( this.dispatchEvent(
new ol.ObjectEvent(ol.ObjectEventType.BEFOREPROPERTYCHANGE, key)); new ol.ObjectEvent(ol.ObjectEventType.BEFOREPROPERTYCHANGE, key));
} }
+1 -1
View File
@@ -100,7 +100,7 @@ ol.render.Box.prototype.handleMapPostCompose_ = function(event) {
var style = this.style_; var style = this.style_;
goog.asserts.assert(!goog.isNull(style)); goog.asserts.assert(!goog.isNull(style));
// use drawAsync(Infinity) to draw above everything // use drawAsync(Infinity) to draw above everything
event.getRender().drawAsync(Infinity, function(render) { event.render.drawAsync(Infinity, function(render) {
render.setFillStrokeStyle(style.getFill(), style.getStroke()); render.setFillStrokeStyle(style.getFill(), style.getStroke());
render.drawPolygonGeometry(geometry, null); render.drawPolygonGeometry(geometry, null);
}); });
+4 -4
View File
@@ -110,7 +110,7 @@ ol.render.FeaturesOverlay.prototype.handleFeatureChange_ = function() {
ol.render.FeaturesOverlay.prototype.handleFeaturesAdd_ = ol.render.FeaturesOverlay.prototype.handleFeaturesAdd_ =
function(collectionEvent) { function(collectionEvent) {
goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_)); goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_));
var feature = /** @type {ol.Feature} */ (collectionEvent.getElement()); var feature = /** @type {ol.Feature} */ (collectionEvent.element);
this.featureChangeListenerKeys_[goog.getUid(feature).toString()] = this.featureChangeListenerKeys_[goog.getUid(feature).toString()] =
goog.events.listen(feature, goog.events.EventType.CHANGE, goog.events.listen(feature, goog.events.EventType.CHANGE,
this.handleFeatureChange_, false, this); this.handleFeatureChange_, false, this);
@@ -125,7 +125,7 @@ ol.render.FeaturesOverlay.prototype.handleFeaturesAdd_ =
ol.render.FeaturesOverlay.prototype.handleFeaturesRemove_ = ol.render.FeaturesOverlay.prototype.handleFeaturesRemove_ =
function(collectionEvent) { function(collectionEvent) {
goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_)); goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_));
var feature = /** @type {ol.Feature} */ (collectionEvent.getElement()); var feature = /** @type {ol.Feature} */ (collectionEvent.element);
var key = goog.getUid(feature).toString(); var key = goog.getUid(feature).toString();
goog.events.unlistenByKey(this.featureChangeListenerKeys_[key]); goog.events.unlistenByKey(this.featureChangeListenerKeys_[key]);
delete this.featureChangeListenerKeys_[key]; delete this.featureChangeListenerKeys_[key];
@@ -141,8 +141,8 @@ ol.render.FeaturesOverlay.prototype.handleMapPostCompose_ = function(event) {
if (goog.isNull(this.features_) || !goog.isDef(this.styleFunction_)) { if (goog.isNull(this.features_) || !goog.isDef(this.styleFunction_)) {
return; return;
} }
var resolution = event.getFrameState().view2DState.resolution; var resolution = event.frameState.view2DState.resolution;
var render = event.getRender(); var render = event.render;
var i, ii, feature, styles; var i, ii, feature, styles;
this.features_.forEach(function(feature) { this.features_.forEach(function(feature) {
styles = this.styleFunction_(feature, resolution); styles = this.styleFunction_(feature, resolution);
-4
View File
@@ -1,4 +0,0 @@
@exportProperty ol.render.Event.prototype.getContext
@exportProperty ol.render.Event.prototype.getFrameState
@exportProperty ol.render.Event.prototype.getGlContext
@exportProperty ol.render.Event.prototype.getRender
+5 -40
View File
@@ -18,6 +18,7 @@ ol.render.EventType = {
/** /**
* @constructor * @constructor
* @extends {goog.events.Event} * @extends {goog.events.Event}
* @implements {oli.render.Event}
* @param {ol.render.EventType} type Type. * @param {ol.render.EventType} type Type.
* @param {Object=} opt_target Target. * @param {Object=} opt_target Target.
* @param {ol.render.IRender=} opt_render Render. * @param {ol.render.IRender=} opt_render Render.
@@ -33,59 +34,23 @@ ol.render.Event = function(
/** /**
* @type {ol.render.IRender|undefined} * @type {ol.render.IRender|undefined}
* @private
*/ */
this.render_ = opt_render; this.render = opt_render;
/** /**
* @type {ol.FrameState|undefined} * @type {ol.FrameState|undefined}
* @private
*/ */
this.frameState_ = opt_frameState; this.frameState = opt_frameState;
/** /**
* @type {CanvasRenderingContext2D|null|undefined} * @type {CanvasRenderingContext2D|null|undefined}
* @private
*/ */
this.context_ = opt_context; this.context = opt_context;
/** /**
* @type {ol.webgl.Context|null|undefined} * @type {ol.webgl.Context|null|undefined}
* @private
*/ */
this.glContext_ = opt_glContext; this.glContext = opt_glContext;
}; };
goog.inherits(ol.render.Event, goog.events.Event); goog.inherits(ol.render.Event, goog.events.Event);
/**
* @return {CanvasRenderingContext2D|null|undefined} Context.
*/
ol.render.Event.prototype.getContext = function() {
return this.context_;
};
/**
* @return {ol.FrameState|undefined} Frame state.
*/
ol.render.Event.prototype.getFrameState = function() {
return this.frameState_;
};
/**
* @return {ol.webgl.Context|null|undefined} GL context.
*/
ol.render.Event.prototype.getGlContext = function() {
return this.glContext_;
};
/**
* @return {ol.render.IRender|undefined} Render.
*/
ol.render.Event.prototype.getRender = function() {
return this.render_;
};
-2
View File
@@ -8,5 +8,3 @@
@exportProperty ol.source.Vector.prototype.getAllFeatures @exportProperty ol.source.Vector.prototype.getAllFeatures
@exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate @exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate
@exportProperty ol.source.Vector.prototype.removeFeature @exportProperty ol.source.Vector.prototype.removeFeature
@exportProperty ol.source.VectorEvent.prototype.getFeature
+2 -10
View File
@@ -342,6 +342,7 @@ ol.source.Vector.prototype.removeFeatureInternal = function(feature) {
/** /**
* @constructor * @constructor
* @extends {goog.events.Event} * @extends {goog.events.Event}
* @implements {oli.source.VectorEvent}
* @param {string} type Type. * @param {string} type Type.
* @param {ol.Feature=} opt_feature Feature. * @param {ol.Feature=} opt_feature Feature.
*/ */
@@ -350,18 +351,9 @@ ol.source.VectorEvent = function(type, opt_feature) {
goog.base(this, type); goog.base(this, type);
/** /**
* @private
* @type {ol.Feature|undefined} * @type {ol.Feature|undefined}
*/ */
this.feature_ = opt_feature; this.feature = opt_feature;
}; };
goog.inherits(ol.source.VectorEvent, goog.events.Event); goog.inherits(ol.source.VectorEvent, goog.events.Event);
/**
* @return {ol.Feature|undefined} Feature.
*/
ol.source.VectorEvent.prototype.getFeature = function() {
return this.feature_;
};
+11 -11
View File
@@ -117,7 +117,7 @@ describe('ol.collection', function() {
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb); goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb);
expect(collection.remove(1)).to.eql(1); expect(collection.remove(1)).to.eql(1);
expect(cb).to.be.called(); expect(cb).to.be.called();
expect(cb.lastCall.args[0].getElement()).to.eql(1); expect(cb.lastCall.args[0].element).to.eql(1);
}); });
it('does not remove more than one matching element', function() { it('does not remove more than one matching element', function() {
var collection = new ol.Collection([0, 1, 1, 2]); var collection = new ol.Collection([0, 1, 1, 2]);
@@ -138,11 +138,11 @@ describe('ol.collection', function() {
var collection = new ol.Collection(['a', 'b']); var collection = new ol.Collection(['a', 'b']);
var added, removed; var added, removed;
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) { goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
added = e.getElement(); added = e.element;
}); });
goog.events.listen( goog.events.listen(
collection, ol.CollectionEventType.REMOVE, function(e) { collection, ol.CollectionEventType.REMOVE, function(e) {
removed = e.getElement(); removed = e.element;
}); });
collection.setAt(1, 1); collection.setAt(1, 1);
expect(added).to.eql(1); expect(added).to.eql(1);
@@ -156,7 +156,7 @@ describe('ol.collection', function() {
var removed; var removed;
goog.events.listen( goog.events.listen(
collection, ol.CollectionEventType.REMOVE, function(e) { collection, ol.CollectionEventType.REMOVE, function(e) {
removed = e.getElement(); removed = e.element;
}); });
collection.pop(); collection.pop();
expect(removed).to.eql('a'); expect(removed).to.eql('a');
@@ -169,7 +169,7 @@ describe('ol.collection', function() {
var added; var added;
goog.events.listen( goog.events.listen(
collection, ol.CollectionEventType.ADD, function(e) { collection, ol.CollectionEventType.ADD, function(e) {
added = e.getElement(); added = e.element;
}); });
collection.insertAt(1, 1); collection.insertAt(1, 1);
expect(added).to.eql(1); expect(added).to.eql(1);
@@ -181,7 +181,7 @@ describe('ol.collection', function() {
var added = []; var added = [];
goog.events.listen( goog.events.listen(
collection, ol.CollectionEventType.ADD, function(e) { collection, ol.CollectionEventType.ADD, function(e) {
added.push(e.getElement()); added.push(e.element);
}); });
collection.setAt(2, 0); collection.setAt(2, 0);
expect(collection.getLength()).to.eql(3); expect(collection.getLength()).to.eql(3);
@@ -230,7 +230,7 @@ describe('ol.collection', function() {
var collection = new ol.Collection(); var collection = new ol.Collection();
var elem; var elem;
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) { goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
elem = e.getElement(); elem = e.element;
}); });
collection.push(1); collection.push(1);
expect(elem).to.eql(1); expect(elem).to.eql(1);
@@ -249,15 +249,15 @@ describe('ol.collection', function() {
goog.events.listen(collection, ol.CollectionEventType.ADD, cb1); goog.events.listen(collection, ol.CollectionEventType.ADD, cb1);
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb2); goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb2);
collection.setAt(0, 2); collection.setAt(0, 2);
expect(cb2.lastCall.args[0].getElement()).to.eql(1); expect(cb2.lastCall.args[0].element).to.eql(1);
expect(cb1.lastCall.args[0].getElement()).to.eql(2); expect(cb1.lastCall.args[0].element).to.eql(2);
}); });
}); });
describe('pop', function() { describe('pop', function() {
it('triggers remove', function() { it('triggers remove', function() {
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb1); goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb1);
collection.pop(); collection.pop();
expect(cb1.lastCall.args[0].getElement()).to.eql(1); expect(cb1.lastCall.args[0].element).to.eql(1);
}); });
}); });
}); });
@@ -274,7 +274,7 @@ describe('ol.collection', function() {
var collection = new ol.Collection(); var collection = new ol.Collection();
var elems = []; var elems = [];
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) { goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
elems.push(e.getElement()); elems.push(e.element);
}); });
collection.extend([1, 2]); collection.extend([1, 2]);
expect(elems).to.eql([1, 2]); expect(elems).to.eql([1, 2]);
+32 -5
View File
@@ -6,16 +6,21 @@ describe('ol.MapBrowserEventHandler', function() {
var handler; var handler;
var singleclickSpy; var singleclickSpy;
var dblclickSpy; var dblclickSpy;
var target;
beforeEach(function() { beforeEach(function() {
clock = sinon.useFakeTimers(); clock = sinon.useFakeTimers();
handler = new ol.MapBrowserEventHandler(new ol.Map({})); target = goog.dom.createElement(goog.dom.TagName.DIV);
handler = new ol.MapBrowserEventHandler(new ol.Map({
target: target
}));
singleclickSpy = sinon.spy(); singleclickSpy = sinon.spy();
goog.events.listen(handler, 'singleclick', singleclickSpy); goog.events.listen(handler, 'singleclick', singleclickSpy);
dblclickSpy = sinon.spy(); dblclickSpy = sinon.spy();
goog.events.listen(handler, 'dblclick', dblclickSpy); goog.events.listen(handler, 'dblclick', dblclickSpy);
}); });
afterEach(function() { afterEach(function() {
@@ -23,7 +28,12 @@ describe('ol.MapBrowserEventHandler', function() {
}); });
it('emulates click', function() { it('emulates click', function() {
handler.emulateClick_(); handler.emulateClick_(new goog.events.BrowserEvent({
type: 'mousedown',
target: target,
clientX: 0,
clientY: 0
}));
expect(singleclickSpy.called).to.not.be.ok(); expect(singleclickSpy.called).to.not.be.ok();
expect(dblclickSpy.called).to.not.be.ok(); expect(dblclickSpy.called).to.not.be.ok();
@@ -31,17 +41,32 @@ describe('ol.MapBrowserEventHandler', function() {
expect(singleclickSpy.calledOnce).to.be.ok(); expect(singleclickSpy.calledOnce).to.be.ok();
expect(dblclickSpy.called).to.not.be.ok(); expect(dblclickSpy.called).to.not.be.ok();
handler.emulateClick_(); handler.emulateClick_(new goog.events.BrowserEvent({
type: 'mousedown',
target: target,
clientX: 0,
clientY: 0
}));
expect(singleclickSpy.calledOnce).to.be.ok(); expect(singleclickSpy.calledOnce).to.be.ok();
expect(dblclickSpy.called).to.not.be.ok(); expect(dblclickSpy.called).to.not.be.ok();
}); });
it('emulates dblclick', function() { it('emulates dblclick', function() {
handler.emulateClick_(); handler.emulateClick_({
type: 'mousedown',
target: target,
clientX: 0,
clientY: 0
});
expect(singleclickSpy.called).to.not.be.ok(); expect(singleclickSpy.called).to.not.be.ok();
expect(dblclickSpy.called).to.not.be.ok(); expect(dblclickSpy.called).to.not.be.ok();
handler.emulateClick_(); handler.emulateClick_(new goog.events.BrowserEvent({
type: 'mousedown',
target: target,
clientX: 0,
clientY: 0
}));
expect(singleclickSpy.called).to.not.be.ok(); expect(singleclickSpy.called).to.not.be.ok();
expect(dblclickSpy.calledOnce).to.be.ok(); expect(dblclickSpy.calledOnce).to.be.ok();
@@ -84,6 +109,8 @@ describe('ol.MapBrowserEventHandler', function() {
}); });
}); });
goog.require('goog.dom');
goog.require('goog.dom.TagName');
goog.require('goog.events'); goog.require('goog.events');
goog.require('goog.events.BrowserEvent'); goog.require('goog.events.BrowserEvent');
goog.require('ol.Map'); goog.require('ol.Map');
+12 -12
View File
@@ -125,7 +125,7 @@ describe('ol.Object', function() {
var args = listener2.firstCall.args; var args = listener2.firstCall.args;
expect(args).to.have.length(1); expect(args).to.have.length(1);
var event = args[0]; var event = args[0];
expect(event.getKey()).to.be('k'); expect(event.key).to.be('k');
}); });
it('dispatches events to bound objects', function() { it('dispatches events to bound objects', function() {
@@ -165,7 +165,7 @@ describe('ol.Object', function() {
var args = listener2.firstCall.args; var args = listener2.firstCall.args;
expect(args).to.have.length(1); expect(args).to.have.length(1);
var event = args[0]; var event = args[0];
expect(event.getKey()).to.be('k'); expect(event.key).to.be('k');
}); });
it('dispatches beforechange events to object', function() { it('dispatches beforechange events to object', function() {
@@ -173,7 +173,7 @@ describe('ol.Object', function() {
var oldValue; var oldValue;
var beforeListener = sinon.spy(function(event) { var beforeListener = sinon.spy(function(event) {
oldValue = o2.get(event.getKey()); oldValue = o2.get(event.key);
}); });
o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
@@ -201,7 +201,7 @@ describe('ol.Object', function() {
var args = listener2.firstCall.args; var args = listener2.firstCall.args;
expect(args).to.have.length(1); expect(args).to.have.length(1);
var event = args[0]; var event = args[0];
expect(event.getKey()).to.be('k'); expect(event.key).to.be('k');
}); });
it('dispatches beforechange before changing bound objects', function() { it('dispatches beforechange before changing bound objects', function() {
@@ -209,7 +209,7 @@ describe('ol.Object', function() {
var oldValue; var oldValue;
var beforeListener = sinon.spy(function(event) { var beforeListener = sinon.spy(function(event) {
oldValue = o2.get(event.getKey()); oldValue = o2.get(event.key);
}); });
o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
@@ -218,7 +218,7 @@ describe('ol.Object', function() {
var args = beforeListener.firstCall.args; var args = beforeListener.firstCall.args;
expect(args).to.have.length(1); expect(args).to.have.length(1);
var event = args[0]; var event = args[0];
expect(event.getKey()).to.be('k'); expect(event.key).to.be('k');
expect(oldValue).to.be(1); expect(oldValue).to.be(1);
}); });
@@ -232,7 +232,7 @@ describe('ol.Object', function() {
var oldValue; var oldValue;
var beforeListener = sinon.spy(function(event) { var beforeListener = sinon.spy(function(event) {
oldValue = object.get(event.getKey()); oldValue = object.get(event.key);
}); });
object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
@@ -241,7 +241,7 @@ describe('ol.Object', function() {
var args = beforeListener.firstCall.args; var args = beforeListener.firstCall.args;
expect(args).to.have.length(1); expect(args).to.have.length(1);
var event = args[0]; var event = args[0];
expect(event.getKey()).to.be('foo'); expect(event.key).to.be('foo');
expect(oldValue).to.be('original value'); expect(oldValue).to.be('original value');
expect(object.get('foo')).to.be('new value'); expect(object.get('foo')).to.be('new value');
@@ -256,7 +256,7 @@ describe('ol.Object', function() {
var oldValue; var oldValue;
var beforeListener = sinon.spy(function(event) { var beforeListener = sinon.spy(function(event) {
oldValue = object.get(event.getKey()); oldValue = object.get(event.key);
}); });
object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener);
@@ -265,7 +265,7 @@ describe('ol.Object', function() {
var args = beforeListener.firstCall.args; var args = beforeListener.firstCall.args;
expect(args).to.have.length(1); expect(args).to.have.length(1);
var event = args[0]; var event = args[0];
expect(event.getKey()).to.be('bar'); expect(event.key).to.be('bar');
expect(oldValue).to.be('original value'); expect(oldValue).to.be('original value');
expect(object.get('bar')).to.be('new value'); expect(object.get('bar')).to.be('new value');
@@ -365,7 +365,7 @@ describe('ol.Object', function() {
expect(listener.calledOnce).to.be(true); expect(listener.calledOnce).to.be(true);
var call = listener.firstCall; var call = listener.firstCall;
expect(call.args).to.have.length(1); expect(call.args).to.have.length(1);
expect(call.args[0].getKey()).to.be('foo'); expect(call.args[0].key).to.be('foo');
object.unbind('foo'); object.unbind('foo');
target.set('foo', 'another new value'); target.set('foo', 'another new value');
@@ -400,7 +400,7 @@ describe('ol.Object', function() {
expect(listener.callCount).to.be(3); expect(listener.callCount).to.be(3);
var lastCall = listener.getCall(2); var lastCall = listener.getCall(2);
expect(lastCall.args).to.have.length(1); expect(lastCall.args).to.have.length(1);
expect(lastCall.args[0].getKey()).to.be('bar'); expect(lastCall.args[0].key).to.be('bar');
}); });
}); });