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

View File

@@ -11,5 +11,3 @@
@exportProperty ol.Collection.prototype.remove
@exportProperty ol.Collection.prototype.removeAt
@exportProperty ol.Collection.prototype.setAt
@exportProperty ol.CollectionEvent.prototype.getElement

View File

@@ -26,32 +26,24 @@ ol.CollectionEventType = {
/**
* @constructor
* @extends {goog.events.Event}
* @implements {oli.CollectionEvent}
* @param {ol.CollectionEventType} type Type.
* @param {*=} opt_elem Element.
* @param {*=} opt_element Element.
* @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);
/**
* @private
* @type {*}
*/
this.elem_ = opt_elem;
this.element = opt_element;
};
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}
*/

View File

@@ -48,7 +48,7 @@ ol.interaction.DoubleClickZoom.prototype.handleMapBrowserEvent =
var browserEvent = mapBrowserEvent.browserEvent;
if (mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DBLCLICK) {
var map = mapBrowserEvent.map;
var anchor = mapBrowserEvent.getCoordinate();
var anchor = mapBrowserEvent.coordinate;
var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_;
// FIXME works for View2D only
var view = map.getView().getView2D();

View File

@@ -1,4 +1 @@
@exportSymbol ol.interaction.DragAndDrop
@exportProperty ol.interaction.DragAndDropEvent.prototype.getFeatures
@exportProperty ol.interaction.DragAndDropEvent.prototype.getProjection

View File

@@ -183,6 +183,7 @@ ol.interaction.DragAndDropEventType = {
/**
* @constructor
* @extends {goog.events.Event}
* @implements {oli.interaction.DragAndDropEvent}
* @param {ol.interaction.DragAndDropEventType} type Type.
* @param {Object=} opt_target Target.
* @param {Array.<ol.Feature>=} opt_features Features.
@@ -194,32 +195,14 @@ ol.interaction.DragAndDropEvent =
goog.base(this, type, opt_target);
/**
* @private
* @type {Array.<ol.Feature>|undefined}
*/
this.features_ = opt_features;
this.features = opt_features;
/**
* @private
* @type {ol.proj.Projection|undefined}
*/
this.projection_ = opt_projection;
this.projection = opt_projection;
};
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_;
};

View File

@@ -114,7 +114,7 @@ goog.inherits(ol.interaction.DragBox, ol.interaction.Drag);
* @inheritDoc
*/
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) {
this.onBoxEnd(mapBrowserEvent);
this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXEND,
mapBrowserEvent.getCoordinate()));
mapBrowserEvent.coordinate));
}
};
@@ -156,11 +156,11 @@ ol.interaction.DragBox.prototype.handleDragStart =
function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
this.startPixel_ = mapBrowserEvent.getPixel();
this.startPixel_ = mapBrowserEvent.pixel;
this.box_.setMap(mapBrowserEvent.map);
this.box_.setPixels(this.startPixel_, this.startPixel_);
this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXSTART,
mapBrowserEvent.getCoordinate()));
mapBrowserEvent.coordinate));
return true;
} else {
return false;

View File

@@ -133,8 +133,7 @@ ol.interaction.Drag.prototype.handleMapBrowserEvent =
this.deltaX = 0;
this.deltaY = 0;
this.startCenter = view2DState.center;
this.startCoordinate = /** @type {ol.Coordinate} */
(mapBrowserEvent.getCoordinate());
this.startCoordinate = mapBrowserEvent.coordinate;
var handled = this.handleDragStart(mapBrowserEvent);
if (handled) {
this.dragging_ = true;

View File

@@ -71,7 +71,7 @@ ol.interaction.DragRotateAndZoom.prototype.handleDrag =
function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
var size = map.getSize();
var offset = mapBrowserEvent.getPixel();
var offset = mapBrowserEvent.pixel;
var delta = new goog.math.Vec2(
offset[0] - size[0] / 2,
size[1] / 2 - offset[1]);

View File

@@ -52,7 +52,7 @@ goog.inherits(ol.interaction.DragRotate, ol.interaction.Drag);
ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
var size = map.getSize();
var offset = mapBrowserEvent.getPixel();
var offset = mapBrowserEvent.pixel;
var theta =
Math.atan2(size[1] / 2 - offset[1], offset[0] - size[0] / 2);
if (goog.isDef(this.lastAngle_)) {

View File

@@ -1,3 +1 @@
@exportSymbol ol.interaction.Draw
@exportProperty ol.DrawEvent.prototype.getFeature

View File

@@ -38,6 +38,7 @@ ol.DrawEventType = {
/**
* @constructor
* @extends {goog.events.Event}
* @implements {oli.DrawEvent}
* @param {ol.DrawEventType} type Type.
* @param {ol.Feature} feature The feature drawn.
*/
@@ -46,23 +47,14 @@ ol.DrawEvent = function(type, feature) {
goog.base(this, type);
/**
* @private
* @type {ol.Feature}
*/
this.feature_ = feature;
this.feature = feature;
};
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
@@ -261,7 +253,7 @@ ol.interaction.Draw.prototype.handleMapBrowserEvent = function(event) {
*/
ol.interaction.Draw.prototype.handleClick_ = function(event) {
var downPx = event.map.getEventPixel(event.target.getDown());
var clickPx = event.getPixel();
var clickPx = event.pixel;
var dx = downPx[0] - clickPx[0];
var dy = downPx[1] - clickPx[1];
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++) {
var finishCoordinate = potentiallyFinishCoordinates[i];
var finishPixel = map.getPixelFromCoordinate(finishCoordinate);
var pixel = event.getPixel();
var pixel = event.pixel;
var dx = pixel[0] - finishPixel[0];
var dy = pixel[1] - finishPixel[1];
at = Math.sqrt(dx * dx + dy * dy) <= this.snapTolerance_;
@@ -345,7 +337,7 @@ ol.interaction.Draw.prototype.atFinish_ = function(event) {
* @private
*/
ol.interaction.Draw.prototype.startDrawing_ = function(event) {
var start = event.getCoordinate();
var start = event.coordinate;
this.finishCoordinate_ = start;
var geometry;
if (this.mode_ === ol.interaction.DrawMode.POINT) {
@@ -376,7 +368,7 @@ ol.interaction.Draw.prototype.startDrawing_ = function(event) {
* @private
*/
ol.interaction.Draw.prototype.modifyDrawing_ = function(event) {
var coordinate = event.getCoordinate();
var coordinate = event.coordinate;
var geometry = this.sketchFeature_.getGeometry();
var coordinates, last;
if (this.mode_ === ol.interaction.DrawMode.POINT) {
@@ -424,7 +416,7 @@ ol.interaction.Draw.prototype.modifyDrawing_ = function(event) {
* @private
*/
ol.interaction.Draw.prototype.addToDrawing_ = function(event) {
var coordinate = event.getCoordinate();
var coordinate = event.coordinate;
var geometry = this.sketchFeature_.getGeometry();
var coordinates, last;
if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) {

View File

@@ -79,11 +79,10 @@ ol.interaction.MouseWheelZoom.prototype.handleMapBrowserEvent =
if (mapBrowserEvent.type ==
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL) {
var map = mapBrowserEvent.map;
var mouseWheelEvent = /** @type {goog.events.MouseWheelEvent} */
(mapBrowserEvent.browserEvent);
var mouseWheelEvent = mapBrowserEvent.browserEvent;
goog.asserts.assertInstanceof(mouseWheelEvent, goog.events.MouseWheelEvent);
this.lastAnchor_ = mapBrowserEvent.getCoordinate();
this.lastAnchor_ = mapBrowserEvent.coordinate;
this.delta_ += mouseWheelEvent.deltaY / 3;
if (!goog.isDef(this.startTime_)) {

View File

@@ -81,7 +81,7 @@ ol.interaction.Touch.isTouchEvent_ = function(mapBrowserEvent) {
ol.interaction.Touch.prototype.updateTrackedTouches_ =
function(mapBrowserEvent) {
if (ol.interaction.Touch.isTouchEvent_(mapBrowserEvent)) {
var event = mapBrowserEvent.browserEvent.getBrowserEvent();
var event = mapBrowserEvent.browserEvent;
if (goog.isDef(event.targetTouches)) {
// W3C touch events
this.targetTouches = event.targetTouches;

View File

@@ -120,7 +120,7 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
* @private
*/
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(
layer, [ol.ObjectEventType.PROPERTYCHANGE, goog.events.EventType.CHANGE],
this.handleLayerChange_, false, this);
@@ -133,7 +133,7 @@ ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) {
* @private
*/
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();
goog.events.unlistenByKey(this.listenerKeys_[key]);
delete this.listenerKeys_[key];

View File

@@ -777,7 +777,7 @@ ol.Map.prototype.handleMapBrowserEvent = function(mapBrowserEvent) {
// coordinates so interactions cannot be used.
return;
}
this.focus_ = mapBrowserEvent.getCoordinate();
this.focus_ = mapBrowserEvent.coordinate;
mapBrowserEvent.frameState = this.frameState_;
var interactions = this.getInteractions();
var interactionsArray = /** @type {Array.<ol.interaction.Interaction>} */

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.stopPropagation

View File

@@ -18,6 +18,7 @@ goog.require('ol.Pixel');
/**
* @constructor
* @extends {ol.MapEvent}
* @implements {oli.MapBrowserEvent}
* @param {string} type Event type.
* @param {ol.Map} map Map.
* @param {goog.events.BrowserEvent} browserEvent Browser event.
@@ -35,55 +36,25 @@ ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) {
this.browserEvent = browserEvent;
/**
* @private
* @type {ol.Coordinate}
* @const
* @type {Event}
*/
this.coordinate_ = null;
this.originalEvent = browserEvent.getBrowserEvent();
/**
* @type {ol.Coordinate}
*/
this.coordinate = map.getEventCoordinate(this.originalEvent);
/**
* @private
* @type {ol.Pixel}
*/
this.pixel_ = null;
this.pixel = map.getEventPixel(this.originalEvent);
};
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.
* @see https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault

View File

@@ -7,5 +7,3 @@
@exportProperty ol.Object.prototype.setValues
@exportProperty ol.Object.prototype.unbind
@exportProperty ol.Object.prototype.unbindAll
@exportProperty ol.ObjectEvent.prototype.getKey

View File

@@ -33,6 +33,7 @@ ol.ObjectEventType = {
* @param {string} type The event type.
* @param {string} key The property name.
* @extends {goog.events.Event}
* @implements {oli.ObjectEvent}
* @constructor
*/
ol.ObjectEvent = function(type, key) {
@@ -41,23 +42,13 @@ ol.ObjectEvent = function(type, key) {
/**
* The name of the property whose value is changing.
* @type {string}
* @private
*/
this.key_ = key;
this.key = key;
};
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
@@ -277,7 +268,7 @@ ol.Object.prototype.createBeforeChangeListener_ = function(key, targetKey) {
* @this {ol.Object}
*/
return function(event) {
if (event.getKey() === targetKey) {
if (event.key === targetKey) {
this.dispatchEvent(
new ol.ObjectEvent(ol.ObjectEventType.BEFOREPROPERTYCHANGE, key));
}

View File

@@ -100,7 +100,7 @@ ol.render.Box.prototype.handleMapPostCompose_ = function(event) {
var style = this.style_;
goog.asserts.assert(!goog.isNull(style));
// 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.drawPolygonGeometry(geometry, null);
});

View File

@@ -110,7 +110,7 @@ ol.render.FeaturesOverlay.prototype.handleFeatureChange_ = function() {
ol.render.FeaturesOverlay.prototype.handleFeaturesAdd_ =
function(collectionEvent) {
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()] =
goog.events.listen(feature, goog.events.EventType.CHANGE,
this.handleFeatureChange_, false, this);
@@ -125,7 +125,7 @@ ol.render.FeaturesOverlay.prototype.handleFeaturesAdd_ =
ol.render.FeaturesOverlay.prototype.handleFeaturesRemove_ =
function(collectionEvent) {
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();
goog.events.unlistenByKey(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_)) {
return;
}
var resolution = event.getFrameState().view2DState.resolution;
var render = event.getRender();
var resolution = event.frameState.view2DState.resolution;
var render = event.render;
var i, ii, feature, styles;
this.features_.forEach(function(feature) {
styles = this.styleFunction_(feature, resolution);

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

View File

@@ -18,6 +18,7 @@ ol.render.EventType = {
/**
* @constructor
* @extends {goog.events.Event}
* @implements {oli.render.Event}
* @param {ol.render.EventType} type Type.
* @param {Object=} opt_target Target.
* @param {ol.render.IRender=} opt_render Render.
@@ -33,59 +34,23 @@ ol.render.Event = function(
/**
* @type {ol.render.IRender|undefined}
* @private
*/
this.render_ = opt_render;
this.render = opt_render;
/**
* @type {ol.FrameState|undefined}
* @private
*/
this.frameState_ = opt_frameState;
this.frameState = opt_frameState;
/**
* @type {CanvasRenderingContext2D|null|undefined}
* @private
*/
this.context_ = opt_context;
this.context = opt_context;
/**
* @type {ol.webgl.Context|null|undefined}
* @private
*/
this.glContext_ = opt_glContext;
this.glContext = opt_glContext;
};
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_;
};

View File

@@ -8,5 +8,3 @@
@exportProperty ol.source.Vector.prototype.getAllFeatures
@exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate
@exportProperty ol.source.Vector.prototype.removeFeature
@exportProperty ol.source.VectorEvent.prototype.getFeature

View File

@@ -342,6 +342,7 @@ ol.source.Vector.prototype.removeFeatureInternal = function(feature) {
/**
* @constructor
* @extends {goog.events.Event}
* @implements {oli.source.VectorEvent}
* @param {string} type Type.
* @param {ol.Feature=} opt_feature Feature.
*/
@@ -350,18 +351,9 @@ ol.source.VectorEvent = function(type, opt_feature) {
goog.base(this, type);
/**
* @private
* @type {ol.Feature|undefined}
*/
this.feature_ = opt_feature;
this.feature = opt_feature;
};
goog.inherits(ol.source.VectorEvent, goog.events.Event);
/**
* @return {ol.Feature|undefined} Feature.
*/
ol.source.VectorEvent.prototype.getFeature = function() {
return this.feature_;
};