Merge pull request #4711 from ahocevar/no-goog-events
Removal of goog.events.*
This commit is contained in:
@@ -181,7 +181,7 @@ build/timestamps/check-%-timestamp: $(BUILD_HOSTED)/examples/%.html \
|
|||||||
$(BUILD_HOSTED)/build/ol.js \
|
$(BUILD_HOSTED)/build/ol.js \
|
||||||
$(BUILD_HOSTED)/css/ol.css
|
$(BUILD_HOSTED)/css/ol.css
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
./node_modules/.bin/phantomjs --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $<
|
./node_modules/.bin/phantomjs --local-to-remote-url-access=true --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $<
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
build/timestamps/check-requires-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
|
build/timestamps/check-requires-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
|
||||||
|
|||||||
@@ -15,3 +15,13 @@
|
|||||||
* @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property
|
* @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property
|
||||||
*/
|
*/
|
||||||
CSSProperties.prototype.touchAction;
|
CSSProperties.prototype.touchAction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {number}
|
||||||
|
*/
|
||||||
|
WheelEvent.DOM_DELTA_LINE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {number}
|
||||||
|
*/
|
||||||
|
WheelEvent.DOM_DELTA_PIXEL;
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ In the source file (`src/ol/MapBrowserEvent.js`), the class needs to implement t
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @implements {oli.MapBrowserEvent}
|
* @implements {oli.MapBrowserEvent}
|
||||||
*/
|
*/
|
||||||
ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) {
|
ol.MapBrowserEvent = function(type, map, originalEvent, opt_frameState) {
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ goog.provide('ol.Collection');
|
|||||||
goog.provide('ol.CollectionEvent');
|
goog.provide('ol.CollectionEvent');
|
||||||
goog.provide('ol.CollectionEventType');
|
goog.provide('ol.CollectionEventType');
|
||||||
|
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
|
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ ol.CollectionEventType = {
|
|||||||
* type.
|
* type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.CollectionEvent}
|
* @implements {oli.CollectionEvent}
|
||||||
* @param {ol.CollectionEventType} type Type.
|
* @param {ol.CollectionEventType} type Type.
|
||||||
* @param {*=} opt_element Element.
|
* @param {*=} opt_element Element.
|
||||||
@@ -54,7 +54,7 @@ ol.CollectionEvent = function(type, opt_element, opt_target) {
|
|||||||
this.element = opt_element;
|
this.element = opt_element;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.CollectionEvent, goog.events.Event);
|
goog.inherits(ol.CollectionEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ goog.provide('ol.control.Attribution');
|
|||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
@@ -95,8 +95,7 @@ ol.control.Attribution = function(opt_options) {
|
|||||||
'title': tipLabel
|
'title': tipLabel
|
||||||
}, activeLabel);
|
}, activeLabel);
|
||||||
|
|
||||||
goog.events.listen(button, goog.events.EventType.CLICK,
|
ol.events.listen(button, ol.events.EventType.CLICK, this.handleClick_, this);
|
||||||
this.handleClick_, false, this);
|
|
||||||
|
|
||||||
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
||||||
ol.css.CLASS_CONTROL +
|
ol.css.CLASS_CONTROL +
|
||||||
@@ -328,7 +327,7 @@ ol.control.Attribution.prototype.insertLogos_ = function(frameState) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} event The event to handle
|
* @param {Event} event The event to handle
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.Attribution.prototype.handleClick_ = function(event) {
|
ol.control.Attribution.prototype.handleClick_ = function(event) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.control.Control');
|
goog.provide('ol.control.Control');
|
||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.MapEventType');
|
goog.require('ol.MapEventType');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
@@ -60,7 +60,7 @@ ol.control.Control = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @protected
|
* @protected
|
||||||
* @type {!Array.<?number>}
|
* @type {!Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.listenerKeys = [];
|
this.listenerKeys = [];
|
||||||
|
|
||||||
@@ -107,18 +107,18 @@ ol.control.Control.prototype.setMap = function(map) {
|
|||||||
if (this.map_) {
|
if (this.map_) {
|
||||||
goog.dom.removeNode(this.element);
|
goog.dom.removeNode(this.element);
|
||||||
}
|
}
|
||||||
if (this.listenerKeys.length > 0) {
|
for (var i = 0, ii = this.listenerKeys.length; i < ii; ++i) {
|
||||||
this.listenerKeys.forEach(goog.events.unlistenByKey);
|
ol.events.unlistenByKey(this.listenerKeys[i]);
|
||||||
this.listenerKeys.length = 0;
|
|
||||||
}
|
}
|
||||||
|
this.listenerKeys.length = 0;
|
||||||
this.map_ = map;
|
this.map_ = map;
|
||||||
if (this.map_) {
|
if (this.map_) {
|
||||||
var target = this.target_ ?
|
var target = this.target_ ?
|
||||||
this.target_ : map.getOverlayContainerStopEvent();
|
this.target_ : map.getOverlayContainerStopEvent();
|
||||||
target.appendChild(this.element);
|
target.appendChild(this.element);
|
||||||
if (this.render !== ol.nullFunction) {
|
if (this.render !== ol.nullFunction) {
|
||||||
this.listenerKeys.push(goog.events.listen(map,
|
this.listenerKeys.push(ol.events.listen(map,
|
||||||
ol.MapEventType.POSTRENDER, this.render, false, this));
|
ol.MapEventType.POSTRENDER, this.render, this));
|
||||||
}
|
}
|
||||||
map.render();
|
map.render();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ goog.require('goog.dom');
|
|||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.dom.fullscreen');
|
goog.require('goog.dom.fullscreen');
|
||||||
goog.require('goog.dom.fullscreen.EventType');
|
goog.require('goog.dom.fullscreen.EventType');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.control.Control');
|
goog.require('ol.control.Control');
|
||||||
goog.require('ol.css');
|
goog.require('ol.css');
|
||||||
@@ -64,12 +64,12 @@ ol.control.FullScreen = function(opt_options) {
|
|||||||
'title': tipLabel
|
'title': tipLabel
|
||||||
}, this.labelNode_);
|
}, this.labelNode_);
|
||||||
|
|
||||||
goog.events.listen(button, goog.events.EventType.CLICK,
|
ol.events.listen(button, ol.events.EventType.CLICK,
|
||||||
this.handleClick_, false, this);
|
this.handleClick_, this);
|
||||||
|
|
||||||
goog.events.listen(goog.global.document,
|
ol.events.listen(goog.global.document,
|
||||||
goog.dom.fullscreen.EventType.CHANGE,
|
goog.dom.fullscreen.EventType.CHANGE,
|
||||||
this.handleFullScreenChange_, false, this);
|
this.handleFullScreenChange_, this);
|
||||||
|
|
||||||
var cssClasses = this.cssClassName_ + ' ' + ol.css.CLASS_UNSELECTABLE +
|
var cssClasses = this.cssClassName_ + ' ' + ol.css.CLASS_UNSELECTABLE +
|
||||||
' ' + ol.css.CLASS_CONTROL + ' ' +
|
' ' + ol.css.CLASS_CONTROL + ' ' +
|
||||||
@@ -98,7 +98,7 @@ goog.inherits(ol.control.FullScreen, ol.control.Control);
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} event The event to handle
|
* @param {Event} event The event to handle
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.FullScreen.prototype.handleClick_ = function(event) {
|
ol.control.FullScreen.prototype.handleClick_ = function(event) {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
goog.provide('ol.control.MousePosition');
|
goog.provide('ol.control.MousePosition');
|
||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.CoordinateFormatType');
|
goog.require('ol.CoordinateFormatType');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.Pixel');
|
goog.require('ol.Pixel');
|
||||||
@@ -53,9 +53,9 @@ ol.control.MousePosition = function(opt_options) {
|
|||||||
target: options.target
|
target: options.target
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.events.listen(this,
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.control.MousePositionProperty.PROJECTION),
|
ol.Object.getChangeEventType(ol.control.MousePositionProperty.PROJECTION),
|
||||||
this.handleProjectionChanged_, false, this);
|
this.handleProjectionChanged_, this);
|
||||||
|
|
||||||
if (options.coordinateFormat) {
|
if (options.coordinateFormat) {
|
||||||
this.setCoordinateFormat(options.coordinateFormat);
|
this.setCoordinateFormat(options.coordinateFormat);
|
||||||
@@ -154,21 +154,21 @@ ol.control.MousePosition.prototype.getProjection = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} browserEvent Browser event.
|
* @param {Event} event Browser event.
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.handleMouseMove = function(browserEvent) {
|
ol.control.MousePosition.prototype.handleMouseMove = function(event) {
|
||||||
var map = this.getMap();
|
var map = this.getMap();
|
||||||
this.lastMouseMovePixel_ = map.getEventPixel(browserEvent.getBrowserEvent());
|
this.lastMouseMovePixel_ = map.getEventPixel(event);
|
||||||
this.updateHTML_(this.lastMouseMovePixel_);
|
this.updateHTML_(this.lastMouseMovePixel_);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} browserEvent Browser event.
|
* @param {Event} event Browser event.
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.control.MousePosition.prototype.handleMouseOut = function(browserEvent) {
|
ol.control.MousePosition.prototype.handleMouseOut = function(event) {
|
||||||
this.updateHTML_(null);
|
this.updateHTML_(null);
|
||||||
this.lastMouseMovePixel_ = null;
|
this.lastMouseMovePixel_ = null;
|
||||||
};
|
};
|
||||||
@@ -183,10 +183,10 @@ ol.control.MousePosition.prototype.setMap = function(map) {
|
|||||||
if (map) {
|
if (map) {
|
||||||
var viewport = map.getViewport();
|
var viewport = map.getViewport();
|
||||||
this.listenerKeys.push(
|
this.listenerKeys.push(
|
||||||
goog.events.listen(viewport, goog.events.EventType.MOUSEMOVE,
|
ol.events.listen(viewport, ol.events.EventType.MOUSEMOVE,
|
||||||
this.handleMouseMove, false, this),
|
this.handleMouseMove, this),
|
||||||
goog.events.listen(viewport, goog.events.EventType.MOUSEOUT,
|
ol.events.listen(viewport, ol.events.EventType.MOUSEOUT,
|
||||||
this.handleMouseOut, false, this)
|
this.handleMouseOut, this)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ goog.provide('ol.control.OverviewMap');
|
|||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.math.Size');
|
goog.require('goog.math.Size');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
@@ -83,8 +83,8 @@ ol.control.OverviewMap = function(opt_options) {
|
|||||||
'title': tipLabel
|
'title': tipLabel
|
||||||
}, activeLabel);
|
}, activeLabel);
|
||||||
|
|
||||||
goog.events.listen(button, goog.events.EventType.CLICK,
|
ol.events.listen(button, ol.events.EventType.CLICK,
|
||||||
this.handleClick_, false, this);
|
this.handleClick_, this);
|
||||||
|
|
||||||
var ovmapDiv = goog.dom.createDom('DIV', 'ol-overviewmap-map');
|
var ovmapDiv = goog.dom.createDom('DIV', 'ol-overviewmap-map');
|
||||||
|
|
||||||
@@ -159,9 +159,9 @@ ol.control.OverviewMap.prototype.setMap = function(map) {
|
|||||||
goog.base(this, 'setMap', map);
|
goog.base(this, 'setMap', map);
|
||||||
|
|
||||||
if (map) {
|
if (map) {
|
||||||
this.listenerKeys.push(goog.events.listen(
|
this.listenerKeys.push(ol.events.listen(
|
||||||
map, ol.ObjectEventType.PROPERTYCHANGE,
|
map, ol.ObjectEventType.PROPERTYCHANGE,
|
||||||
this.handleMapPropertyChange_, false, this));
|
this.handleMapPropertyChange_, this));
|
||||||
|
|
||||||
// TODO: to really support map switching, this would need to be reworked
|
// TODO: to really support map switching, this would need to be reworked
|
||||||
if (this.ovmap_.getLayers().getLength() === 0) {
|
if (this.ovmap_.getLayers().getLength() === 0) {
|
||||||
@@ -203,9 +203,9 @@ ol.control.OverviewMap.prototype.handleMapPropertyChange_ = function(event) {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.OverviewMap.prototype.bindView_ = function(view) {
|
ol.control.OverviewMap.prototype.bindView_ = function(view) {
|
||||||
goog.events.listen(view,
|
ol.events.listen(view,
|
||||||
ol.Object.getChangeEventType(ol.ViewProperty.ROTATION),
|
ol.Object.getChangeEventType(ol.ViewProperty.ROTATION),
|
||||||
this.handleRotationChanged_, false, this);
|
this.handleRotationChanged_, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -215,9 +215,9 @@ ol.control.OverviewMap.prototype.bindView_ = function(view) {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.OverviewMap.prototype.unbindView_ = function(view) {
|
ol.control.OverviewMap.prototype.unbindView_ = function(view) {
|
||||||
goog.events.unlisten(view,
|
ol.events.unlisten(view,
|
||||||
ol.Object.getChangeEventType(ol.ViewProperty.ROTATION),
|
ol.Object.getChangeEventType(ol.ViewProperty.ROTATION),
|
||||||
this.handleRotationChanged_, false, this);
|
this.handleRotationChanged_, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -432,7 +432,7 @@ ol.control.OverviewMap.prototype.calculateCoordinateRotate_ = function(
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} event The event to handle
|
* @param {Event} event The event to handle
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.OverviewMap.prototype.handleClick_ = function(event) {
|
ol.control.OverviewMap.prototype.handleClick_ = function(event) {
|
||||||
@@ -459,11 +459,11 @@ ol.control.OverviewMap.prototype.handleToggle_ = function() {
|
|||||||
if (!this.collapsed_ && !ovmap.isRendered()) {
|
if (!this.collapsed_ && !ovmap.isRendered()) {
|
||||||
ovmap.updateSize();
|
ovmap.updateSize();
|
||||||
this.resetExtent_();
|
this.resetExtent_();
|
||||||
goog.events.listenOnce(ovmap, ol.MapEventType.POSTRENDER,
|
ol.events.listenOnce(ovmap, ol.MapEventType.POSTRENDER,
|
||||||
function(event) {
|
function(event) {
|
||||||
this.updateBox_();
|
this.updateBox_();
|
||||||
},
|
},
|
||||||
false, this);
|
this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ goog.provide('ol.control.Rotate');
|
|||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.animation');
|
goog.require('ol.animation');
|
||||||
goog.require('ol.control.Control');
|
goog.require('ol.control.Control');
|
||||||
@@ -53,8 +53,8 @@ ol.control.Rotate = function(opt_options) {
|
|||||||
'title': tipLabel
|
'title': tipLabel
|
||||||
}, this.label_);
|
}, this.label_);
|
||||||
|
|
||||||
goog.events.listen(button, goog.events.EventType.CLICK,
|
ol.events.listen(button, ol.events.EventType.CLICK,
|
||||||
ol.control.Rotate.prototype.handleClick_, false, this);
|
ol.control.Rotate.prototype.handleClick_, this);
|
||||||
|
|
||||||
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
||||||
ol.css.CLASS_CONTROL;
|
ol.css.CLASS_CONTROL;
|
||||||
@@ -97,7 +97,7 @@ goog.inherits(ol.control.Rotate, ol.control.Control);
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} event The event to handle
|
* @param {Event} event The event to handle
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.Rotate.prototype.handleClick_ = function(event) {
|
ol.control.Rotate.prototype.handleClick_ = function(event) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ goog.provide('ol.control.ScaleLineUnits');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
@@ -109,9 +109,9 @@ ol.control.ScaleLine = function(opt_options) {
|
|||||||
target: options.target
|
target: options.target
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.control.ScaleLineProperty.UNITS),
|
this, ol.Object.getChangeEventType(ol.control.ScaleLineProperty.UNITS),
|
||||||
this.handleUnitsChanged_, false, this);
|
this.handleUnitsChanged_, this);
|
||||||
|
|
||||||
this.setUnits(/** @type {ol.control.ScaleLineUnits} */ (options.units) ||
|
this.setUnits(/** @type {ol.control.ScaleLineUnits} */ (options.units) ||
|
||||||
ol.control.ScaleLineUnits.METRIC);
|
ol.control.ScaleLineUnits.METRIC);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.control.Zoom');
|
goog.provide('ol.control.Zoom');
|
||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.animation');
|
goog.require('ol.animation');
|
||||||
goog.require('ol.control.Control');
|
goog.require('ol.control.Control');
|
||||||
goog.require('ol.css');
|
goog.require('ol.css');
|
||||||
@@ -42,9 +42,9 @@ ol.control.Zoom = function(opt_options) {
|
|||||||
'title': zoomInTipLabel
|
'title': zoomInTipLabel
|
||||||
}, zoomInLabel);
|
}, zoomInLabel);
|
||||||
|
|
||||||
goog.events.listen(inElement,
|
ol.events.listen(inElement,
|
||||||
goog.events.EventType.CLICK, goog.partial(
|
ol.events.EventType.CLICK, goog.partial(
|
||||||
ol.control.Zoom.prototype.handleClick_, delta), false, this);
|
ol.control.Zoom.prototype.handleClick_, delta), this);
|
||||||
|
|
||||||
var outElement = goog.dom.createDom('BUTTON', {
|
var outElement = goog.dom.createDom('BUTTON', {
|
||||||
'class': className + '-out',
|
'class': className + '-out',
|
||||||
@@ -52,9 +52,9 @@ ol.control.Zoom = function(opt_options) {
|
|||||||
'title': zoomOutTipLabel
|
'title': zoomOutTipLabel
|
||||||
}, zoomOutLabel);
|
}, zoomOutLabel);
|
||||||
|
|
||||||
goog.events.listen(outElement,
|
ol.events.listen(outElement,
|
||||||
goog.events.EventType.CLICK, goog.partial(
|
ol.events.EventType.CLICK, goog.partial(
|
||||||
ol.control.Zoom.prototype.handleClick_, -delta), false, this);
|
ol.control.Zoom.prototype.handleClick_, -delta), this);
|
||||||
|
|
||||||
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
||||||
ol.css.CLASS_CONTROL;
|
ol.css.CLASS_CONTROL;
|
||||||
@@ -78,7 +78,7 @@ goog.inherits(ol.control.Zoom, ol.control.Control);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {number} delta Zoom delta.
|
* @param {number} delta Zoom delta.
|
||||||
* @param {goog.events.BrowserEvent} event The event to handle
|
* @param {Event} event The event to handle
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.Zoom.prototype.handleClick_ = function(delta, event) {
|
ol.control.Zoom.prototype.handleClick_ = function(delta, event) {
|
||||||
|
|||||||
@@ -4,14 +4,12 @@ goog.provide('ol.control.ZoomSlider');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.events.Event');
|
|
||||||
goog.require('goog.events.EventType');
|
|
||||||
goog.require('goog.fx.DragEvent');
|
|
||||||
goog.require('goog.fx.Dragger');
|
|
||||||
goog.require('goog.fx.Dragger.EventType');
|
|
||||||
goog.require('goog.math.Rect');
|
goog.require('goog.math.Rect');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
|
goog.require('ol.pointer.PointerEventHandler');
|
||||||
goog.require('ol.Size');
|
goog.require('ol.Size');
|
||||||
goog.require('ol.ViewHint');
|
goog.require('ol.ViewHint');
|
||||||
goog.require('ol.animation');
|
goog.require('ol.animation');
|
||||||
@@ -55,6 +53,30 @@ ol.control.ZoomSlider = function(opt_options) {
|
|||||||
*/
|
*/
|
||||||
this.direction_ = ol.control.ZoomSlider.direction.VERTICAL;
|
this.direction_ = ol.control.ZoomSlider.direction.VERTICAL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
this.dragging_;
|
||||||
|
/**
|
||||||
|
* @type {Array.<ol.events.Key>}
|
||||||
|
*/
|
||||||
|
this.dragListenerKeys_;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {goog.math.Rect}
|
||||||
|
*/
|
||||||
|
this.limits_;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {number|undefined}
|
||||||
|
*/
|
||||||
|
this.previousX_;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {number|undefined}
|
||||||
|
*/
|
||||||
|
this.previousY_;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The calculated thumb size (border box plus margins). Set when initSlider_
|
* The calculated thumb size (border box plus margins). Set when initSlider_
|
||||||
* is called.
|
* is called.
|
||||||
@@ -85,24 +107,20 @@ ol.control.ZoomSlider = function(opt_options) {
|
|||||||
[className, ol.css.CLASS_UNSELECTABLE, ol.css.CLASS_CONTROL],
|
[className, ol.css.CLASS_UNSELECTABLE, ol.css.CLASS_CONTROL],
|
||||||
thumbElement);
|
thumbElement);
|
||||||
|
|
||||||
/**
|
var dragger = new ol.pointer.PointerEventHandler(containerElement);
|
||||||
* @type {goog.fx.Dragger}
|
this.registerDisposable(dragger);
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
this.dragger_ = new goog.fx.Dragger(thumbElement);
|
|
||||||
this.registerDisposable(this.dragger_);
|
|
||||||
|
|
||||||
goog.events.listen(this.dragger_, goog.fx.Dragger.EventType.START,
|
ol.events.listen(dragger, ol.pointer.EventType.POINTERDOWN,
|
||||||
this.handleDraggerStart_, false, this);
|
this.handleDraggerStart_, this);
|
||||||
goog.events.listen(this.dragger_, goog.fx.Dragger.EventType.DRAG,
|
ol.events.listen(dragger, ol.pointer.EventType.POINTERMOVE,
|
||||||
this.handleDraggerDrag_, false, this);
|
this.handleDraggerDrag_, this);
|
||||||
goog.events.listen(this.dragger_, goog.fx.Dragger.EventType.END,
|
ol.events.listen(dragger, ol.pointer.EventType.POINTERUP,
|
||||||
this.handleDraggerEnd_, false, this);
|
this.handleDraggerEnd_, this);
|
||||||
|
|
||||||
goog.events.listen(containerElement, goog.events.EventType.CLICK,
|
ol.events.listen(containerElement, ol.events.EventType.CLICK,
|
||||||
this.handleContainerClick_, false, this);
|
this.handleContainerClick_, this);
|
||||||
goog.events.listen(thumbElement, goog.events.EventType.CLICK,
|
ol.events.listen(thumbElement, ol.events.EventType.CLICK,
|
||||||
goog.events.Event.stopPropagation);
|
ol.events.Event.stopPropagation);
|
||||||
|
|
||||||
var render = options.render ? options.render : ol.control.ZoomSlider.render;
|
var render = options.render ? options.render : ol.control.ZoomSlider.render;
|
||||||
|
|
||||||
@@ -167,7 +185,7 @@ ol.control.ZoomSlider.prototype.initSlider_ = function() {
|
|||||||
this.direction_ = ol.control.ZoomSlider.direction.VERTICAL;
|
this.direction_ = ol.control.ZoomSlider.direction.VERTICAL;
|
||||||
limits = new goog.math.Rect(0, 0, 0, height);
|
limits = new goog.math.Rect(0, 0, 0, height);
|
||||||
}
|
}
|
||||||
this.dragger_.setLimits(limits);
|
this.limits_ = limits;
|
||||||
this.sliderInitialized_ = true;
|
this.sliderInitialized_ = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -196,10 +214,10 @@ ol.control.ZoomSlider.render = function(mapEvent) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The browser event to handle.
|
* @param {Event} event The browser event to handle.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) {
|
ol.control.ZoomSlider.prototype.handleContainerClick_ = function(event) {
|
||||||
var map = this.getMap();
|
var map = this.getMap();
|
||||||
var view = map.getView();
|
var view = map.getView();
|
||||||
var currentResolution = view.getResolution();
|
var currentResolution = view.getResolution();
|
||||||
@@ -211,8 +229,8 @@ ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) {
|
|||||||
easing: ol.easing.easeOut
|
easing: ol.easing.easeOut
|
||||||
}));
|
}));
|
||||||
var relativePosition = this.getRelativePosition_(
|
var relativePosition = this.getRelativePosition_(
|
||||||
browserEvent.offsetX - this.thumbSize_[0] / 2,
|
event.offsetX - this.thumbSize_[0] / 2,
|
||||||
browserEvent.offsetY - this.thumbSize_[1] / 2);
|
event.offsetY - this.thumbSize_[1] / 2);
|
||||||
var resolution = this.getResolutionForPosition_(relativePosition);
|
var resolution = this.getResolutionForPosition_(relativePosition);
|
||||||
view.setResolution(view.constrainResolution(resolution));
|
view.setResolution(view.constrainResolution(resolution));
|
||||||
};
|
};
|
||||||
@@ -220,45 +238,79 @@ ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle dragger start events.
|
* Handle dragger start events.
|
||||||
* @param {goog.fx.DragEvent} event The drag event.
|
* @param {ol.pointer.PointerEvent} event The drag event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider.prototype.handleDraggerStart_ = function(event) {
|
ol.control.ZoomSlider.prototype.handleDraggerStart_ = function(event) {
|
||||||
this.getMap().getView().setHint(ol.ViewHint.INTERACTING, 1);
|
if (!this.dragging_ &&
|
||||||
|
event.originalEvent.target === this.element.firstElementChild) {
|
||||||
|
this.getMap().getView().setHint(ol.ViewHint.INTERACTING, 1);
|
||||||
|
this.previousX_ = event.clientX;
|
||||||
|
this.previousY_ = event.clientY;
|
||||||
|
this.dragging_ = true;
|
||||||
|
|
||||||
|
if (!this.dragListenerKeys_) {
|
||||||
|
var drag = this.handleDraggerDrag_;
|
||||||
|
var end = this.handleDraggerEnd_;
|
||||||
|
this.dragListenerKeys_ = [
|
||||||
|
ol.events.listen(document, ol.events.EventType.MOUSEMOVE, drag, this),
|
||||||
|
ol.events.listen(document, ol.events.EventType.TOUCHMOVE, drag, this),
|
||||||
|
ol.events.listen(document, ol.pointer.EventType.POINTERMOVE, drag, this),
|
||||||
|
ol.events.listen(document, ol.events.EventType.MOUSEUP, end, this),
|
||||||
|
ol.events.listen(document, ol.events.EventType.TOUCHEND, end, this),
|
||||||
|
ol.events.listen(document, ol.pointer.EventType.POINTERUP, end, this)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle dragger drag events.
|
* Handle dragger drag events.
|
||||||
*
|
*
|
||||||
* @param {goog.fx.DragEvent} event The drag event.
|
* @param {ol.pointer.PointerEvent|Event} event The drag event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider.prototype.handleDraggerDrag_ = function(event) {
|
ol.control.ZoomSlider.prototype.handleDraggerDrag_ = function(event) {
|
||||||
var relativePosition = this.getRelativePosition_(event.left, event.top);
|
if (this.dragging_) {
|
||||||
this.currentResolution_ = this.getResolutionForPosition_(relativePosition);
|
var element = this.element.firstElementChild;
|
||||||
this.getMap().getView().setResolution(this.currentResolution_);
|
var deltaX = event.clientX - this.previousX_ + parseInt(element.style.left, 10);
|
||||||
|
var deltaY = event.clientY - this.previousY_ + parseInt(element.style.top, 10);
|
||||||
|
var relativePosition = this.getRelativePosition_(deltaX, deltaY);
|
||||||
|
this.currentResolution_ = this.getResolutionForPosition_(relativePosition);
|
||||||
|
this.getMap().getView().setResolution(this.currentResolution_);
|
||||||
|
this.setThumbPosition_(this.currentResolution_);
|
||||||
|
this.previousX_ = event.clientX;
|
||||||
|
this.previousY_ = event.clientY;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle dragger end events.
|
* Handle dragger end events.
|
||||||
* @param {goog.fx.DragEvent} event The drag event.
|
* @param {ol.pointer.PointerEvent|Event} event The drag event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider.prototype.handleDraggerEnd_ = function(event) {
|
ol.control.ZoomSlider.prototype.handleDraggerEnd_ = function(event) {
|
||||||
var map = this.getMap();
|
if (this.dragging_) {
|
||||||
var view = map.getView();
|
var map = this.getMap();
|
||||||
view.setHint(ol.ViewHint.INTERACTING, -1);
|
var view = map.getView();
|
||||||
goog.asserts.assert(this.currentResolution_,
|
view.setHint(ol.ViewHint.INTERACTING, -1);
|
||||||
'this.currentResolution_ should be defined');
|
goog.asserts.assert(this.currentResolution_,
|
||||||
map.beforeRender(ol.animation.zoom({
|
'this.currentResolution_ should be defined');
|
||||||
resolution: this.currentResolution_,
|
map.beforeRender(ol.animation.zoom({
|
||||||
duration: this.duration_,
|
resolution: this.currentResolution_,
|
||||||
easing: ol.easing.easeOut
|
duration: this.duration_,
|
||||||
}));
|
easing: ol.easing.easeOut
|
||||||
var resolution = view.constrainResolution(this.currentResolution_);
|
}));
|
||||||
view.setResolution(resolution);
|
var resolution = view.constrainResolution(this.currentResolution_);
|
||||||
|
view.setResolution(resolution);
|
||||||
|
this.dragging_ = false;
|
||||||
|
this.previousX_ = undefined;
|
||||||
|
this.previousY_ = undefined;
|
||||||
|
this.dragListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
|
this.dragListenerKeys_ = null;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -270,15 +322,14 @@ ol.control.ZoomSlider.prototype.handleDraggerEnd_ = function(event) {
|
|||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider.prototype.setThumbPosition_ = function(res) {
|
ol.control.ZoomSlider.prototype.setThumbPosition_ = function(res) {
|
||||||
var position = this.getPositionForResolution_(res);
|
var position = this.getPositionForResolution_(res);
|
||||||
var dragger = this.dragger_;
|
|
||||||
var thumb = goog.dom.getFirstElementChild(this.element);
|
var thumb = goog.dom.getFirstElementChild(this.element);
|
||||||
|
|
||||||
if (this.direction_ == ol.control.ZoomSlider.direction.HORIZONTAL) {
|
if (this.direction_ == ol.control.ZoomSlider.direction.HORIZONTAL) {
|
||||||
var left = dragger.limits.left + dragger.limits.width * position;
|
var left = this.limits_.left + this.limits_.width * position;
|
||||||
goog.style.setPosition(thumb, left);
|
goog.style.setPosition(thumb, left);
|
||||||
} else {
|
} else {
|
||||||
var top = dragger.limits.top + dragger.limits.height * position;
|
var top = this.limits_.top + this.limits_.height * position;
|
||||||
goog.style.setPosition(thumb, dragger.limits.left, top);
|
goog.style.setPosition(thumb, this.limits_.left, top);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -294,7 +345,7 @@ ol.control.ZoomSlider.prototype.setThumbPosition_ = function(res) {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomSlider.prototype.getRelativePosition_ = function(x, y) {
|
ol.control.ZoomSlider.prototype.getRelativePosition_ = function(x, y) {
|
||||||
var draggerLimits = this.dragger_.limits;
|
var draggerLimits = this.limits_;
|
||||||
var amount;
|
var amount;
|
||||||
if (this.direction_ === ol.control.ZoomSlider.direction.HORIZONTAL) {
|
if (this.direction_ === ol.control.ZoomSlider.direction.HORIZONTAL) {
|
||||||
amount = (x - draggerLimits.left) / draggerLimits.width;
|
amount = (x - draggerLimits.left) / draggerLimits.width;
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ goog.provide('ol.control.ZoomToExtent');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.control.Control');
|
goog.require('ol.control.Control');
|
||||||
goog.require('ol.css');
|
goog.require('ol.css');
|
||||||
|
|
||||||
@@ -38,8 +38,8 @@ ol.control.ZoomToExtent = function(opt_options) {
|
|||||||
'title': tipLabel
|
'title': tipLabel
|
||||||
}, label);
|
}, label);
|
||||||
|
|
||||||
goog.events.listen(button, goog.events.EventType.CLICK,
|
ol.events.listen(button, ol.events.EventType.CLICK,
|
||||||
this.handleClick_, false, this);
|
this.handleClick_, this);
|
||||||
|
|
||||||
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
|
||||||
ol.css.CLASS_CONTROL;
|
ol.css.CLASS_CONTROL;
|
||||||
@@ -54,7 +54,7 @@ goog.inherits(ol.control.ZoomToExtent, ol.control.Control);
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} event The event to handle
|
* @param {Event} event The event to handle
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.control.ZoomToExtent.prototype.handleClick_ = function(event) {
|
ol.control.ZoomToExtent.prototype.handleClick_ = function(event) {
|
||||||
|
|||||||
+11
-12
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.DeviceOrientation');
|
goog.provide('ol.DeviceOrientation');
|
||||||
goog.provide('ol.DeviceOrientationProperty');
|
goog.provide('ol.DeviceOrientationProperty');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.has');
|
goog.require('ol.has');
|
||||||
@@ -83,13 +83,13 @@ ol.DeviceOrientation = function(opt_options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.listenerKey_ = null;
|
this.listenerKey_ = null;
|
||||||
|
|
||||||
goog.events.listen(this,
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.DeviceOrientationProperty.TRACKING),
|
ol.Object.getChangeEventType(ol.DeviceOrientationProperty.TRACKING),
|
||||||
this.handleTrackingChanged_, false, this);
|
this.handleTrackingChanged_, this);
|
||||||
|
|
||||||
this.setTracking(options.tracking !== undefined ? options.tracking : false);
|
this.setTracking(options.tracking !== undefined ? options.tracking : false);
|
||||||
|
|
||||||
@@ -108,11 +108,10 @@ ol.DeviceOrientation.prototype.disposeInternal = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} browserEvent Event.
|
* @param {Event} originalEvent Event.
|
||||||
*/
|
*/
|
||||||
ol.DeviceOrientation.prototype.orientationChange_ = function(browserEvent) {
|
ol.DeviceOrientation.prototype.orientationChange_ = function(originalEvent) {
|
||||||
var event = /** @type {DeviceOrientationEvent} */
|
var event = /** @type {DeviceOrientationEvent} */ (originalEvent);
|
||||||
(browserEvent.getBrowserEvent());
|
|
||||||
if (event.alpha !== null) {
|
if (event.alpha !== null) {
|
||||||
var alpha = ol.math.toRadians(event.alpha);
|
var alpha = ol.math.toRadians(event.alpha);
|
||||||
this.set(ol.DeviceOrientationProperty.ALPHA, alpha);
|
this.set(ol.DeviceOrientationProperty.ALPHA, alpha);
|
||||||
@@ -208,10 +207,10 @@ ol.DeviceOrientation.prototype.handleTrackingChanged_ = function() {
|
|||||||
if (ol.has.DEVICE_ORIENTATION) {
|
if (ol.has.DEVICE_ORIENTATION) {
|
||||||
var tracking = this.getTracking();
|
var tracking = this.getTracking();
|
||||||
if (tracking && !this.listenerKey_) {
|
if (tracking && !this.listenerKey_) {
|
||||||
this.listenerKey_ = goog.events.listen(goog.global, 'deviceorientation',
|
this.listenerKey_ = ol.events.listen(goog.global, 'deviceorientation',
|
||||||
this.orientationChange_, false, this);
|
this.orientationChange_, this);
|
||||||
} else if (!tracking && this.listenerKey_) {
|
} else if (!tracking && this.listenerKey_ !== null) {
|
||||||
goog.events.unlistenByKey(this.listenerKey_);
|
ol.events.unlistenByKey(this.listenerKey_);
|
||||||
this.listenerKey_ = null;
|
this.listenerKey_ = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,338 @@
|
|||||||
|
goog.provide('ol.events');
|
||||||
|
goog.provide('ol.events.EventType');
|
||||||
|
goog.provide('ol.events.KeyCode');
|
||||||
|
|
||||||
|
goog.require('goog.object');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @enum {string}
|
||||||
|
* @const
|
||||||
|
*/
|
||||||
|
ol.events.EventType = {
|
||||||
|
/**
|
||||||
|
* Generic change event.
|
||||||
|
* @event ol.events.Event#change
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
CHANGE: 'change',
|
||||||
|
|
||||||
|
CLICK: 'click',
|
||||||
|
DBLCLICK: 'dblclick',
|
||||||
|
DRAGENTER: 'dragenter',
|
||||||
|
DRAGOVER: 'dragover',
|
||||||
|
DROP: 'drop',
|
||||||
|
ERROR: 'error',
|
||||||
|
KEYDOWN: 'keydown',
|
||||||
|
KEYPRESS: 'keypress',
|
||||||
|
LOAD: 'load',
|
||||||
|
MOUSEDOWN: 'mousedown',
|
||||||
|
MOUSEMOVE: 'mousemove',
|
||||||
|
MOUSEOUT: 'mouseout',
|
||||||
|
MOUSEUP: 'mouseup',
|
||||||
|
MOUSEWHEEL: 'mousewheel',
|
||||||
|
MSPOINTERDOWN: 'mspointerdown',
|
||||||
|
RESIZE: 'resize',
|
||||||
|
TOUCHSTART: 'touchstart',
|
||||||
|
TOUCHMOVE: 'touchmove',
|
||||||
|
TOUCHEND: 'touchend',
|
||||||
|
WHEEL: 'wheel'
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @enum {number}
|
||||||
|
* @const
|
||||||
|
*/
|
||||||
|
ol.events.KeyCode = {
|
||||||
|
LEFT: 37,
|
||||||
|
UP: 38,
|
||||||
|
RIGHT: 39,
|
||||||
|
DOWN: 40
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property name on an event target for the listener map associated with the
|
||||||
|
* event target.
|
||||||
|
* @const {string}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.events.LISTENER_MAP_PROP_ = 'olm_' + ((Math.random() * 1e4) | 0);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {EventTarget|ol.events.EventTarget|
|
||||||
|
* {addEventListener: function(string, Function, boolean=),
|
||||||
|
* removeEventListener: function(string, Function, boolean=),
|
||||||
|
* dispatchEvent: function(string)}}
|
||||||
|
*/
|
||||||
|
ol.events.EventTargetLike;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key to use with {@link ol.Observable#unByKey}.
|
||||||
|
*
|
||||||
|
* @typedef {ol.events.ListenerObjType}
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
ol.events.Key;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listener function. This function is called with an event object as argument.
|
||||||
|
* When the function returns `false`, event propagation will stop.
|
||||||
|
*
|
||||||
|
* @typedef {function(ol.events.Event)|function(ol.events.Event): boolean}
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
ol.events.ListenerFunctionType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {{bindTo: (Object|undefined),
|
||||||
|
* boundListener: (ol.events.ListenerFunctionType|undefined),
|
||||||
|
* callOnce: boolean,
|
||||||
|
* deleteIndex: (number|undefined),
|
||||||
|
* listener: ol.events.ListenerFunctionType,
|
||||||
|
* target: (EventTarget|ol.events.EventTarget),
|
||||||
|
* type: string}}
|
||||||
|
*/
|
||||||
|
ol.events.ListenerObjType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {ol.events.ListenerObjType} listenerObj Listener object.
|
||||||
|
* @return {ol.events.ListenerFunctionType} Bound listener.
|
||||||
|
*/
|
||||||
|
ol.events.bindListener_ = function(listenerObj) {
|
||||||
|
var boundListener = function(evt) {
|
||||||
|
var rv = listenerObj.listener.call(listenerObj.bindTo, evt);
|
||||||
|
if (listenerObj.callOnce) {
|
||||||
|
ol.events.unlistenByKey(listenerObj);
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
listenerObj.boundListener = boundListener;
|
||||||
|
return boundListener;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the matching {@link ol.events.ListenerObjType} in the given listener
|
||||||
|
* array.
|
||||||
|
*
|
||||||
|
* @param {!Array<!ol.events.ListenerObjType>} listeners Array of listeners.
|
||||||
|
* @param {!Function} listener The listener function.
|
||||||
|
* @param {Object=} opt_this The `this` value inside the listener.
|
||||||
|
* @param {boolean=} opt_setDeleteIndex Set the deleteIndex on the matching
|
||||||
|
* listener, for {@link ol.events.unlistenByKey}.
|
||||||
|
* @return {ol.events.ListenerObjType|undefined} The matching listener object.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.events.findListener_ = function(listeners, listener, opt_this,
|
||||||
|
opt_setDeleteIndex) {
|
||||||
|
var listenerObj;
|
||||||
|
for (var i = 0, ii = listeners.length; i < ii; ++i) {
|
||||||
|
listenerObj = listeners[i];
|
||||||
|
if (listenerObj.listener === listener &&
|
||||||
|
listenerObj.bindTo === opt_this) {
|
||||||
|
if (opt_setDeleteIndex) {
|
||||||
|
listenerObj.deleteIndex = i;
|
||||||
|
}
|
||||||
|
return listenerObj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {ol.events.EventTargetLike} target Target.
|
||||||
|
* @param {string} type Type.
|
||||||
|
* @return {Array.<ol.events.ListenerObjType>|undefined} Listeners.
|
||||||
|
*/
|
||||||
|
ol.events.getListeners = function(target, type) {
|
||||||
|
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
||||||
|
return listenerMap ? listenerMap[type] : undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the lookup of listeners. If one does not exist on the target, it is
|
||||||
|
* created.
|
||||||
|
* @param {ol.events.EventTargetLike} target Target.
|
||||||
|
* @return {!Object.<string, Array.<ol.events.ListenerObjType>>} Map of
|
||||||
|
* listeners by event type.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.events.getListenerMap_ = function(target) {
|
||||||
|
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
||||||
|
if (!listenerMap) {
|
||||||
|
listenerMap = target[ol.events.LISTENER_MAP_PROP_] = {};
|
||||||
|
}
|
||||||
|
return listenerMap;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean up all listener objects of the given type. All properties on the
|
||||||
|
* listener objects will be removed, and if no listeners remain in the listener
|
||||||
|
* map, it will be removed from the target.
|
||||||
|
* @param {ol.events.EventTargetLike} target Target.
|
||||||
|
* @param {string} type Type.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.events.removeListeners_ = function(target, type) {
|
||||||
|
var listeners = ol.events.getListeners(target, type);
|
||||||
|
if (listeners) {
|
||||||
|
for (var i = 0, ii = listeners.length; i < ii; ++i) {
|
||||||
|
target.removeEventListener(type, listeners[i].boundListener);
|
||||||
|
goog.object.clear(listeners[i])
|
||||||
|
}
|
||||||
|
listeners.length = 0;
|
||||||
|
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
||||||
|
if (listenerMap) {
|
||||||
|
delete listenerMap[type];
|
||||||
|
if (Object.keys(listenerMap).length === 0) {
|
||||||
|
delete target[ol.events.LISTENER_MAP_PROP_];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers an event listener on an event target. Inspired by
|
||||||
|
* {@link https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html}
|
||||||
|
*
|
||||||
|
* This function efficiently binds a `listener` to a `this` object, and returns
|
||||||
|
* a key for use with {@link ol.events.unlistenByKey}.
|
||||||
|
*
|
||||||
|
* @param {ol.events.EventTargetLike} target Event target.
|
||||||
|
* @param {string} type Event type.
|
||||||
|
* @param {ol.events.ListenerFunctionType} listener Listener.
|
||||||
|
* @param {Object=} opt_this Object referenced by the `this` keyword in the
|
||||||
|
* listener. Default is the `target`.
|
||||||
|
* @param {boolean=} opt_once If true, add the listener as one-off listener.
|
||||||
|
* @return {ol.events.Key} Unique key for the listener.
|
||||||
|
*/
|
||||||
|
ol.events.listen = function(target, type, listener, opt_this, opt_once) {
|
||||||
|
var listenerMap = ol.events.getListenerMap_(target);
|
||||||
|
var listeners = listenerMap[type];
|
||||||
|
if (!listeners) {
|
||||||
|
listeners = listenerMap[type] = [];
|
||||||
|
}
|
||||||
|
var listenerObj = ol.events.findListener_(listeners, listener, opt_this,
|
||||||
|
false);
|
||||||
|
if (listenerObj) {
|
||||||
|
if (!opt_once) {
|
||||||
|
// Turn one-off listener into a permanent one.
|
||||||
|
listenerObj.callOnce = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
listenerObj = /** @type {ol.events.ListenerObjType} */ ({
|
||||||
|
bindTo: opt_this,
|
||||||
|
callOnce: !!opt_once,
|
||||||
|
listener: listener,
|
||||||
|
target: target,
|
||||||
|
type: type
|
||||||
|
});
|
||||||
|
target.addEventListener(type, ol.events.bindListener_(listenerObj));
|
||||||
|
listeners.push(listenerObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
return listenerObj;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a one-off event listener on an event target. Inspired by
|
||||||
|
* {@link https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html}
|
||||||
|
*
|
||||||
|
* This function efficiently binds a `listener` as self-unregistering listener
|
||||||
|
* to a `this` object, and returns a key for use with
|
||||||
|
* {@link ol.events.unlistenByKey} in case the listener needs to be unregistered
|
||||||
|
* before it is called.
|
||||||
|
*
|
||||||
|
* When {@link ol.events.listen} is called with the same arguments after this
|
||||||
|
* function, the self-unregistering listener will be turned into a permanent
|
||||||
|
* listener.
|
||||||
|
*
|
||||||
|
* @param {ol.events.EventTargetLike} target Event target.
|
||||||
|
* @param {string} type Event type.
|
||||||
|
* @param {ol.events.ListenerFunctionType} listener Listener.
|
||||||
|
* @param {Object=} opt_this Object referenced by the `this` keyword in the
|
||||||
|
* listener. Default is the `target`.
|
||||||
|
* @return {ol.events.Key} Key for unlistenByKey.
|
||||||
|
*/
|
||||||
|
ol.events.listenOnce = function(
|
||||||
|
target, type, listener, opt_this) {
|
||||||
|
return ol.events.listen(target, type, listener, opt_this, true);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters an event listener on an event target. Inspired by
|
||||||
|
* {@link https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html}
|
||||||
|
*
|
||||||
|
* To return a listener, this function needs to be called with the exact same
|
||||||
|
* arguments that were used for a previous {@link ol.events.listen} call.
|
||||||
|
*
|
||||||
|
* @param {ol.events.EventTargetLike} target Event target.
|
||||||
|
* @param {string} type Event type.
|
||||||
|
* @param {ol.events.ListenerFunctionType} listener Listener.
|
||||||
|
* @param {Object=} opt_this Object referenced by the `this` keyword in the
|
||||||
|
* listener. Default is the `target`.
|
||||||
|
*/
|
||||||
|
ol.events.unlisten = function(target, type, listener, opt_this) {
|
||||||
|
var listeners = ol.events.getListeners(target, type);
|
||||||
|
if (listeners) {
|
||||||
|
var listenerObj = ol.events.findListener_(listeners, listener, opt_this,
|
||||||
|
true);
|
||||||
|
if (listenerObj) {
|
||||||
|
ol.events.unlistenByKey(listenerObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters event listeners on an event target. Inspired by
|
||||||
|
* {@link https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html}
|
||||||
|
*
|
||||||
|
* The argument passed to this function is the key returned from
|
||||||
|
* {@link ol.events.listen} or {@link ol.events.listenOnce}.
|
||||||
|
*
|
||||||
|
* @param {ol.events.Key} key The key.
|
||||||
|
*/
|
||||||
|
ol.events.unlistenByKey = function(key) {
|
||||||
|
if (key && key.target) {
|
||||||
|
key.target.removeEventListener(key.type, key.boundListener);
|
||||||
|
var listeners = ol.events.getListeners(key.target, key.type);
|
||||||
|
if (listeners) {
|
||||||
|
var i = 'deleteIndex' in key ? key.deleteIndex : listeners.indexOf(key);
|
||||||
|
if (i !== -1) {
|
||||||
|
listeners.splice(i, 1);
|
||||||
|
}
|
||||||
|
if (listeners.length === 0) {
|
||||||
|
ol.events.removeListeners_(key.target, key.type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
goog.object.clear(key);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters all event listeners on an event target. Inspired by
|
||||||
|
* {@link https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html}
|
||||||
|
*
|
||||||
|
* @param {ol.events.EventTargetLike} target Target.
|
||||||
|
*/
|
||||||
|
ol.events.unlistenAll = function(target) {
|
||||||
|
var listenerMap = ol.events.getListenerMap_(target);
|
||||||
|
for (var type in listenerMap) {
|
||||||
|
ol.events.removeListeners_(target, type);
|
||||||
|
}
|
||||||
|
};
|
||||||
+37
-21
@@ -26,11 +26,11 @@ ol.events.ConditionType;
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
|
ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var originalEvent = mapBrowserEvent.originalEvent;
|
||||||
return (
|
return (
|
||||||
browserEvent.altKey &&
|
originalEvent.altKey &&
|
||||||
!browserEvent.platformModifierKey &&
|
!(originalEvent.metaKey || originalEvent.ctrlKey) &&
|
||||||
!browserEvent.shiftKey);
|
!originalEvent.shiftKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -43,11 +43,11 @@ ol.events.condition.altKeyOnly = function(mapBrowserEvent) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) {
|
ol.events.condition.altShiftKeysOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var originalEvent = mapBrowserEvent.originalEvent;
|
||||||
return (
|
return (
|
||||||
browserEvent.altKey &&
|
originalEvent.altKey &&
|
||||||
!browserEvent.platformModifierKey &&
|
!(originalEvent.metaKey || originalEvent.ctrlKey) &&
|
||||||
browserEvent.shiftKey);
|
originalEvent.shiftKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -74,6 +74,22 @@ ol.events.condition.click = function(mapBrowserEvent) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return `true` if the event has an "action"-producing mouse button.
|
||||||
|
*
|
||||||
|
* By definition, this includes left-click on windows/linux, and left-click
|
||||||
|
* without the ctrl key on Macs.
|
||||||
|
*
|
||||||
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
|
||||||
|
* @return {boolean} The result.
|
||||||
|
*/
|
||||||
|
ol.events.condition.mouseActionButton = function(mapBrowserEvent) {
|
||||||
|
var originalEvent = mapBrowserEvent.originalEvent;
|
||||||
|
return originalEvent.button == 0 &&
|
||||||
|
!(goog.userAgent.WEBKIT && ol.has.MAC && originalEvent.ctrlKey);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return always false.
|
* Return always false.
|
||||||
*
|
*
|
||||||
@@ -131,11 +147,11 @@ ol.events.condition.doubleClick = function(mapBrowserEvent) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
|
ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var originalEvent = mapBrowserEvent.originalEvent;
|
||||||
return (
|
return (
|
||||||
!browserEvent.altKey &&
|
!originalEvent.altKey &&
|
||||||
!browserEvent.platformModifierKey &&
|
!(originalEvent.metaKey || originalEvent.ctrlKey) &&
|
||||||
!browserEvent.shiftKey);
|
!originalEvent.shiftKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -149,11 +165,11 @@ ol.events.condition.noModifierKeys = function(mapBrowserEvent) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
|
ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var originalEvent = mapBrowserEvent.originalEvent;
|
||||||
return (
|
return (
|
||||||
!browserEvent.altKey &&
|
!originalEvent.altKey &&
|
||||||
browserEvent.platformModifierKey &&
|
(ol.has.MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&
|
||||||
!browserEvent.shiftKey);
|
!originalEvent.shiftKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -166,11 +182,11 @@ ol.events.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
|
ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var originalEvent = mapBrowserEvent.originalEvent;
|
||||||
return (
|
return (
|
||||||
!browserEvent.altKey &&
|
!originalEvent.altKey &&
|
||||||
!browserEvent.platformModifierKey &&
|
!(originalEvent.metaKey || originalEvent.ctrlKey) &&
|
||||||
browserEvent.shiftKey);
|
originalEvent.shiftKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -183,7 +199,7 @@ ol.events.condition.shiftKeyOnly = function(mapBrowserEvent) {
|
|||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.events.condition.targetNotEditable = function(mapBrowserEvent) {
|
ol.events.condition.targetNotEditable = function(mapBrowserEvent) {
|
||||||
var target = mapBrowserEvent.browserEvent.target;
|
var target = mapBrowserEvent.originalEvent.target;
|
||||||
goog.asserts.assertInstanceof(target, Element,
|
goog.asserts.assertInstanceof(target, Element,
|
||||||
'target should be an Element');
|
'target should be an Element');
|
||||||
var tagName = target.tagName;
|
var tagName = target.tagName;
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
goog.provide('ol.events.Event');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @classdesc
|
||||||
|
* Stripped down implementation of the W3C DOM Level 2 Event interface.
|
||||||
|
* @see {@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface}
|
||||||
|
*
|
||||||
|
* This implementation only provides `type` and `target` properties, and
|
||||||
|
* `stopPropagation` and `preventDefault` methods. It is meant as base class
|
||||||
|
* for higher level events defined in the library, and works with
|
||||||
|
* {@link ol.events.EventTarget}.
|
||||||
|
*
|
||||||
|
* @constructor
|
||||||
|
* @param {string} type Type.
|
||||||
|
* @param {Object=} opt_target Target.
|
||||||
|
*/
|
||||||
|
ol.events.Event = function(type, opt_target) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
this.propagationStopped;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {string}
|
||||||
|
*/
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {Object|undefined}
|
||||||
|
*/
|
||||||
|
this.target = opt_target;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop event propagation
|
||||||
|
*/
|
||||||
|
ol.events.Event.prototype.preventDefault =
|
||||||
|
ol.events.Event.prototype.stopPropagation = function() {
|
||||||
|
this.propagationStopped = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Event|ol.events.Event} evt Event
|
||||||
|
*/
|
||||||
|
ol.events.Event.stopPropagation = function(evt) {
|
||||||
|
evt.stopPropagation();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Event|ol.events.Event} evt Event
|
||||||
|
*/
|
||||||
|
ol.events.Event.preventDefault = function(evt) {
|
||||||
|
evt.preventDefault();
|
||||||
|
};
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
goog.provide('ol.events.EventTarget');
|
||||||
|
|
||||||
|
goog.require('goog.Disposable');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @classdesc
|
||||||
|
* A simplified implementation of the W3C DOM Level 2 EventTarget interface.
|
||||||
|
* @see {@link https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget}
|
||||||
|
*
|
||||||
|
* There are two important simplifications compared to the specification:
|
||||||
|
*
|
||||||
|
* 1. The handling of `useCapture` in `addEventListener` and
|
||||||
|
* `removeEventListener`. There is no real capture model.
|
||||||
|
* 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.
|
||||||
|
* There is no event target hierarchy. When a listener calls
|
||||||
|
* `stopPropagation` or `preventDefault` on an event object, it means that no
|
||||||
|
* more listeners after this one will be called. Same as when the listener
|
||||||
|
* returns false.
|
||||||
|
*
|
||||||
|
* @constructor
|
||||||
|
* @extends {goog.Disposable}
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget = function() {
|
||||||
|
|
||||||
|
goog.base(this);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {!Object.<string, Array.<ol.events.ListenerFunctionType>>}
|
||||||
|
*/
|
||||||
|
this.listeners_ = {};
|
||||||
|
|
||||||
|
};
|
||||||
|
goog.inherits(ol.events.EventTarget, goog.Disposable);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type Type.
|
||||||
|
* @param {ol.events.ListenerFunctionType} listener Listener.
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget.prototype.addEventListener = function(type, listener) {
|
||||||
|
var listeners = this.listeners_[type];
|
||||||
|
if (!listeners) {
|
||||||
|
listeners = this.listeners_[type] = [];
|
||||||
|
}
|
||||||
|
if (listeners.indexOf(listener) === -1) {
|
||||||
|
listeners.unshift(listener);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {{type: string,
|
||||||
|
* target: (EventTarget|ol.events.EventTarget|undefined)}|ol.events.Event|
|
||||||
|
* string} event Event or event type.
|
||||||
|
* @return {boolean|undefined} `false` if anyone called preventDefault on the
|
||||||
|
* event object or if any of the listeners returned false.
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget.prototype.dispatchEvent = function(event) {
|
||||||
|
var evt = goog.isString(event) ? new ol.events.Event(event) : event;
|
||||||
|
var type = evt.type;
|
||||||
|
evt.target = this;
|
||||||
|
var listeners = this.listeners_[type];
|
||||||
|
if (listeners) {
|
||||||
|
for (var i = listeners.length - 1; i >= 0; --i) {
|
||||||
|
if (listeners[i].call(this, evt) === false ||
|
||||||
|
evt.propagationStopped) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget.prototype.disposeInternal = function() {
|
||||||
|
ol.events.unlistenAll(this);
|
||||||
|
goog.base(this, 'disposeInternal');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the listeners for a specified event type. Listeners are returned in the
|
||||||
|
* opposite order that they will be called in.
|
||||||
|
*
|
||||||
|
* @param {string} type Type.
|
||||||
|
* @return {Array.<ol.events.ListenerFunctionType>} Listeners.
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget.prototype.getListeners = function(type) {
|
||||||
|
return this.listeners_[type];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string=} opt_type Type. If not provided,
|
||||||
|
* `true` will be returned if this EventTarget has any listeners.
|
||||||
|
* @return {boolean} Has listeners.
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget.prototype.hasListener = function(opt_type) {
|
||||||
|
return opt_type ?
|
||||||
|
opt_type in this.listeners_ :
|
||||||
|
Object.keys(this.listeners_).length > 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type Type.
|
||||||
|
* @param {ol.events.ListenerFunctionType} listener Listener.
|
||||||
|
*/
|
||||||
|
ol.events.EventTarget.prototype.removeEventListener = function(type, listener) {
|
||||||
|
var listeners = this.listeners_[type];
|
||||||
|
if (listeners) {
|
||||||
|
var index = listeners.indexOf(listener);
|
||||||
|
listeners.splice(index, 1);
|
||||||
|
if (listeners.length === 0) {
|
||||||
|
delete this.listeners_[type];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
+12
-12
@@ -2,8 +2,8 @@ goog.provide('ol.Feature');
|
|||||||
goog.provide('ol.FeatureStyleFunction');
|
goog.provide('ol.FeatureStyleFunction');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.geom.Geometry');
|
goog.require('ol.geom.Geometry');
|
||||||
@@ -87,13 +87,13 @@ ol.Feature = function(opt_geometryOrProperties) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.geometryChangeKey_ = null;
|
this.geometryChangeKey_ = null;
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(this.geometryName_),
|
this, ol.Object.getChangeEventType(this.geometryName_),
|
||||||
this.handleGeometryChanged_, false, this);
|
this.handleGeometryChanged_, this);
|
||||||
|
|
||||||
if (opt_geometryOrProperties !== undefined) {
|
if (opt_geometryOrProperties !== undefined) {
|
||||||
if (opt_geometryOrProperties instanceof ol.geom.Geometry ||
|
if (opt_geometryOrProperties instanceof ol.geom.Geometry ||
|
||||||
@@ -209,13 +209,13 @@ ol.Feature.prototype.handleGeometryChange_ = function() {
|
|||||||
*/
|
*/
|
||||||
ol.Feature.prototype.handleGeometryChanged_ = function() {
|
ol.Feature.prototype.handleGeometryChanged_ = function() {
|
||||||
if (this.geometryChangeKey_) {
|
if (this.geometryChangeKey_) {
|
||||||
goog.events.unlistenByKey(this.geometryChangeKey_);
|
ol.events.unlistenByKey(this.geometryChangeKey_);
|
||||||
this.geometryChangeKey_ = null;
|
this.geometryChangeKey_ = null;
|
||||||
}
|
}
|
||||||
var geometry = this.getGeometry();
|
var geometry = this.getGeometry();
|
||||||
if (geometry) {
|
if (geometry) {
|
||||||
this.geometryChangeKey_ = goog.events.listen(geometry,
|
this.geometryChangeKey_ = ol.events.listen(geometry,
|
||||||
goog.events.EventType.CHANGE, this.handleGeometryChange_, false, this);
|
ol.events.EventType.CHANGE, this.handleGeometryChange_, this);
|
||||||
}
|
}
|
||||||
this.changed();
|
this.changed();
|
||||||
};
|
};
|
||||||
@@ -273,13 +273,13 @@ ol.Feature.prototype.setId = function(id) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.setGeometryName = function(name) {
|
ol.Feature.prototype.setGeometryName = function(name) {
|
||||||
goog.events.unlisten(
|
ol.events.unlisten(
|
||||||
this, ol.Object.getChangeEventType(this.geometryName_),
|
this, ol.Object.getChangeEventType(this.geometryName_),
|
||||||
this.handleGeometryChanged_, false, this);
|
this.handleGeometryChanged_, this);
|
||||||
this.geometryName_ = name;
|
this.geometryName_ = name;
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(this.geometryName_),
|
this, ol.Object.getChangeEventType(this.geometryName_),
|
||||||
this.handleGeometryChanged_, false, this);
|
this.handleGeometryChanged_, this);
|
||||||
this.handleGeometryChanged_();
|
this.handleGeometryChanged_();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+40
-56
@@ -3,10 +3,6 @@ goog.provide('ol.FeatureUrlFunction');
|
|||||||
goog.provide('ol.featureloader');
|
goog.provide('ol.featureloader');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.net.EventType');
|
|
||||||
goog.require('goog.net.XhrIo');
|
|
||||||
goog.require('goog.net.XhrIo.ResponseType');
|
|
||||||
goog.require('ol.TileState');
|
goog.require('ol.TileState');
|
||||||
goog.require('ol.VectorTile');
|
goog.require('ol.VectorTile');
|
||||||
goog.require('ol.format.FormatType');
|
goog.require('ol.format.FormatType');
|
||||||
@@ -67,59 +63,47 @@ ol.featureloader.loadFeaturesXhr = function(url, format, success, failure) {
|
|||||||
* @this {ol.source.Vector|ol.VectorTile}
|
* @this {ol.source.Vector|ol.VectorTile}
|
||||||
*/
|
*/
|
||||||
function(extent, resolution, projection) {
|
function(extent, resolution, projection) {
|
||||||
var xhrIo = new goog.net.XhrIo();
|
var xhr = new XMLHttpRequest();
|
||||||
xhrIo.setResponseType(
|
xhr.open('GET',
|
||||||
format.getType() == ol.format.FormatType.ARRAY_BUFFER ?
|
goog.isFunction(url) ? url(extent, resolution, projection) : url,
|
||||||
goog.net.XhrIo.ResponseType.ARRAY_BUFFER :
|
true);
|
||||||
goog.net.XhrIo.ResponseType.TEXT);
|
if (format.getType() == ol.format.FormatType.ARRAY_BUFFER) {
|
||||||
goog.events.listen(xhrIo, goog.net.EventType.COMPLETE,
|
xhr.responseType = 'arraybuffer';
|
||||||
/**
|
|
||||||
* @param {Event} event Event.
|
|
||||||
* @private
|
|
||||||
* @this {ol.source.Vector}
|
|
||||||
*/
|
|
||||||
function(event) {
|
|
||||||
var xhrIo = event.target;
|
|
||||||
goog.asserts.assertInstanceof(xhrIo, goog.net.XhrIo,
|
|
||||||
'event.target/xhrIo is an instance of goog.net.XhrIo');
|
|
||||||
if (xhrIo.isSuccess()) {
|
|
||||||
var type = format.getType();
|
|
||||||
/** @type {Document|Node|Object|string|undefined} */
|
|
||||||
var source;
|
|
||||||
if (type == ol.format.FormatType.JSON) {
|
|
||||||
source = xhrIo.getResponseText();
|
|
||||||
} else if (type == ol.format.FormatType.TEXT) {
|
|
||||||
source = xhrIo.getResponseText();
|
|
||||||
} else if (type == ol.format.FormatType.XML) {
|
|
||||||
if (!goog.userAgent.IE) {
|
|
||||||
source = xhrIo.getResponseXml();
|
|
||||||
}
|
|
||||||
if (!source) {
|
|
||||||
source = ol.xml.parse(xhrIo.getResponseText());
|
|
||||||
}
|
|
||||||
} else if (type == ol.format.FormatType.ARRAY_BUFFER) {
|
|
||||||
source = xhrIo.getResponse();
|
|
||||||
} else {
|
|
||||||
goog.asserts.fail('unexpected format type');
|
|
||||||
}
|
|
||||||
if (source) {
|
|
||||||
success.call(this, format.readFeatures(source,
|
|
||||||
{featureProjection: projection}),
|
|
||||||
format.readProjection(source));
|
|
||||||
} else {
|
|
||||||
goog.asserts.fail('undefined or null source');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
failure.call(this);
|
|
||||||
}
|
|
||||||
goog.dispose(xhrIo);
|
|
||||||
}, false, this);
|
|
||||||
if (goog.isFunction(url)) {
|
|
||||||
xhrIo.send(url(extent, resolution, projection));
|
|
||||||
} else {
|
|
||||||
xhrIo.send(url);
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param {Event} event Event.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
xhr.onload = function(event) {
|
||||||
|
if (xhr.status >= 200 && xhr.status < 300) {
|
||||||
|
var type = format.getType();
|
||||||
|
/** @type {Document|Node|Object|string|undefined} */
|
||||||
|
var source;
|
||||||
|
if (type == ol.format.FormatType.JSON ||
|
||||||
|
type == ol.format.FormatType.TEXT) {
|
||||||
|
source = /** @type {string} */ (xhr.responseText);
|
||||||
|
} else if (type == ol.format.FormatType.XML) {
|
||||||
|
source = xhr.responseXML;
|
||||||
|
if (!source) {
|
||||||
|
source = ol.xml.parse(xhr.responseText);
|
||||||
|
}
|
||||||
|
} else if (type == ol.format.FormatType.ARRAY_BUFFER) {
|
||||||
|
source = /** @type {ArrayBuffer} */ (xhr.response);
|
||||||
|
} else {
|
||||||
|
goog.asserts.fail('unexpected format type');
|
||||||
|
}
|
||||||
|
if (source) {
|
||||||
|
success.call(this, format.readFeatures(source,
|
||||||
|
{featureProjection: projection}),
|
||||||
|
format.readProjection(source));
|
||||||
|
} else {
|
||||||
|
goog.asserts.fail('undefined or null source');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
failure.call(this);
|
||||||
|
}
|
||||||
|
}.bind(this);
|
||||||
|
xhr.send();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
goog.provide('ol.Geolocation');
|
goog.provide('ol.Geolocation');
|
||||||
goog.provide('ol.GeolocationProperty');
|
goog.provide('ol.GeolocationProperty');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.geom.Geometry');
|
goog.require('ol.geom.Geometry');
|
||||||
@@ -83,12 +83,12 @@ ol.Geolocation = function(opt_options) {
|
|||||||
*/
|
*/
|
||||||
this.watchId_ = undefined;
|
this.watchId_ = undefined;
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.GeolocationProperty.PROJECTION),
|
this, ol.Object.getChangeEventType(ol.GeolocationProperty.PROJECTION),
|
||||||
this.handleProjectionChanged_, false, this);
|
this.handleProjectionChanged_, this);
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.GeolocationProperty.TRACKING),
|
this, ol.Object.getChangeEventType(ol.GeolocationProperty.TRACKING),
|
||||||
this.handleTrackingChanged_, false, this);
|
this.handleTrackingChanged_, this);
|
||||||
|
|
||||||
if (options.projection !== undefined) {
|
if (options.projection !== undefined) {
|
||||||
this.setProjection(ol.proj.get(options.projection));
|
this.setProjection(ol.proj.get(options.projection));
|
||||||
@@ -189,9 +189,9 @@ ol.Geolocation.prototype.positionChange_ = function(position) {
|
|||||||
* @param {GeolocationPositionError} error error object.
|
* @param {GeolocationPositionError} error error object.
|
||||||
*/
|
*/
|
||||||
ol.Geolocation.prototype.positionError_ = function(error) {
|
ol.Geolocation.prototype.positionError_ = function(error) {
|
||||||
error.type = goog.events.EventType.ERROR;
|
error.type = ol.events.EventType.ERROR;
|
||||||
this.setTracking(false);
|
this.setTracking(false);
|
||||||
this.dispatchEvent(error);
|
this.dispatchEvent(/** @type {{type: string}} */ (error));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.geom.GeometryCollection');
|
goog.provide('ol.geom.GeometryCollection');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.geom.Geometry');
|
goog.require('ol.geom.Geometry');
|
||||||
@@ -56,9 +56,9 @@ ol.geom.GeometryCollection.prototype.unlistenGeometriesChange_ = function() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (i = 0, ii = this.geometries_.length; i < ii; ++i) {
|
for (i = 0, ii = this.geometries_.length; i < ii; ++i) {
|
||||||
goog.events.unlisten(
|
ol.events.unlisten(
|
||||||
this.geometries_[i], goog.events.EventType.CHANGE,
|
this.geometries_[i], ol.events.EventType.CHANGE,
|
||||||
this.changed, false, this);
|
this.changed, this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -72,9 +72,9 @@ ol.geom.GeometryCollection.prototype.listenGeometriesChange_ = function() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (i = 0, ii = this.geometries_.length; i < ii; ++i) {
|
for (i = 0, ii = this.geometries_.length; i < ii; ++i) {
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this.geometries_[i], goog.events.EventType.CHANGE,
|
this.geometries_[i], ol.events.EventType.CHANGE,
|
||||||
this.changed, false, this);
|
this.changed, this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,28 @@ goog.require('ol.dom');
|
|||||||
goog.require('ol.webgl');
|
goog.require('ol.webgl');
|
||||||
|
|
||||||
|
|
||||||
|
var ua = typeof navigator !== 'undefined' ?
|
||||||
|
navigator.userAgent.toLowerCase() : '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User agent string says we are dealing with Firefox as browser.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
ol.has.FIREFOX = ua.indexOf('firefox') !== -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User agent string says we are dealing with Safari as browser.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
ol.has.SAFARI = ua.indexOf('safari') !== -1 && ua.indexOf('chrom') === -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User agent string says we are dealing with a Mac as platform.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
ol.has.MAC = ua.indexOf('Macintosh') !== -1;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ratio between physical pixels and device-independent pixels
|
* The ratio between physical pixels and device-independent pixels
|
||||||
* (dips) on the device (`window.devicePixelRatio`).
|
* (dips) on the device (`window.devicePixelRatio`).
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.Image');
|
goog.provide('ol.Image');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.ImageBase');
|
goog.require('ol.ImageBase');
|
||||||
goog.require('ol.ImageState');
|
goog.require('ol.ImageState');
|
||||||
@@ -49,7 +49,7 @@ ol.Image = function(extent, resolution, pixelRatio, attributions, src,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.imageListenerKeys_ = null;
|
this.imageListenerKeys_ = null;
|
||||||
|
|
||||||
@@ -131,10 +131,10 @@ ol.Image.prototype.load = function() {
|
|||||||
goog.asserts.assert(!this.imageListenerKeys_,
|
goog.asserts.assert(!this.imageListenerKeys_,
|
||||||
'this.imageListenerKeys_ should be null');
|
'this.imageListenerKeys_ should be null');
|
||||||
this.imageListenerKeys_ = [
|
this.imageListenerKeys_ = [
|
||||||
goog.events.listenOnce(this.image_, goog.events.EventType.ERROR,
|
ol.events.listenOnce(this.image_, ol.events.EventType.ERROR,
|
||||||
this.handleImageError_, false, this),
|
this.handleImageError_, this),
|
||||||
goog.events.listenOnce(this.image_, goog.events.EventType.LOAD,
|
ol.events.listenOnce(this.image_, ol.events.EventType.LOAD,
|
||||||
this.handleImageLoad_, false, this)
|
this.handleImageLoad_, this)
|
||||||
];
|
];
|
||||||
this.imageLoadFunction_(this, this.src_);
|
this.imageLoadFunction_(this, this.src_);
|
||||||
}
|
}
|
||||||
@@ -157,6 +157,6 @@ ol.Image.prototype.setImage = function(image) {
|
|||||||
ol.Image.prototype.unlistenImage_ = function() {
|
ol.Image.prototype.unlistenImage_ = function() {
|
||||||
goog.asserts.assert(this.imageListenerKeys_,
|
goog.asserts.assert(this.imageListenerKeys_,
|
||||||
'this.imageListenerKeys_ should not be null');
|
'this.imageListenerKeys_ should not be null');
|
||||||
this.imageListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.imageListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.imageListenerKeys_ = null;
|
this.imageListenerKeys_ = null;
|
||||||
};
|
};
|
||||||
|
|||||||
+5
-5
@@ -2,8 +2,8 @@ goog.provide('ol.ImageBase');
|
|||||||
goog.provide('ol.ImageState');
|
goog.provide('ol.ImageState');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.EventTarget');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.Attribution');
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.Extent');
|
goog.require('ol.Extent');
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ ol.ImageState = {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {number|undefined} resolution Resolution.
|
* @param {number|undefined} resolution Resolution.
|
||||||
* @param {number} pixelRatio Pixel ratio.
|
* @param {number} pixelRatio Pixel ratio.
|
||||||
@@ -63,14 +63,14 @@ ol.ImageBase = function(extent, resolution, pixelRatio, state, attributions) {
|
|||||||
this.state = state;
|
this.state = state;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.ImageBase, goog.events.EventTarget);
|
goog.inherits(ol.ImageBase, ol.events.EventTarget);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.ImageBase.prototype.changed = function() {
|
ol.ImageBase.prototype.changed = function() {
|
||||||
this.dispatchEvent(goog.events.EventType.CHANGE);
|
this.dispatchEvent(ol.events.EventType.CHANGE);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.ImageTile');
|
goog.provide('ol.ImageTile');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.Tile');
|
goog.require('ol.Tile');
|
||||||
goog.require('ol.TileCoord');
|
goog.require('ol.TileCoord');
|
||||||
@@ -48,7 +48,7 @@ ol.ImageTile = function(tileCoord, state, src, crossOrigin, tileLoadFunction) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.imageListenerKeys_ = null;
|
this.imageListenerKeys_ = null;
|
||||||
|
|
||||||
@@ -146,10 +146,10 @@ ol.ImageTile.prototype.load = function() {
|
|||||||
goog.asserts.assert(!this.imageListenerKeys_,
|
goog.asserts.assert(!this.imageListenerKeys_,
|
||||||
'this.imageListenerKeys_ should be null');
|
'this.imageListenerKeys_ should be null');
|
||||||
this.imageListenerKeys_ = [
|
this.imageListenerKeys_ = [
|
||||||
goog.events.listenOnce(this.image_, goog.events.EventType.ERROR,
|
ol.events.listenOnce(this.image_, ol.events.EventType.ERROR,
|
||||||
this.handleImageError_, false, this),
|
this.handleImageError_, this),
|
||||||
goog.events.listenOnce(this.image_, goog.events.EventType.LOAD,
|
ol.events.listenOnce(this.image_, ol.events.EventType.LOAD,
|
||||||
this.handleImageLoad_, false, this)
|
this.handleImageLoad_, this)
|
||||||
];
|
];
|
||||||
this.tileLoadFunction_(this, this.src_);
|
this.tileLoadFunction_(this, this.src_);
|
||||||
}
|
}
|
||||||
@@ -164,6 +164,6 @@ ol.ImageTile.prototype.load = function() {
|
|||||||
ol.ImageTile.prototype.unlistenImage_ = function() {
|
ol.ImageTile.prototype.unlistenImage_ = function() {
|
||||||
goog.asserts.assert(this.imageListenerKeys_,
|
goog.asserts.assert(this.imageListenerKeys_,
|
||||||
'this.imageListenerKeys_ should not be null');
|
'this.imageListenerKeys_ should not be null');
|
||||||
this.imageListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.imageListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.imageListenerKeys_ = null;
|
this.imageListenerKeys_ = null;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ goog.inherits(ol.interaction.DoubleClickZoom, ol.interaction.Interaction);
|
|||||||
*/
|
*/
|
||||||
ol.interaction.DoubleClickZoom.handleEvent = function(mapBrowserEvent) {
|
ol.interaction.DoubleClickZoom.handleEvent = function(mapBrowserEvent) {
|
||||||
var stopEvent = false;
|
var stopEvent = false;
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
var browserEvent = mapBrowserEvent.originalEvent;
|
||||||
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.coordinate;
|
var anchor = mapBrowserEvent.coordinate;
|
||||||
|
|||||||
@@ -4,12 +4,10 @@ goog.provide('ol.interaction.DragAndDrop');
|
|||||||
goog.provide('ol.interaction.DragAndDropEvent');
|
goog.provide('ol.interaction.DragAndDropEvent');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.events.Event');
|
|
||||||
goog.require('goog.events.FileDropHandler');
|
|
||||||
goog.require('goog.events.FileDropHandler.EventType');
|
|
||||||
goog.require('goog.fs.FileReader');
|
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
|
|
||||||
@@ -48,54 +46,50 @@ ol.interaction.DragAndDrop = function(opt_options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.FileDropHandler}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.fileDropHandler_ = null;
|
this.dropListenKeys_ = null;
|
||||||
|
|
||||||
/**
|
|
||||||
* @private
|
|
||||||
* @type {goog.events.Key|undefined}
|
|
||||||
*/
|
|
||||||
this.dropListenKey_ = undefined;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.DragAndDrop, ol.interaction.Interaction);
|
goog.inherits(ol.interaction.DragAndDrop, ol.interaction.Interaction);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @param {Event} event Event.
|
||||||
|
* @this {ol.interaction.DragAndDrop}
|
||||||
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.DragAndDrop.prototype.disposeInternal = function() {
|
ol.interaction.DragAndDrop.handleDrop_ = function(event) {
|
||||||
if (this.dropListenKey_) {
|
var files = event.dataTransfer.files;
|
||||||
goog.events.unlistenByKey(this.dropListenKey_);
|
var i, ii, file;
|
||||||
|
for (i = 0, ii = files.length; i < ii; ++i) {
|
||||||
|
file = files.item(i);
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.addEventListener(ol.events.EventType.LOAD,
|
||||||
|
goog.partial(this.handleResult_, file).bind(this));
|
||||||
|
reader.readAsText(file);
|
||||||
}
|
}
|
||||||
goog.base(this, 'disposeInternal');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} event Event.
|
* @param {Event} event Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.DragAndDrop.prototype.handleDrop_ = function(event) {
|
ol.interaction.DragAndDrop.handleStop_ = function(event) {
|
||||||
var files = event.getBrowserEvent().dataTransfer.files;
|
event.stopPropagation();
|
||||||
var i, ii, file;
|
event.preventDefault();
|
||||||
for (i = 0, ii = files.length; i < ii; ++i) {
|
event.dataTransfer.dropEffect = 'copy';
|
||||||
file = files[i];
|
|
||||||
// The empty string param is a workaround for
|
|
||||||
// https://code.google.com/p/closure-library/issues/detail?id=524
|
|
||||||
var reader = goog.fs.FileReader.readAsText(file, '');
|
|
||||||
reader.addCallback(goog.partial(this.handleResult_, file), this);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {File} file File.
|
* @param {File} file File.
|
||||||
* @param {string} result Result.
|
* @param {Event} event Load event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.DragAndDrop.prototype.handleResult_ = function(file, result) {
|
ol.interaction.DragAndDrop.prototype.handleResult_ = function(file, event) {
|
||||||
|
var result = event.target.result;
|
||||||
var map = this.getMap();
|
var map = this.getMap();
|
||||||
goog.asserts.assert(map, 'map must be set');
|
goog.asserts.assert(map, 'map must be set');
|
||||||
var projection = this.projection_;
|
var projection = this.projection_;
|
||||||
@@ -149,22 +143,23 @@ ol.interaction.DragAndDrop.handleEvent = goog.functions.TRUE;
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.interaction.DragAndDrop.prototype.setMap = function(map) {
|
ol.interaction.DragAndDrop.prototype.setMap = function(map) {
|
||||||
if (this.dropListenKey_) {
|
if (this.dropListenKeys_) {
|
||||||
goog.events.unlistenByKey(this.dropListenKey_);
|
this.dropListenKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.dropListenKey_ = undefined;
|
this.dropListenKeys_ = null;
|
||||||
}
|
}
|
||||||
if (this.fileDropHandler_) {
|
|
||||||
goog.dispose(this.fileDropHandler_);
|
|
||||||
this.fileDropHandler_ = null;
|
|
||||||
}
|
|
||||||
goog.asserts.assert(this.dropListenKey_ === undefined,
|
|
||||||
'this.dropListenKey_ should be undefined');
|
|
||||||
goog.base(this, 'setMap', map);
|
goog.base(this, 'setMap', map);
|
||||||
if (map) {
|
if (map) {
|
||||||
this.fileDropHandler_ = new goog.events.FileDropHandler(map.getViewport());
|
var dropArea = map.getViewport();
|
||||||
this.dropListenKey_ = goog.events.listen(
|
this.dropListenKeys_ = [
|
||||||
this.fileDropHandler_, goog.events.FileDropHandler.EventType.DROP,
|
ol.events.listen(dropArea, ol.events.EventType.DROP,
|
||||||
this.handleDrop_, false, this);
|
ol.interaction.DragAndDrop.handleDrop_, this),
|
||||||
|
ol.events.listen(dropArea, ol.events.EventType.DRAGENTER,
|
||||||
|
ol.interaction.DragAndDrop.handleStop_, this),
|
||||||
|
ol.events.listen(dropArea, ol.events.EventType.DRAGOVER,
|
||||||
|
ol.interaction.DragAndDrop.handleStop_, this),
|
||||||
|
ol.events.listen(dropArea, ol.events.EventType.DROP,
|
||||||
|
ol.interaction.DragAndDrop.handleStop_, this)
|
||||||
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -203,7 +198,7 @@ ol.interaction.DragAndDropEventType = {
|
|||||||
* of this type.
|
* of this type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.interaction.DragAndDropEvent}
|
* @implements {oli.interaction.DragAndDropEvent}
|
||||||
* @param {ol.interaction.DragAndDropEventType} type Type.
|
* @param {ol.interaction.DragAndDropEventType} type Type.
|
||||||
* @param {Object} target Target.
|
* @param {Object} target Target.
|
||||||
@@ -237,4 +232,4 @@ ol.interaction.DragAndDropEvent = function(type, target, file, opt_features, opt
|
|||||||
this.projection = opt_projection;
|
this.projection = opt_projection;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.DragAndDropEvent, goog.events.Event);
|
goog.inherits(ol.interaction.DragAndDropEvent, ol.events.Event);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
goog.provide('ol.DragBoxEvent');
|
goog.provide('ol.DragBoxEvent');
|
||||||
goog.provide('ol.interaction.DragBox');
|
goog.provide('ol.interaction.DragBox');
|
||||||
|
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.events.ConditionType');
|
goog.require('ol.events.ConditionType');
|
||||||
goog.require('ol.events.condition');
|
goog.require('ol.events.condition');
|
||||||
@@ -54,7 +54,7 @@ ol.DragBoxEventType = {
|
|||||||
* @param {string} type The event type.
|
* @param {string} type The event type.
|
||||||
* @param {ol.Coordinate} coordinate The event coordinate.
|
* @param {ol.Coordinate} coordinate The event coordinate.
|
||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Originating event.
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Originating event.
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @constructor
|
* @constructor
|
||||||
* @implements {oli.DragBoxEvent}
|
* @implements {oli.DragBoxEvent}
|
||||||
*/
|
*/
|
||||||
@@ -77,7 +77,7 @@ ol.DragBoxEvent = function(type, coordinate, mapBrowserEvent) {
|
|||||||
this.mapBrowserEvent = mapBrowserEvent;
|
this.mapBrowserEvent = mapBrowserEvent;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.DragBoxEvent, goog.events.Event);
|
goog.inherits(ol.DragBoxEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -234,8 +234,8 @@ ol.interaction.DragBox.handleDownEvent_ = function(mapBrowserEvent) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
if (ol.events.condition.mouseActionButton(mapBrowserEvent) &&
|
||||||
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
|
this.condition_(mapBrowserEvent)) {
|
||||||
this.startPixel_ = mapBrowserEvent.pixel;
|
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_);
|
||||||
|
|||||||
@@ -112,8 +112,8 @@ ol.interaction.DragRotate.handleDownEvent_ = function(mapBrowserEvent) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var browserEvent = mapBrowserEvent.browserEvent;
|
if (ol.events.condition.mouseActionButton(mapBrowserEvent) &&
|
||||||
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
|
this.condition_(mapBrowserEvent)) {
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
map.getView().setHint(ol.ViewHint.INTERACTING, 1);
|
map.getView().setHint(ol.ViewHint.INTERACTING, 1);
|
||||||
map.render();
|
map.render();
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ goog.provide('ol.interaction.DrawGeometryFunctionType');
|
|||||||
goog.provide('ol.interaction.DrawMode');
|
goog.provide('ol.interaction.DrawMode');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
@@ -55,7 +55,7 @@ ol.interaction.DrawEventType = {
|
|||||||
* this type.
|
* this type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.DrawEvent}
|
* @implements {oli.DrawEvent}
|
||||||
* @param {ol.interaction.DrawEventType} type Type.
|
* @param {ol.interaction.DrawEventType} type Type.
|
||||||
* @param {ol.Feature} feature The feature drawn.
|
* @param {ol.Feature} feature The feature drawn.
|
||||||
@@ -72,7 +72,7 @@ ol.interaction.DrawEvent = function(type, feature) {
|
|||||||
this.feature = feature;
|
this.feature = feature;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.DrawEvent, goog.events.Event);
|
goog.inherits(ol.interaction.DrawEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -300,9 +300,9 @@ ol.interaction.Draw = function(options) {
|
|||||||
this.freehandCondition_ = options.freehandCondition ?
|
this.freehandCondition_ = options.freehandCondition ?
|
||||||
options.freehandCondition : ol.events.condition.shiftKeyOnly;
|
options.freehandCondition : ol.events.condition.shiftKeyOnly;
|
||||||
|
|
||||||
goog.events.listen(this,
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.interaction.InteractionProperty.ACTIVE),
|
ol.Object.getChangeEventType(ol.interaction.InteractionProperty.ACTIVE),
|
||||||
this.updateState_, false, this);
|
this.updateState_, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.Draw, ol.interaction.Pointer);
|
goog.inherits(ol.interaction.Draw, ol.interaction.Pointer);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
goog.provide('ol.interaction.KeyboardPan');
|
goog.provide('ol.interaction.KeyboardPan');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.KeyCodes');
|
|
||||||
goog.require('goog.events.KeyHandler.EventType');
|
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.coordinate');
|
goog.require('ol.coordinate');
|
||||||
goog.require('ol.events.ConditionType');
|
goog.require('ol.events.ConditionType');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
|
goog.require('ol.events.KeyCode');
|
||||||
goog.require('ol.events.condition');
|
goog.require('ol.events.condition');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
|
|
||||||
@@ -73,25 +73,24 @@ goog.inherits(ol.interaction.KeyboardPan, ol.interaction.Interaction);
|
|||||||
*/
|
*/
|
||||||
ol.interaction.KeyboardPan.handleEvent = function(mapBrowserEvent) {
|
ol.interaction.KeyboardPan.handleEvent = function(mapBrowserEvent) {
|
||||||
var stopEvent = false;
|
var stopEvent = false;
|
||||||
if (mapBrowserEvent.type == goog.events.KeyHandler.EventType.KEY) {
|
if (mapBrowserEvent.type == ol.events.EventType.KEYDOWN) {
|
||||||
var keyEvent = /** @type {goog.events.KeyEvent} */
|
var keyEvent = mapBrowserEvent.originalEvent;
|
||||||
(mapBrowserEvent.browserEvent);
|
|
||||||
var keyCode = keyEvent.keyCode;
|
var keyCode = keyEvent.keyCode;
|
||||||
if (this.condition_(mapBrowserEvent) &&
|
if (this.condition_(mapBrowserEvent) &&
|
||||||
(keyCode == goog.events.KeyCodes.DOWN ||
|
(keyCode == ol.events.KeyCode.DOWN ||
|
||||||
keyCode == goog.events.KeyCodes.LEFT ||
|
keyCode == ol.events.KeyCode.LEFT ||
|
||||||
keyCode == goog.events.KeyCodes.RIGHT ||
|
keyCode == ol.events.KeyCode.RIGHT ||
|
||||||
keyCode == goog.events.KeyCodes.UP)) {
|
keyCode == ol.events.KeyCode.UP)) {
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
var view = map.getView();
|
var view = map.getView();
|
||||||
goog.asserts.assert(view, 'map must have view');
|
goog.asserts.assert(view, 'map must have view');
|
||||||
var mapUnitsDelta = view.getResolution() * this.pixelDelta_;
|
var mapUnitsDelta = view.getResolution() * this.pixelDelta_;
|
||||||
var deltaX = 0, deltaY = 0;
|
var deltaX = 0, deltaY = 0;
|
||||||
if (keyCode == goog.events.KeyCodes.DOWN) {
|
if (keyCode == ol.events.KeyCode.DOWN) {
|
||||||
deltaY = -mapUnitsDelta;
|
deltaY = -mapUnitsDelta;
|
||||||
} else if (keyCode == goog.events.KeyCodes.LEFT) {
|
} else if (keyCode == ol.events.KeyCode.LEFT) {
|
||||||
deltaX = -mapUnitsDelta;
|
deltaX = -mapUnitsDelta;
|
||||||
} else if (keyCode == goog.events.KeyCodes.RIGHT) {
|
} else if (keyCode == ol.events.KeyCode.RIGHT) {
|
||||||
deltaX = mapUnitsDelta;
|
deltaX = mapUnitsDelta;
|
||||||
} else {
|
} else {
|
||||||
deltaY = mapUnitsDelta;
|
deltaY = mapUnitsDelta;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.interaction.KeyboardZoom');
|
goog.provide('ol.interaction.KeyboardZoom');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.KeyHandler.EventType');
|
|
||||||
goog.require('ol.events.ConditionType');
|
goog.require('ol.events.ConditionType');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.events.condition');
|
goog.require('ol.events.condition');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
|
|
||||||
@@ -66,9 +66,9 @@ goog.inherits(ol.interaction.KeyboardZoom, ol.interaction.Interaction);
|
|||||||
*/
|
*/
|
||||||
ol.interaction.KeyboardZoom.handleEvent = function(mapBrowserEvent) {
|
ol.interaction.KeyboardZoom.handleEvent = function(mapBrowserEvent) {
|
||||||
var stopEvent = false;
|
var stopEvent = false;
|
||||||
if (mapBrowserEvent.type == goog.events.KeyHandler.EventType.KEY) {
|
if (mapBrowserEvent.type == ol.events.EventType.KEYDOWN ||
|
||||||
var keyEvent = /** @type {goog.events.KeyEvent} */
|
mapBrowserEvent.type == ol.events.EventType.KEYPRESS) {
|
||||||
(mapBrowserEvent.browserEvent);
|
var keyEvent = mapBrowserEvent.originalEvent;
|
||||||
var charCode = keyEvent.charCode;
|
var charCode = keyEvent.charCode;
|
||||||
if (this.condition_(mapBrowserEvent) &&
|
if (this.condition_(mapBrowserEvent) &&
|
||||||
(charCode == '+'.charCodeAt(0) || charCode == '-'.charCodeAt(0))) {
|
(charCode == '+'.charCodeAt(0) || charCode == '-'.charCodeAt(0))) {
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ goog.provide('ol.interaction.Modify');
|
|||||||
goog.provide('ol.interaction.ModifyEvent');
|
goog.provide('ol.interaction.ModifyEvent');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
@@ -55,7 +55,7 @@ ol.ModifyEventType = {
|
|||||||
* this type.
|
* this type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.ModifyEvent}
|
* @implements {oli.ModifyEvent}
|
||||||
* @param {ol.ModifyEventType} type Type.
|
* @param {ol.ModifyEventType} type Type.
|
||||||
* @param {ol.Collection.<ol.Feature>} features The features modified.
|
* @param {ol.Collection.<ol.Feature>} features The features modified.
|
||||||
@@ -80,7 +80,7 @@ ol.interaction.ModifyEvent = function(type, features, mapBrowserPointerEvent) {
|
|||||||
*/
|
*/
|
||||||
this.mapBrowserPointerEvent = mapBrowserPointerEvent;
|
this.mapBrowserPointerEvent = mapBrowserPointerEvent;
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.ModifyEvent, goog.events.Event);
|
goog.inherits(ol.interaction.ModifyEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -229,10 +229,10 @@ ol.interaction.Modify = function(options) {
|
|||||||
this.features_ = options.features;
|
this.features_ = options.features;
|
||||||
|
|
||||||
this.features_.forEach(this.addFeature_, this);
|
this.features_.forEach(this.addFeature_, this);
|
||||||
goog.events.listen(this.features_, ol.CollectionEventType.ADD,
|
ol.events.listen(this.features_, ol.CollectionEventType.ADD,
|
||||||
this.handleFeatureAdd_, false, this);
|
this.handleFeatureAdd_, this);
|
||||||
goog.events.listen(this.features_, ol.CollectionEventType.REMOVE,
|
ol.events.listen(this.features_, ol.CollectionEventType.REMOVE,
|
||||||
this.handleFeatureRemove_, false, this);
|
this.handleFeatureRemove_, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.Modify, ol.interaction.Pointer);
|
goog.inherits(ol.interaction.Modify, ol.interaction.Pointer);
|
||||||
@@ -251,8 +251,8 @@ ol.interaction.Modify.prototype.addFeature_ = function(feature) {
|
|||||||
if (map) {
|
if (map) {
|
||||||
this.handlePointerAtPixel_(this.lastPixel_, map);
|
this.handlePointerAtPixel_(this.lastPixel_, map);
|
||||||
}
|
}
|
||||||
goog.events.listen(feature, goog.events.EventType.CHANGE,
|
ol.events.listen(feature, ol.events.EventType.CHANGE,
|
||||||
this.handleFeatureChange_, false, this);
|
this.handleFeatureChange_, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -281,8 +281,8 @@ ol.interaction.Modify.prototype.removeFeature_ = function(feature) {
|
|||||||
this.overlay_.getSource().removeFeature(this.vertexFeature_);
|
this.overlay_.getSource().removeFeature(this.vertexFeature_);
|
||||||
this.vertexFeature_ = null;
|
this.vertexFeature_ = null;
|
||||||
}
|
}
|
||||||
goog.events.unlisten(feature, goog.events.EventType.CHANGE,
|
ol.events.unlisten(feature, ol.events.EventType.CHANGE,
|
||||||
this.handleFeatureChange_, false, this);
|
this.handleFeatureChange_, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -330,7 +330,7 @@ ol.interaction.Modify.prototype.handleFeatureAdd_ = function(evt) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} evt Event.
|
* @param {ol.events.Event} evt Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.Modify.prototype.handleFeatureChange_ = function(evt) {
|
ol.interaction.Modify.prototype.handleFeatureChange_ = function(evt) {
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
goog.provide('ol.interaction.MouseWheelZoom');
|
goog.provide('ol.interaction.MouseWheelZoom');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.MouseWheelEvent');
|
|
||||||
goog.require('goog.events.MouseWheelHandler.EventType');
|
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
goog.require('ol.math');
|
goog.require('ol.math');
|
||||||
|
|
||||||
@@ -76,18 +75,36 @@ goog.inherits(ol.interaction.MouseWheelZoom, ol.interaction.Interaction);
|
|||||||
*/
|
*/
|
||||||
ol.interaction.MouseWheelZoom.handleEvent = function(mapBrowserEvent) {
|
ol.interaction.MouseWheelZoom.handleEvent = function(mapBrowserEvent) {
|
||||||
var stopEvent = false;
|
var stopEvent = false;
|
||||||
if (mapBrowserEvent.type ==
|
if (mapBrowserEvent.type == ol.events.EventType.WHEEL ||
|
||||||
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL) {
|
mapBrowserEvent.type == ol.events.EventType.MOUSEWHEEL) {
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
var mouseWheelEvent = mapBrowserEvent.browserEvent;
|
var wheelEvent = /** @type {WheelEvent} */ (mapBrowserEvent.originalEvent);
|
||||||
goog.asserts.assertInstanceof(mouseWheelEvent, goog.events.MouseWheelEvent,
|
|
||||||
'mouseWheelEvent should be of type MouseWheelEvent');
|
|
||||||
|
|
||||||
if (this.useAnchor_) {
|
if (this.useAnchor_) {
|
||||||
this.lastAnchor_ = mapBrowserEvent.coordinate;
|
this.lastAnchor_ = mapBrowserEvent.coordinate;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.delta_ += mouseWheelEvent.deltaY;
|
// Delta normalisation inspired by
|
||||||
|
// https://github.com/mapbox/mapbox-gl-js/blob/001c7b9/js/ui/handler/scroll_zoom.js
|
||||||
|
//TODO There's more good stuff in there for inspiration to improve this interaction.
|
||||||
|
var delta;
|
||||||
|
if (mapBrowserEvent.type == ol.events.EventType.WHEEL) {
|
||||||
|
delta = wheelEvent.deltaY;
|
||||||
|
if (ol.has.FIREFOX &&
|
||||||
|
wheelEvent.deltaMode === goog.global.WheelEvent.DOM_DELTA_PIXEL) {
|
||||||
|
delta /= ol.has.DEVICE_PIXEL_RATIO;
|
||||||
|
}
|
||||||
|
if (wheelEvent.deltaMode === goog.global.WheelEvent.DOM_DELTA_LINE) {
|
||||||
|
delta *= 40;
|
||||||
|
}
|
||||||
|
} else if (mapBrowserEvent.type == ol.events.EventType.MOUSEWHEEL) {
|
||||||
|
delta = -wheelEvent.wheelDeltaY;
|
||||||
|
if (ol.has.SAFARI) {
|
||||||
|
delta /= 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.delta_ += delta;
|
||||||
|
|
||||||
if (this.startTime_ === undefined) {
|
if (this.startTime_ === undefined) {
|
||||||
this.startTime_ = Date.now();
|
this.startTime_ = Date.now();
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ goog.provide('ol.interaction.SelectEventType');
|
|||||||
goog.provide('ol.interaction.SelectFilterFunction');
|
goog.provide('ol.interaction.SelectFilterFunction');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.CollectionEventType');
|
goog.require('ol.CollectionEventType');
|
||||||
@@ -53,7 +53,7 @@ ol.interaction.SelectFilterFunction;
|
|||||||
* @param {ol.MapBrowserEvent} mapBrowserEvent Associated
|
* @param {ol.MapBrowserEvent} mapBrowserEvent Associated
|
||||||
* {@link ol.MapBrowserEvent}.
|
* {@link ol.MapBrowserEvent}.
|
||||||
* @implements {oli.SelectEvent}
|
* @implements {oli.SelectEvent}
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
ol.interaction.SelectEvent = function(type, selected, deselected, mapBrowserEvent) {
|
ol.interaction.SelectEvent = function(type, selected, deselected, mapBrowserEvent) {
|
||||||
@@ -80,7 +80,7 @@ ol.interaction.SelectEvent = function(type, selected, deselected, mapBrowserEven
|
|||||||
*/
|
*/
|
||||||
this.mapBrowserEvent = mapBrowserEvent;
|
this.mapBrowserEvent = mapBrowserEvent;
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.SelectEvent, goog.events.Event);
|
goog.inherits(ol.interaction.SelectEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -208,10 +208,10 @@ ol.interaction.Select = function(opt_options) {
|
|||||||
this.featureLayerAssociation_ = {};
|
this.featureLayerAssociation_ = {};
|
||||||
|
|
||||||
var features = this.featureOverlay_.getSource().getFeaturesCollection();
|
var features = this.featureOverlay_.getSource().getFeaturesCollection();
|
||||||
goog.events.listen(features, ol.CollectionEventType.ADD,
|
ol.events.listen(features, ol.CollectionEventType.ADD,
|
||||||
this.addFeature_, false, this);
|
this.addFeature_, this);
|
||||||
goog.events.listen(features, ol.CollectionEventType.REMOVE,
|
ol.events.listen(features, ol.CollectionEventType.REMOVE,
|
||||||
this.removeFeature_, false, this);
|
this.removeFeature_, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.Select, ol.interaction.Interaction);
|
goog.inherits(ol.interaction.Select, ol.interaction.Interaction);
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ goog.provide('ol.interaction.Snap');
|
|||||||
goog.provide('ol.interaction.SnapProperty');
|
goog.provide('ol.interaction.SnapProperty');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
@@ -68,19 +68,19 @@ ol.interaction.Snap = function(opt_options) {
|
|||||||
this.features_ = options.features ? options.features : null;
|
this.features_ = options.features ? options.features : null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.featuresListenerKeys_ = [];
|
this.featuresListenerKeys_ = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Object.<number, goog.events.Key>}
|
* @type {Object.<number, ol.events.Key>}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.geometryChangeListenerKeys_ = {};
|
this.geometryChangeListenerKeys_ = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Object.<number, goog.events.Key>}
|
* @type {Object.<number, ol.events.Key>}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.geometryModifyListenerKeys_ = {};
|
this.geometryModifyListenerKeys_ = {};
|
||||||
@@ -168,11 +168,13 @@ ol.interaction.Snap.prototype.addFeature = function(feature, opt_listen) {
|
|||||||
segmentWriter.call(this, feature, geometry);
|
segmentWriter.call(this, feature, geometry);
|
||||||
|
|
||||||
if (listen) {
|
if (listen) {
|
||||||
this.geometryModifyListenerKeys_[feature_uid] = geometry.on(
|
this.geometryModifyListenerKeys_[feature_uid] = ol.events.listen(
|
||||||
goog.events.EventType.CHANGE,
|
geometry,
|
||||||
|
ol.events.EventType.CHANGE,
|
||||||
this.handleGeometryModify_.bind(this, feature),
|
this.handleGeometryModify_.bind(this, feature),
|
||||||
this);
|
this);
|
||||||
this.geometryChangeListenerKeys_[feature_uid] = feature.on(
|
this.geometryChangeListenerKeys_[feature_uid] = ol.events.listen(
|
||||||
|
feature,
|
||||||
ol.Object.getChangeEventType(feature.getGeometryName()),
|
ol.Object.getChangeEventType(feature.getGeometryName()),
|
||||||
this.handleGeometryChange_, this);
|
this.handleGeometryChange_, this);
|
||||||
}
|
}
|
||||||
@@ -249,11 +251,11 @@ ol.interaction.Snap.prototype.handleFeatureRemove_ = function(evt) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} evt Event.
|
* @param {ol.events.Event} evt Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.Snap.prototype.handleGeometryChange_ = function(evt) {
|
ol.interaction.Snap.prototype.handleGeometryChange_ = function(evt) {
|
||||||
var feature = evt.currentTarget;
|
var feature = evt.target;
|
||||||
goog.asserts.assertInstanceof(feature, ol.Feature);
|
goog.asserts.assertInstanceof(feature, ol.Feature);
|
||||||
this.removeFeature(feature, true);
|
this.removeFeature(feature, true);
|
||||||
this.addFeature(feature, true);
|
this.addFeature(feature, true);
|
||||||
@@ -262,7 +264,7 @@ ol.interaction.Snap.prototype.handleGeometryChange_ = function(evt) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.Feature} feature Feature which geometry was modified.
|
* @param {ol.Feature} feature Feature which geometry was modified.
|
||||||
* @param {goog.events.Event} evt Event.
|
* @param {ol.events.Event} evt Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.interaction.Snap.prototype.handleGeometryModify_ = function(feature, evt) {
|
ol.interaction.Snap.prototype.handleGeometryModify_ = function(feature, evt) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.interaction.Translate');
|
goog.provide('ol.interaction.Translate');
|
||||||
goog.provide('ol.interaction.TranslateEvent');
|
goog.provide('ol.interaction.TranslateEvent');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.array');
|
goog.require('ol.array');
|
||||||
goog.require('ol.interaction.Pointer');
|
goog.require('ol.interaction.Pointer');
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ ol.interaction.TranslateEventType = {
|
|||||||
* this type.
|
* this type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.interaction.TranslateEvent}
|
* @implements {oli.interaction.TranslateEvent}
|
||||||
* @param {ol.interaction.TranslateEventType} type Type.
|
* @param {ol.interaction.TranslateEventType} type Type.
|
||||||
* @param {ol.Collection.<ol.Feature>} features The features translated.
|
* @param {ol.Collection.<ol.Feature>} features The features translated.
|
||||||
@@ -63,7 +63,7 @@ ol.interaction.TranslateEvent = function(type, features, coordinate) {
|
|||||||
*/
|
*/
|
||||||
this.coordinate = coordinate;
|
this.coordinate = coordinate;
|
||||||
};
|
};
|
||||||
goog.inherits(ol.interaction.TranslateEvent, goog.events.Event);
|
goog.inherits(ol.interaction.TranslateEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.layer.Heatmap');
|
goog.provide('ol.layer.Heatmap');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
@@ -72,9 +72,9 @@ ol.layer.Heatmap = function(opt_options) {
|
|||||||
*/
|
*/
|
||||||
this.styleCache_ = null;
|
this.styleCache_ = null;
|
||||||
|
|
||||||
goog.events.listen(this,
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.layer.HeatmapLayerProperty.GRADIENT),
|
ol.Object.getChangeEventType(ol.layer.HeatmapLayerProperty.GRADIENT),
|
||||||
this.handleGradientChanged_, false, this);
|
this.handleGradientChanged_, this);
|
||||||
|
|
||||||
this.setGradient(options.gradient ?
|
this.setGradient(options.gradient ?
|
||||||
options.gradient : ol.layer.Heatmap.DEFAULT_GRADIENT);
|
options.gradient : ol.layer.Heatmap.DEFAULT_GRADIENT);
|
||||||
@@ -83,10 +83,12 @@ ol.layer.Heatmap = function(opt_options) {
|
|||||||
|
|
||||||
this.setRadius(options.radius !== undefined ? options.radius : 8);
|
this.setRadius(options.radius !== undefined ? options.radius : 8);
|
||||||
|
|
||||||
goog.events.listen(this, [
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.layer.HeatmapLayerProperty.BLUR),
|
ol.Object.getChangeEventType(ol.layer.HeatmapLayerProperty.BLUR),
|
||||||
ol.Object.getChangeEventType(ol.layer.HeatmapLayerProperty.RADIUS)
|
this.handleStyleChanged_, this);
|
||||||
], this.handleStyleChanged_, false, this);
|
ol.events.listen(this,
|
||||||
|
ol.Object.getChangeEventType(ol.layer.HeatmapLayerProperty.RADIUS),
|
||||||
|
this.handleStyleChanged_, this);
|
||||||
|
|
||||||
this.handleStyleChanged_();
|
this.handleStyleChanged_();
|
||||||
|
|
||||||
@@ -129,8 +131,7 @@ ol.layer.Heatmap = function(opt_options) {
|
|||||||
// The render order is not relevant for a heatmap representation.
|
// The render order is not relevant for a heatmap representation.
|
||||||
this.setRenderOrder(null);
|
this.setRenderOrder(null);
|
||||||
|
|
||||||
goog.events.listen(this, ol.render.EventType.RENDER,
|
ol.events.listen(this, ol.render.EventType.RENDER, this.handleRender_, this);
|
||||||
this.handleRender_, false, this);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.layer.Heatmap, ol.layer.Vector);
|
goog.inherits(ol.layer.Heatmap, ol.layer.Vector);
|
||||||
|
|||||||
+22
-18
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.layer.Layer');
|
goog.provide('ol.layer.Layer');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
@@ -41,19 +41,19 @@ ol.layer.Layer = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.mapPrecomposeKey_ = null;
|
this.mapPrecomposeKey_ = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.mapRenderKey_ = null;
|
this.mapRenderKey_ = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.sourceChangeKey_ = null;
|
this.sourceChangeKey_ = null;
|
||||||
|
|
||||||
@@ -61,9 +61,9 @@ ol.layer.Layer = function(options) {
|
|||||||
this.setMap(options.map);
|
this.setMap(options.map);
|
||||||
}
|
}
|
||||||
|
|
||||||
goog.events.listen(this,
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.SOURCE),
|
ol.Object.getChangeEventType(ol.layer.LayerProperty.SOURCE),
|
||||||
this.handleSourcePropertyChange_, false, this);
|
this.handleSourcePropertyChange_, this);
|
||||||
|
|
||||||
var source = options.source ? options.source : null;
|
var source = options.source ? options.source : null;
|
||||||
this.setSource(source);
|
this.setSource(source);
|
||||||
@@ -139,13 +139,13 @@ ol.layer.Layer.prototype.handleSourceChange_ = function() {
|
|||||||
*/
|
*/
|
||||||
ol.layer.Layer.prototype.handleSourcePropertyChange_ = function() {
|
ol.layer.Layer.prototype.handleSourcePropertyChange_ = function() {
|
||||||
if (this.sourceChangeKey_) {
|
if (this.sourceChangeKey_) {
|
||||||
goog.events.unlistenByKey(this.sourceChangeKey_);
|
ol.events.unlistenByKey(this.sourceChangeKey_);
|
||||||
this.sourceChangeKey_ = null;
|
this.sourceChangeKey_ = null;
|
||||||
}
|
}
|
||||||
var source = this.getSource();
|
var source = this.getSource();
|
||||||
if (source) {
|
if (source) {
|
||||||
this.sourceChangeKey_ = goog.events.listen(source,
|
this.sourceChangeKey_ = ol.events.listen(source,
|
||||||
goog.events.EventType.CHANGE, this.handleSourceChange_, false, this);
|
ol.events.EventType.CHANGE, this.handleSourceChange_, this);
|
||||||
}
|
}
|
||||||
this.changed();
|
this.changed();
|
||||||
};
|
};
|
||||||
@@ -164,24 +164,28 @@ ol.layer.Layer.prototype.handleSourcePropertyChange_ = function() {
|
|||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.layer.Layer.prototype.setMap = function(map) {
|
ol.layer.Layer.prototype.setMap = function(map) {
|
||||||
goog.events.unlistenByKey(this.mapPrecomposeKey_);
|
if (this.mapPrecomposeKey_) {
|
||||||
this.mapPrecomposeKey_ = null;
|
ol.events.unlistenByKey(this.mapPrecomposeKey_);
|
||||||
|
this.mapPrecomposeKey_ = null;
|
||||||
|
}
|
||||||
if (!map) {
|
if (!map) {
|
||||||
this.changed();
|
this.changed();
|
||||||
}
|
}
|
||||||
goog.events.unlistenByKey(this.mapRenderKey_);
|
if (this.mapRenderKey_) {
|
||||||
this.mapRenderKey_ = null;
|
ol.events.unlistenByKey(this.mapRenderKey_);
|
||||||
|
this.mapRenderKey_ = null;
|
||||||
|
}
|
||||||
if (map) {
|
if (map) {
|
||||||
this.mapPrecomposeKey_ = goog.events.listen(
|
this.mapPrecomposeKey_ = ol.events.listen(
|
||||||
map, ol.render.EventType.PRECOMPOSE, function(evt) {
|
map, ol.render.EventType.PRECOMPOSE, function(evt) {
|
||||||
var layerState = this.getLayerState();
|
var layerState = this.getLayerState();
|
||||||
layerState.managed = false;
|
layerState.managed = false;
|
||||||
layerState.zIndex = Infinity;
|
layerState.zIndex = Infinity;
|
||||||
evt.frameState.layerStatesArray.push(layerState);
|
evt.frameState.layerStatesArray.push(layerState);
|
||||||
evt.frameState.layerStates[goog.getUid(this)] = layerState;
|
evt.frameState.layerStates[goog.getUid(this)] = layerState;
|
||||||
}, false, this);
|
}, this);
|
||||||
this.mapRenderKey_ = goog.events.listen(
|
this.mapRenderKey_ = ol.events.listen(
|
||||||
this, goog.events.EventType.CHANGE, map.render, false, map);
|
this, ol.events.EventType.CHANGE, map.render, map);
|
||||||
this.changed();
|
this.changed();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
+22
-22
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.layer.Group');
|
goog.provide('ol.layer.Group');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
goog.require('ol.CollectionEvent');
|
goog.require('ol.CollectionEvent');
|
||||||
@@ -46,19 +46,19 @@ ol.layer.Group = function(opt_options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.layersListenerKeys_ = [];
|
this.layersListenerKeys_ = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Object.<string, Array.<goog.events.Key>>}
|
* @type {Object.<string, Array.<ol.events.Key>>}
|
||||||
*/
|
*/
|
||||||
this.listenerKeys_ = {};
|
this.listenerKeys_ = {};
|
||||||
|
|
||||||
goog.events.listen(this,
|
ol.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.layer.GroupProperty.LAYERS),
|
ol.Object.getChangeEventType(ol.layer.GroupProperty.LAYERS),
|
||||||
this.handleLayersChanged_, false, this);
|
this.handleLayersChanged_, this);
|
||||||
|
|
||||||
if (layers) {
|
if (layers) {
|
||||||
if (goog.isArray(layers)) {
|
if (goog.isArray(layers)) {
|
||||||
@@ -89,22 +89,22 @@ ol.layer.Group.prototype.handleLayerChange_ = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
|
ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
|
||||||
this.layersListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.layersListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.layersListenerKeys_.length = 0;
|
this.layersListenerKeys_.length = 0;
|
||||||
|
|
||||||
var layers = this.getLayers();
|
var layers = this.getLayers();
|
||||||
this.layersListenerKeys_.push(
|
this.layersListenerKeys_.push(
|
||||||
goog.events.listen(layers, ol.CollectionEventType.ADD,
|
ol.events.listen(layers, ol.CollectionEventType.ADD,
|
||||||
this.handleLayersAdd_, false, this),
|
this.handleLayersAdd_, this),
|
||||||
goog.events.listen(layers, ol.CollectionEventType.REMOVE,
|
ol.events.listen(layers, ol.CollectionEventType.REMOVE,
|
||||||
this.handleLayersRemove_, false, this));
|
this.handleLayersRemove_, this));
|
||||||
|
|
||||||
goog.object.forEach(this.listenerKeys_, function(keys) {
|
goog.object.forEach(this.listenerKeys_, function(keys) {
|
||||||
keys.forEach(goog.events.unlistenByKey);
|
keys.forEach(ol.events.unlistenByKey);
|
||||||
});
|
});
|
||||||
goog.object.clear(this.listenerKeys_);
|
goog.object.clear(this.listenerKeys_);
|
||||||
|
|
||||||
@@ -113,10 +113,10 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
|
|||||||
for (i = 0, ii = layersArray.length; i < ii; i++) {
|
for (i = 0, ii = layersArray.length; i < ii; i++) {
|
||||||
layer = layersArray[i];
|
layer = layersArray[i];
|
||||||
this.listenerKeys_[goog.getUid(layer).toString()] = [
|
this.listenerKeys_[goog.getUid(layer).toString()] = [
|
||||||
goog.events.listen(layer, ol.ObjectEventType.PROPERTYCHANGE,
|
ol.events.listen(layer, ol.ObjectEventType.PROPERTYCHANGE,
|
||||||
this.handleLayerChange_, false, this),
|
this.handleLayerChange_, this),
|
||||||
goog.events.listen(layer, goog.events.EventType.CHANGE,
|
ol.events.listen(layer, ol.events.EventType.CHANGE,
|
||||||
this.handleLayerChange_, false, this)
|
this.handleLayerChange_, this)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,10 +134,10 @@ ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) {
|
|||||||
goog.asserts.assert(!(key in this.listenerKeys_),
|
goog.asserts.assert(!(key in this.listenerKeys_),
|
||||||
'listeners already registered');
|
'listeners already registered');
|
||||||
this.listenerKeys_[key] = [
|
this.listenerKeys_[key] = [
|
||||||
goog.events.listen(layer, ol.ObjectEventType.PROPERTYCHANGE,
|
ol.events.listen(layer, ol.ObjectEventType.PROPERTYCHANGE,
|
||||||
this.handleLayerChange_, false, this),
|
this.handleLayerChange_, this),
|
||||||
goog.events.listen(layer, goog.events.EventType.CHANGE,
|
ol.events.listen(layer, ol.events.EventType.CHANGE,
|
||||||
this.handleLayerChange_, false, this)
|
this.handleLayerChange_, this)
|
||||||
];
|
];
|
||||||
this.changed();
|
this.changed();
|
||||||
};
|
};
|
||||||
@@ -151,7 +151,7 @@ ol.layer.Group.prototype.handleLayersRemove_ = function(collectionEvent) {
|
|||||||
var layer = /** @type {ol.layer.Base} */ (collectionEvent.element);
|
var layer = /** @type {ol.layer.Base} */ (collectionEvent.element);
|
||||||
var key = goog.getUid(layer).toString();
|
var key = goog.getUid(layer).toString();
|
||||||
goog.asserts.assert(key in this.listenerKeys_, 'no listeners to unregister');
|
goog.asserts.assert(key in this.listenerKeys_, 'no listeners to unregister');
|
||||||
this.listenerKeys_[key].forEach(goog.events.unlistenByKey);
|
this.listenerKeys_[key].forEach(ol.events.unlistenByKey);
|
||||||
delete this.listenerKeys_[key];
|
delete this.listenerKeys_[key];
|
||||||
this.changed();
|
this.changed();
|
||||||
};
|
};
|
||||||
|
|||||||
+111
-90
@@ -6,20 +6,10 @@ goog.provide('ol.Map');
|
|||||||
goog.provide('ol.MapProperty');
|
goog.provide('ol.MapProperty');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.async.AnimationDelay');
|
|
||||||
goog.require('goog.async.nextTick');
|
goog.require('goog.async.nextTick');
|
||||||
goog.require('goog.debug.Console');
|
goog.require('goog.debug.Console');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.ViewportSizeMonitor');
|
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.events.BrowserEvent');
|
|
||||||
goog.require('goog.events.Event');
|
|
||||||
goog.require('goog.events.EventType');
|
|
||||||
goog.require('goog.events.KeyHandler');
|
|
||||||
goog.require('goog.events.KeyHandler.EventType');
|
|
||||||
goog.require('goog.events.MouseWheelHandler');
|
|
||||||
goog.require('goog.events.MouseWheelHandler.EventType');
|
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.log');
|
goog.require('goog.log');
|
||||||
goog.require('goog.log.Level');
|
goog.require('goog.log.Level');
|
||||||
@@ -46,6 +36,9 @@ goog.require('ol.View');
|
|||||||
goog.require('ol.ViewHint');
|
goog.require('ol.ViewHint');
|
||||||
goog.require('ol.array');
|
goog.require('ol.array');
|
||||||
goog.require('ol.control');
|
goog.require('ol.control');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.has');
|
goog.require('ol.has');
|
||||||
goog.require('ol.interaction');
|
goog.require('ol.interaction');
|
||||||
@@ -205,11 +198,17 @@ ol.Map = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.async.AnimationDelay}
|
* @type {number|undefined}
|
||||||
*/
|
*/
|
||||||
this.animationDelay_ =
|
this.animationDelayKey_;
|
||||||
new goog.async.AnimationDelay(this.renderFrame_, undefined, this);
|
|
||||||
this.registerDisposable(this.animationDelay_);
|
/**
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
this.animationDelay_ = function() {
|
||||||
|
this.animationDelayKey_ = undefined;
|
||||||
|
this.renderFrame_.call(this, Date.now());
|
||||||
|
}.bind(this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
@@ -244,13 +243,13 @@ ol.Map = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.viewPropertyListenerKey_ = null;
|
this.viewPropertyListenerKey_ = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.layerGroupPropertyListenerKeys_ = null;
|
this.layerGroupPropertyListenerKeys_ = null;
|
||||||
|
|
||||||
@@ -285,21 +284,26 @@ ol.Map = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.overlayContainerStopEvent_ = document.createElement('DIV');
|
this.overlayContainerStopEvent_ = document.createElement('DIV');
|
||||||
this.overlayContainerStopEvent_.className = 'ol-overlaycontainer-stopevent';
|
this.overlayContainerStopEvent_.className = 'ol-overlaycontainer-stopevent';
|
||||||
goog.events.listen(this.overlayContainerStopEvent_, [
|
var overlayEvents = [
|
||||||
goog.events.EventType.CLICK,
|
ol.events.EventType.CLICK,
|
||||||
goog.events.EventType.DBLCLICK,
|
ol.events.EventType.DBLCLICK,
|
||||||
goog.events.EventType.MOUSEDOWN,
|
ol.events.EventType.MOUSEDOWN,
|
||||||
goog.events.EventType.TOUCHSTART,
|
ol.events.EventType.TOUCHSTART,
|
||||||
goog.events.EventType.MSPOINTERDOWN,
|
ol.events.EventType.MSPOINTERDOWN,
|
||||||
ol.MapBrowserEvent.EventType.POINTERDOWN,
|
ol.MapBrowserEvent.EventType.POINTERDOWN,
|
||||||
goog.userAgent.GECKO ? 'DOMMouseScroll' : 'mousewheel'
|
goog.userAgent.GECKO ? 'DOMMouseScroll' : ol.events.EventType.MOUSEWHEEL
|
||||||
], goog.events.Event.stopPropagation);
|
];
|
||||||
|
for (var i = 0, ii = overlayEvents.length; i < ii; ++i) {
|
||||||
|
ol.events.listen(this.overlayContainerStopEvent_, overlayEvents[i],
|
||||||
|
ol.events.Event.stopPropagation);
|
||||||
|
}
|
||||||
this.viewport_.appendChild(this.overlayContainerStopEvent_);
|
this.viewport_.appendChild(this.overlayContainerStopEvent_);
|
||||||
|
|
||||||
var mapBrowserEventHandler = new ol.MapBrowserEventHandler(this);
|
var mapBrowserEventHandler = new ol.MapBrowserEventHandler(this);
|
||||||
goog.events.listen(mapBrowserEventHandler,
|
for (var key in ol.MapBrowserEvent.EventType) {
|
||||||
goog.object.getValues(ol.MapBrowserEvent.EventType),
|
ol.events.listen(mapBrowserEventHandler, ol.MapBrowserEvent.EventType[key],
|
||||||
this.handleMapBrowserEvent, false, this);
|
this.handleMapBrowserEvent, this);
|
||||||
|
}
|
||||||
this.registerDisposable(mapBrowserEventHandler);
|
this.registerDisposable(mapBrowserEventHandler);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -310,18 +314,14 @@ ol.Map = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.KeyHandler}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.keyHandler_ = new goog.events.KeyHandler();
|
this.keyHandlerKeys_ = null;
|
||||||
goog.events.listen(this.keyHandler_, goog.events.KeyHandler.EventType.KEY,
|
|
||||||
this.handleBrowserEvent, false, this);
|
|
||||||
this.registerDisposable(this.keyHandler_);
|
|
||||||
|
|
||||||
var mouseWheelHandler = new goog.events.MouseWheelHandler(this.viewport_);
|
ol.events.listen(this.viewport_, ol.events.EventType.WHEEL,
|
||||||
goog.events.listen(mouseWheelHandler,
|
this.handleBrowserEvent, this);
|
||||||
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL,
|
ol.events.listen(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
||||||
this.handleBrowserEvent, false, this);
|
this.handleBrowserEvent, this);
|
||||||
this.registerDisposable(mouseWheelHandler);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {ol.Collection.<ol.control.Control>}
|
* @type {ol.Collection.<ol.control.Control>}
|
||||||
@@ -357,17 +357,10 @@ ol.Map = function(options) {
|
|||||||
this.registerDisposable(this.renderer_);
|
this.registerDisposable(this.renderer_);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {goog.dom.ViewportSizeMonitor}
|
* @type {function(Event)|undefined}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.viewportSizeMonitor_ = new goog.dom.ViewportSizeMonitor();
|
this.handleResize_;
|
||||||
this.registerDisposable(this.viewportSizeMonitor_);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {goog.events.Key}
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
this.viewportResizeListenerKey_ = null;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
@@ -402,15 +395,15 @@ ol.Map = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.skippedFeatureUids_ = {};
|
this.skippedFeatureUids_ = {};
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.MapProperty.LAYERGROUP),
|
this, ol.Object.getChangeEventType(ol.MapProperty.LAYERGROUP),
|
||||||
this.handleLayerGroupChanged_, false, this);
|
this.handleLayerGroupChanged_, this);
|
||||||
goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.VIEW),
|
ol.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.VIEW),
|
||||||
this.handleViewChanged_, false, this);
|
this.handleViewChanged_, this);
|
||||||
goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.SIZE),
|
ol.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.SIZE),
|
||||||
this.handleSizeChanged_, false, this);
|
this.handleSizeChanged_, this);
|
||||||
goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.TARGET),
|
ol.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.TARGET),
|
||||||
this.handleTargetChanged_, false, this);
|
this.handleTargetChanged_, this);
|
||||||
|
|
||||||
// setProperties will trigger the rendering of the map if the map
|
// setProperties will trigger the rendering of the map if the map
|
||||||
// is "defined" already.
|
// is "defined" already.
|
||||||
@@ -425,21 +418,21 @@ ol.Map = function(options) {
|
|||||||
control.setMap(this);
|
control.setMap(this);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
goog.events.listen(this.controls_, ol.CollectionEventType.ADD,
|
ol.events.listen(this.controls_, ol.CollectionEventType.ADD,
|
||||||
/**
|
/**
|
||||||
* @param {ol.CollectionEvent} event Collection event.
|
* @param {ol.CollectionEvent} event Collection event.
|
||||||
*/
|
*/
|
||||||
function(event) {
|
function(event) {
|
||||||
event.element.setMap(this);
|
event.element.setMap(this);
|
||||||
}, false, this);
|
}, this);
|
||||||
|
|
||||||
goog.events.listen(this.controls_, ol.CollectionEventType.REMOVE,
|
ol.events.listen(this.controls_, ol.CollectionEventType.REMOVE,
|
||||||
/**
|
/**
|
||||||
* @param {ol.CollectionEvent} event Collection event.
|
* @param {ol.CollectionEvent} event Collection event.
|
||||||
*/
|
*/
|
||||||
function(event) {
|
function(event) {
|
||||||
event.element.setMap(null);
|
event.element.setMap(null);
|
||||||
}, false, this);
|
}, this);
|
||||||
|
|
||||||
this.interactions_.forEach(
|
this.interactions_.forEach(
|
||||||
/**
|
/**
|
||||||
@@ -450,33 +443,33 @@ ol.Map = function(options) {
|
|||||||
interaction.setMap(this);
|
interaction.setMap(this);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
goog.events.listen(this.interactions_, ol.CollectionEventType.ADD,
|
ol.events.listen(this.interactions_, ol.CollectionEventType.ADD,
|
||||||
/**
|
/**
|
||||||
* @param {ol.CollectionEvent} event Collection event.
|
* @param {ol.CollectionEvent} event Collection event.
|
||||||
*/
|
*/
|
||||||
function(event) {
|
function(event) {
|
||||||
event.element.setMap(this);
|
event.element.setMap(this);
|
||||||
}, false, this);
|
}, this);
|
||||||
|
|
||||||
goog.events.listen(this.interactions_, ol.CollectionEventType.REMOVE,
|
ol.events.listen(this.interactions_, ol.CollectionEventType.REMOVE,
|
||||||
/**
|
/**
|
||||||
* @param {ol.CollectionEvent} event Collection event.
|
* @param {ol.CollectionEvent} event Collection event.
|
||||||
*/
|
*/
|
||||||
function(event) {
|
function(event) {
|
||||||
event.element.setMap(null);
|
event.element.setMap(null);
|
||||||
}, false, this);
|
}, this);
|
||||||
|
|
||||||
this.overlays_.forEach(this.addOverlayInternal_, this);
|
this.overlays_.forEach(this.addOverlayInternal_, this);
|
||||||
|
|
||||||
goog.events.listen(this.overlays_, ol.CollectionEventType.ADD,
|
ol.events.listen(this.overlays_, ol.CollectionEventType.ADD,
|
||||||
/**
|
/**
|
||||||
* @param {ol.CollectionEvent} event Collection event.
|
* @param {ol.CollectionEvent} event Collection event.
|
||||||
*/
|
*/
|
||||||
function(event) {
|
function(event) {
|
||||||
this.addOverlayInternal_(/** @type {ol.Overlay} */ (event.element));
|
this.addOverlayInternal_(/** @type {ol.Overlay} */ (event.element));
|
||||||
}, false, this);
|
}, this);
|
||||||
|
|
||||||
goog.events.listen(this.overlays_, ol.CollectionEventType.REMOVE,
|
ol.events.listen(this.overlays_, ol.CollectionEventType.REMOVE,
|
||||||
/**
|
/**
|
||||||
* @param {ol.CollectionEvent} event Collection event.
|
* @param {ol.CollectionEvent} event Collection event.
|
||||||
*/
|
*/
|
||||||
@@ -486,7 +479,7 @@ ol.Map = function(options) {
|
|||||||
delete this.overlayIdIndex_[id.toString()];
|
delete this.overlayIdIndex_[id.toString()];
|
||||||
}
|
}
|
||||||
event.element.setMap(null);
|
event.element.setMap(null);
|
||||||
}, false, this);
|
}, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.Map, ol.Object);
|
goog.inherits(ol.Map, ol.Object);
|
||||||
@@ -583,6 +576,19 @@ ol.Map.prototype.removePreRenderFunction = function(preRenderFunction) {
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.disposeInternal = function() {
|
ol.Map.prototype.disposeInternal = function() {
|
||||||
|
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
|
||||||
|
this.handleBrowserEvent, this);
|
||||||
|
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
||||||
|
this.handleBrowserEvent, this);
|
||||||
|
if (this.handleResize_ !== undefined) {
|
||||||
|
goog.global.removeEventListener(ol.events.EventType.RESIZE,
|
||||||
|
this.handleResize_, false);
|
||||||
|
this.handleResize_ = undefined;
|
||||||
|
}
|
||||||
|
if (this.animationDelayKey_) {
|
||||||
|
goog.global.cancelAnimationFrame(this.animationDelayKey_);
|
||||||
|
this.animationDelayKey_ = undefined;
|
||||||
|
}
|
||||||
goog.dom.removeNode(this.viewport_);
|
goog.dom.removeNode(this.viewport_);
|
||||||
goog.base(this, 'disposeInternal');
|
goog.base(this, 'disposeInternal');
|
||||||
};
|
};
|
||||||
@@ -949,7 +955,7 @@ ol.Map.prototype.getTilePriority = function(tile, tileSourceKey, tileCenter, til
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.BrowserEvent} browserEvent Browser event.
|
* @param {Event} browserEvent Browser event.
|
||||||
* @param {string=} opt_type Type.
|
* @param {string=} opt_type Type.
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.handleBrowserEvent = function(browserEvent, opt_type) {
|
ol.Map.prototype.handleBrowserEvent = function(browserEvent, opt_type) {
|
||||||
@@ -1059,25 +1065,36 @@ ol.Map.prototype.handleTargetChanged_ = function() {
|
|||||||
|
|
||||||
var targetElement = this.getTargetElement();
|
var targetElement = this.getTargetElement();
|
||||||
|
|
||||||
this.keyHandler_.detach();
|
if (this.keyHandlerKeys_) {
|
||||||
|
for (var i = 0, ii = this.keyHandlerKeys_.length; i < ii; ++i) {
|
||||||
|
ol.events.unlistenByKey(this.keyHandlerKeys_[i]);
|
||||||
|
}
|
||||||
|
this.keyHandlerKeys_ = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!targetElement) {
|
if (!targetElement) {
|
||||||
goog.dom.removeNode(this.viewport_);
|
goog.dom.removeNode(this.viewport_);
|
||||||
if (this.viewportResizeListenerKey_) {
|
if (this.handleResize_ !== undefined) {
|
||||||
goog.events.unlistenByKey(this.viewportResizeListenerKey_);
|
goog.global.removeEventListener(ol.events.EventType.RESIZE,
|
||||||
this.viewportResizeListenerKey_ = null;
|
this.handleResize_, false);
|
||||||
|
this.handleResize_ = undefined;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
targetElement.appendChild(this.viewport_);
|
targetElement.appendChild(this.viewport_);
|
||||||
|
|
||||||
var keyboardEventTarget = !this.keyboardEventTarget_ ?
|
var keyboardEventTarget = !this.keyboardEventTarget_ ?
|
||||||
targetElement : this.keyboardEventTarget_;
|
targetElement : this.keyboardEventTarget_;
|
||||||
this.keyHandler_.attach(keyboardEventTarget);
|
this.keyHandlerKeys_ = [
|
||||||
|
ol.events.listen(keyboardEventTarget, ol.events.EventType.KEYDOWN,
|
||||||
|
this.handleBrowserEvent, this),
|
||||||
|
ol.events.listen(keyboardEventTarget, ol.events.EventType.KEYPRESS,
|
||||||
|
this.handleBrowserEvent, this)
|
||||||
|
];
|
||||||
|
|
||||||
if (!this.viewportResizeListenerKey_) {
|
if (!this.handleResize_) {
|
||||||
this.viewportResizeListenerKey_ = goog.events.listen(
|
this.handleResize_ = this.updateSize.bind(this);
|
||||||
this.viewportSizeMonitor_, goog.events.EventType.RESIZE,
|
goog.global.addEventListener(ol.events.EventType.RESIZE,
|
||||||
this.updateSize, false, this);
|
this.handleResize_, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1108,25 +1125,25 @@ ol.Map.prototype.handleViewPropertyChanged_ = function() {
|
|||||||
*/
|
*/
|
||||||
ol.Map.prototype.handleViewChanged_ = function() {
|
ol.Map.prototype.handleViewChanged_ = function() {
|
||||||
if (this.viewPropertyListenerKey_) {
|
if (this.viewPropertyListenerKey_) {
|
||||||
goog.events.unlistenByKey(this.viewPropertyListenerKey_);
|
ol.events.unlistenByKey(this.viewPropertyListenerKey_);
|
||||||
this.viewPropertyListenerKey_ = null;
|
this.viewPropertyListenerKey_ = null;
|
||||||
}
|
}
|
||||||
var view = this.getView();
|
var view = this.getView();
|
||||||
if (view) {
|
if (view) {
|
||||||
this.viewPropertyListenerKey_ = goog.events.listen(
|
this.viewPropertyListenerKey_ = ol.events.listen(
|
||||||
view, ol.ObjectEventType.PROPERTYCHANGE,
|
view, ol.ObjectEventType.PROPERTYCHANGE,
|
||||||
this.handleViewPropertyChanged_, false, this);
|
this.handleViewPropertyChanged_, this);
|
||||||
}
|
}
|
||||||
this.render();
|
this.render();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.handleLayerGroupMemberChanged_ = function(event) {
|
ol.Map.prototype.handleLayerGroupMemberChanged_ = function(event) {
|
||||||
goog.asserts.assertInstanceof(event, goog.events.Event,
|
goog.asserts.assertInstanceof(event, ol.events.Event,
|
||||||
'event should be an Event');
|
'event should be an Event');
|
||||||
this.render();
|
this.render();
|
||||||
};
|
};
|
||||||
@@ -1148,18 +1165,18 @@ ol.Map.prototype.handleLayerGroupPropertyChanged_ = function(event) {
|
|||||||
*/
|
*/
|
||||||
ol.Map.prototype.handleLayerGroupChanged_ = function() {
|
ol.Map.prototype.handleLayerGroupChanged_ = function() {
|
||||||
if (this.layerGroupPropertyListenerKeys_) {
|
if (this.layerGroupPropertyListenerKeys_) {
|
||||||
this.layerGroupPropertyListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.layerGroupPropertyListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.layerGroupPropertyListenerKeys_ = null;
|
this.layerGroupPropertyListenerKeys_ = null;
|
||||||
}
|
}
|
||||||
var layerGroup = this.getLayerGroup();
|
var layerGroup = this.getLayerGroup();
|
||||||
if (layerGroup) {
|
if (layerGroup) {
|
||||||
this.layerGroupPropertyListenerKeys_ = [
|
this.layerGroupPropertyListenerKeys_ = [
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
layerGroup, ol.ObjectEventType.PROPERTYCHANGE,
|
layerGroup, ol.ObjectEventType.PROPERTYCHANGE,
|
||||||
this.handleLayerGroupPropertyChanged_, false, this),
|
this.handleLayerGroupPropertyChanged_, this),
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
layerGroup, goog.events.EventType.CHANGE,
|
layerGroup, ol.events.EventType.CHANGE,
|
||||||
this.handleLayerGroupMemberChanged_, false, this)
|
this.handleLayerGroupMemberChanged_, this)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
this.render();
|
this.render();
|
||||||
@@ -1204,7 +1221,10 @@ ol.Map.prototype.isRendered = function() {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.renderSync = function() {
|
ol.Map.prototype.renderSync = function() {
|
||||||
this.animationDelay_.fire();
|
if (this.animationDelayKey_) {
|
||||||
|
goog.global.cancelAnimationFrame(this.animationDelayKey_);
|
||||||
|
}
|
||||||
|
this.animationDelay_();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1213,8 +1233,9 @@ ol.Map.prototype.renderSync = function() {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.render = function() {
|
ol.Map.prototype.render = function() {
|
||||||
if (!this.animationDelay_.isActive()) {
|
if (this.animationDelayKey_ === undefined) {
|
||||||
this.animationDelay_.start();
|
this.animationDelayKey_ = goog.global.requestAnimationFrame(
|
||||||
|
this.animationDelay_);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+29
-36
@@ -4,10 +4,9 @@ goog.provide('ol.MapBrowserEventHandler');
|
|||||||
goog.provide('ol.MapBrowserPointerEvent');
|
goog.provide('ol.MapBrowserPointerEvent');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.BrowserEvent');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('goog.events.EventTarget');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.events.EventType');
|
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
@@ -27,7 +26,7 @@ goog.require('ol.pointer.PointerEventHandler');
|
|||||||
* @implements {oli.MapBrowserEvent}
|
* @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 {Event} browserEvent Browser event.
|
||||||
* @param {boolean=} opt_dragging Is the map currently being dragged?
|
* @param {boolean=} opt_dragging Is the map currently being dragged?
|
||||||
* @param {?olx.FrameState=} opt_frameState Frame state.
|
* @param {?olx.FrameState=} opt_frameState Frame state.
|
||||||
*/
|
*/
|
||||||
@@ -36,26 +35,20 @@ ol.MapBrowserEvent = function(type, map, browserEvent, opt_dragging,
|
|||||||
|
|
||||||
goog.base(this, type, map, opt_frameState);
|
goog.base(this, type, map, opt_frameState);
|
||||||
|
|
||||||
/**
|
|
||||||
* @const
|
|
||||||
* @type {goog.events.BrowserEvent}
|
|
||||||
*/
|
|
||||||
this.browserEvent = browserEvent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The original browser event.
|
* The original browser event.
|
||||||
* @const
|
* @const
|
||||||
* @type {Event}
|
* @type {Event}
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
this.originalEvent = browserEvent.getBrowserEvent();
|
this.originalEvent = browserEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The pixel of the original browser event.
|
* The pixel of the original browser event.
|
||||||
* @type {ol.Pixel}
|
* @type {ol.Pixel}
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
this.pixel = map.getEventPixel(this.originalEvent);
|
this.pixel = map.getEventPixel(browserEvent);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The coordinate of the original browser event.
|
* The coordinate of the original browser event.
|
||||||
@@ -85,7 +78,7 @@ goog.inherits(ol.MapBrowserEvent, ol.MapEvent);
|
|||||||
*/
|
*/
|
||||||
ol.MapBrowserEvent.prototype.preventDefault = function() {
|
ol.MapBrowserEvent.prototype.preventDefault = function() {
|
||||||
goog.base(this, 'preventDefault');
|
goog.base(this, 'preventDefault');
|
||||||
this.browserEvent.preventDefault();
|
this.originalEvent.preventDefault();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -97,7 +90,7 @@ ol.MapBrowserEvent.prototype.preventDefault = function() {
|
|||||||
*/
|
*/
|
||||||
ol.MapBrowserEvent.prototype.stopPropagation = function() {
|
ol.MapBrowserEvent.prototype.stopPropagation = function() {
|
||||||
goog.base(this, 'stopPropagation');
|
goog.base(this, 'stopPropagation');
|
||||||
this.browserEvent.stopPropagation();
|
this.originalEvent.stopPropagation();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -113,7 +106,7 @@ ol.MapBrowserEvent.prototype.stopPropagation = function() {
|
|||||||
ol.MapBrowserPointerEvent = function(type, map, pointerEvent, opt_dragging,
|
ol.MapBrowserPointerEvent = function(type, map, pointerEvent, opt_dragging,
|
||||||
opt_frameState) {
|
opt_frameState) {
|
||||||
|
|
||||||
goog.base(this, type, map, pointerEvent.browserEvent, opt_dragging,
|
goog.base(this, type, map, pointerEvent.originalEvent, opt_dragging,
|
||||||
opt_frameState);
|
opt_frameState);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -129,7 +122,7 @@ goog.inherits(ol.MapBrowserPointerEvent, ol.MapBrowserEvent);
|
|||||||
/**
|
/**
|
||||||
* @param {ol.Map} map The map with the viewport to listen to events on.
|
* @param {ol.Map} map The map with the viewport to listen to events on.
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
*/
|
*/
|
||||||
ol.MapBrowserEventHandler = function(map) {
|
ol.MapBrowserEventHandler = function(map) {
|
||||||
|
|
||||||
@@ -155,13 +148,13 @@ ol.MapBrowserEventHandler = function(map) {
|
|||||||
this.dragging_ = false;
|
this.dragging_ = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.dragListenerKeys_ = null;
|
this.dragListenerKeys_ = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.pointerdownListenerKey_ = null;
|
this.pointerdownListenerKey_ = null;
|
||||||
@@ -206,16 +199,16 @@ ol.MapBrowserEventHandler = function(map) {
|
|||||||
*/
|
*/
|
||||||
this.documentPointerEventHandler_ = null;
|
this.documentPointerEventHandler_ = null;
|
||||||
|
|
||||||
this.pointerdownListenerKey_ = goog.events.listen(this.pointerEventHandler_,
|
this.pointerdownListenerKey_ = ol.events.listen(this.pointerEventHandler_,
|
||||||
ol.pointer.EventType.POINTERDOWN,
|
ol.pointer.EventType.POINTERDOWN,
|
||||||
this.handlePointerDown_, false, this);
|
this.handlePointerDown_, this);
|
||||||
|
|
||||||
this.relayedListenerKey_ = goog.events.listen(this.pointerEventHandler_,
|
this.relayedListenerKey_ = ol.events.listen(this.pointerEventHandler_,
|
||||||
ol.pointer.EventType.POINTERMOVE,
|
ol.pointer.EventType.POINTERMOVE,
|
||||||
this.relayEvent_, false, this);
|
this.relayEvent_, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.MapBrowserEventHandler, goog.events.EventTarget);
|
goog.inherits(ol.MapBrowserEventHandler, ol.events.EventTarget);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -287,7 +280,7 @@ ol.MapBrowserEventHandler.prototype.handlePointerUp_ = function(pointerEvent) {
|
|||||||
goog.asserts.assert(this.activePointers_ >= 0,
|
goog.asserts.assert(this.activePointers_ >= 0,
|
||||||
'this.activePointers_ should be equal to or larger than 0');
|
'this.activePointers_ should be equal to or larger than 0');
|
||||||
if (this.activePointers_ === 0) {
|
if (this.activePointers_ === 0) {
|
||||||
this.dragListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.dragListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.dragListenerKeys_ = null;
|
this.dragListenerKeys_ = null;
|
||||||
this.dragging_ = false;
|
this.dragging_ = false;
|
||||||
this.down_ = null;
|
this.down_ = null;
|
||||||
@@ -328,12 +321,12 @@ ol.MapBrowserEventHandler.prototype.handlePointerDown_ = function(pointerEvent)
|
|||||||
new ol.pointer.PointerEventHandler(document);
|
new ol.pointer.PointerEventHandler(document);
|
||||||
|
|
||||||
this.dragListenerKeys_ = [
|
this.dragListenerKeys_ = [
|
||||||
goog.events.listen(this.documentPointerEventHandler_,
|
ol.events.listen(this.documentPointerEventHandler_,
|
||||||
ol.MapBrowserEvent.EventType.POINTERMOVE,
|
ol.MapBrowserEvent.EventType.POINTERMOVE,
|
||||||
this.handlePointerMove_, false, this),
|
this.handlePointerMove_, this),
|
||||||
goog.events.listen(this.documentPointerEventHandler_,
|
ol.events.listen(this.documentPointerEventHandler_,
|
||||||
ol.MapBrowserEvent.EventType.POINTERUP,
|
ol.MapBrowserEvent.EventType.POINTERUP,
|
||||||
this.handlePointerUp_, false, this),
|
this.handlePointerUp_, this),
|
||||||
/* Note that the listener for `pointercancel is set up on
|
/* Note that the listener for `pointercancel is set up on
|
||||||
* `pointerEventHandler_` and not `documentPointerEventHandler_` like
|
* `pointerEventHandler_` and not `documentPointerEventHandler_` like
|
||||||
* the `pointerup` and `pointermove` listeners.
|
* the `pointerup` and `pointermove` listeners.
|
||||||
@@ -347,9 +340,9 @@ ol.MapBrowserEventHandler.prototype.handlePointerDown_ = function(pointerEvent)
|
|||||||
* only receive a `touchcancel` from `pointerEventHandler_`, because it is
|
* only receive a `touchcancel` from `pointerEventHandler_`, because it is
|
||||||
* only registered there.
|
* only registered there.
|
||||||
*/
|
*/
|
||||||
goog.events.listen(this.pointerEventHandler_,
|
ol.events.listen(this.pointerEventHandler_,
|
||||||
ol.MapBrowserEvent.EventType.POINTERCANCEL,
|
ol.MapBrowserEvent.EventType.POINTERCANCEL,
|
||||||
this.handlePointerUp_, false, this)
|
this.handlePointerUp_, this)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -410,15 +403,15 @@ ol.MapBrowserEventHandler.prototype.isMoving_ = function(pointerEvent) {
|
|||||||
*/
|
*/
|
||||||
ol.MapBrowserEventHandler.prototype.disposeInternal = function() {
|
ol.MapBrowserEventHandler.prototype.disposeInternal = function() {
|
||||||
if (this.relayedListenerKey_) {
|
if (this.relayedListenerKey_) {
|
||||||
goog.events.unlistenByKey(this.relayedListenerKey_);
|
ol.events.unlistenByKey(this.relayedListenerKey_);
|
||||||
this.relayedListenerKey_ = null;
|
this.relayedListenerKey_ = null;
|
||||||
}
|
}
|
||||||
if (this.pointerdownListenerKey_) {
|
if (this.pointerdownListenerKey_) {
|
||||||
goog.events.unlistenByKey(this.pointerdownListenerKey_);
|
ol.events.unlistenByKey(this.pointerdownListenerKey_);
|
||||||
this.pointerdownListenerKey_ = null;
|
this.pointerdownListenerKey_ = null;
|
||||||
}
|
}
|
||||||
if (this.dragListenerKeys_) {
|
if (this.dragListenerKeys_) {
|
||||||
this.dragListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.dragListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.dragListenerKeys_ = null;
|
this.dragListenerKeys_ = null;
|
||||||
}
|
}
|
||||||
if (this.documentPointerEventHandler_) {
|
if (this.documentPointerEventHandler_) {
|
||||||
@@ -452,14 +445,14 @@ ol.MapBrowserEvent.EventType = {
|
|||||||
* @event ol.MapBrowserEvent#click
|
* @event ol.MapBrowserEvent#click
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
CLICK: goog.events.EventType.CLICK,
|
CLICK: ol.events.EventType.CLICK,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A true double click, with no dragging.
|
* A true double click, with no dragging.
|
||||||
* @event ol.MapBrowserEvent#dblclick
|
* @event ol.MapBrowserEvent#dblclick
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
DBLCLICK: goog.events.EventType.DBLCLICK,
|
DBLCLICK: ol.events.EventType.DBLCLICK,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggered when a pointer is dragged.
|
* Triggered when a pointer is dragged.
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.MapEvent');
|
goog.provide('ol.MapEvent');
|
||||||
goog.provide('ol.MapEventType');
|
goog.provide('ol.MapEventType');
|
||||||
|
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,7 +32,7 @@ ol.MapEventType = {
|
|||||||
* See {@link ol.Map} for which events trigger a map event.
|
* See {@link ol.Map} for which events trigger a map event.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.MapEvent}
|
* @implements {oli.MapEvent}
|
||||||
* @param {string} type Event type.
|
* @param {string} type Event type.
|
||||||
* @param {ol.Map} map Map.
|
* @param {ol.Map} map Map.
|
||||||
@@ -57,4 +57,4 @@ ol.MapEvent = function(type, map, opt_frameState) {
|
|||||||
this.frameState = opt_frameState !== undefined ? opt_frameState : null;
|
this.frameState = opt_frameState !== undefined ? opt_frameState : null;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.MapEvent, goog.events.Event);
|
goog.inherits(ol.MapEvent, ol.events.Event);
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
goog.provide('ol.net');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple JSONP helper. Supports error callbacks and a custom callback param.
|
||||||
|
* The error callback will be called when no JSONP is executed after 10 seconds.
|
||||||
|
*
|
||||||
|
* @param {string} url Request url. A 'callback' query parameter will be
|
||||||
|
* appended.
|
||||||
|
* @param {Function} callback Callback on success.
|
||||||
|
* @param {function()=} opt_errback Callback on error.
|
||||||
|
* @param {string=} opt_callbackParam Custom qurey parameter for the JSONP
|
||||||
|
* callback. Default is 'callback'.
|
||||||
|
*/
|
||||||
|
ol.net.jsonp = function(url, callback, opt_errback, opt_callbackParam) {
|
||||||
|
var script = goog.global.document.createElement('script');
|
||||||
|
var key = 'olc_' + goog.getUid(callback);
|
||||||
|
function cleanup() {
|
||||||
|
delete goog.global[key];
|
||||||
|
script.parentNode.removeChild(script);
|
||||||
|
}
|
||||||
|
script.async = true;
|
||||||
|
script.src = url + (url.indexOf('?') == -1 ? '?' : '&') +
|
||||||
|
(opt_callbackParam || 'callback') + '=' + key;
|
||||||
|
var timer = goog.global.setTimeout(function() {
|
||||||
|
cleanup();
|
||||||
|
if (opt_errback) {
|
||||||
|
opt_errback();
|
||||||
|
}
|
||||||
|
}, 10000);
|
||||||
|
goog.global[key] = function(data) {
|
||||||
|
goog.global.clearTimeout(timer);
|
||||||
|
cleanup();
|
||||||
|
callback(data);
|
||||||
|
};
|
||||||
|
goog.global.document.getElementsByTagName('head')[0].appendChild(script);
|
||||||
|
};
|
||||||
+4
-4
@@ -2,8 +2,8 @@ goog.provide('ol.Object');
|
|||||||
goog.provide('ol.ObjectEvent');
|
goog.provide('ol.ObjectEvent');
|
||||||
goog.provide('ol.ObjectEventType');
|
goog.provide('ol.ObjectEventType');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.Observable');
|
goog.require('ol.Observable');
|
||||||
|
|
||||||
|
|
||||||
@@ -27,7 +27,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.
|
||||||
* @param {*} oldValue The old value for `key`.
|
* @param {*} oldValue The old value for `key`.
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.ObjectEvent}
|
* @implements {oli.ObjectEvent}
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
@@ -50,7 +50,7 @@ ol.ObjectEvent = function(type, key, oldValue) {
|
|||||||
this.oldValue = oldValue;
|
this.oldValue = oldValue;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.ObjectEvent, goog.events.Event);
|
goog.inherits(ol.ObjectEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+56
-15
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.Observable');
|
goog.provide('ol.Observable');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventTarget');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,7 +14,7 @@ goog.require('goog.events.EventType');
|
|||||||
* {@link ol.Observable#changed}.
|
* {@link ol.Observable#changed}.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
* @fires change
|
* @fires change
|
||||||
* @struct
|
* @struct
|
||||||
* @api stable
|
* @api stable
|
||||||
@@ -30,16 +30,23 @@ ol.Observable = function() {
|
|||||||
this.revision_ = 0;
|
this.revision_ = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.Observable, goog.events.EventTarget);
|
goog.inherits(ol.Observable, ol.events.EventTarget);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes an event listener using the key returned by `on()` or `once()`.
|
* Removes an event listener using the key returned by `on()` or `once()`.
|
||||||
* @param {goog.events.Key} key The key returned by `on()` or `once()`.
|
* @param {ol.events.Key|Array.<ol.events.Key>} key The key returned by `on()`
|
||||||
|
* or `once()` (or an array of keys).
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Observable.unByKey = function(key) {
|
ol.Observable.unByKey = function(key) {
|
||||||
goog.events.unlistenByKey(key);
|
if (Array.isArray(key)) {
|
||||||
|
for (var i = 0, ii = key.length; i < ii; ++i) {
|
||||||
|
ol.events.unlistenByKey(key[i]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ol.events.unlistenByKey(/** @type {ol.events.Key} */ (key));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -49,7 +56,7 @@ ol.Observable.unByKey = function(key) {
|
|||||||
*/
|
*/
|
||||||
ol.Observable.prototype.changed = function() {
|
ol.Observable.prototype.changed = function() {
|
||||||
++this.revision_;
|
++this.revision_;
|
||||||
this.dispatchEvent(goog.events.EventType.CHANGE);
|
this.dispatchEvent(ol.events.EventType.CHANGE);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -65,7 +72,9 @@ ol.Observable.prototype.changed = function() {
|
|||||||
* of this type. The event parameter can either be a string or an
|
* of this type. The event parameter can either be a string or an
|
||||||
* Object with a `type` property.
|
* Object with a `type` property.
|
||||||
*
|
*
|
||||||
* @param {goog.events.EventLike} event Event object.
|
* @param {{type: string,
|
||||||
|
* target: (EventTarget|ol.events.EventTarget|undefined)}|ol.events.Event|
|
||||||
|
* string} event Event object.
|
||||||
* @function
|
* @function
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
@@ -88,11 +97,23 @@ ol.Observable.prototype.getRevision = function() {
|
|||||||
* @param {string|Array.<string>} type The event type or array of event types.
|
* @param {string|Array.<string>} type The event type or array of event types.
|
||||||
* @param {function(?): ?} listener The listener function.
|
* @param {function(?): ?} listener The listener function.
|
||||||
* @param {Object=} opt_this The object to use as `this` in `listener`.
|
* @param {Object=} opt_this The object to use as `this` in `listener`.
|
||||||
* @return {goog.events.Key} Unique key for the listener.
|
* @return {ol.events.Key|Array.<ol.events.Key>} Unique key for the listener. If
|
||||||
|
* called with an array of event types as the first argument, the return
|
||||||
|
* will be an array of keys.
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Observable.prototype.on = function(type, listener, opt_this) {
|
ol.Observable.prototype.on = function(type, listener, opt_this) {
|
||||||
return goog.events.listen(this, type, listener, false, opt_this);
|
if (Array.isArray(type)) {
|
||||||
|
var len = type.length;
|
||||||
|
var keys = new Array(len);
|
||||||
|
for (var i = 0; i < len; ++i) {
|
||||||
|
keys[i] = ol.events.listen(this, type[i], listener, opt_this);
|
||||||
|
}
|
||||||
|
return keys;
|
||||||
|
} else {
|
||||||
|
return ol.events.listen(
|
||||||
|
this, /** @type {string} */ (type), listener, opt_this);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -101,11 +122,23 @@ ol.Observable.prototype.on = function(type, listener, opt_this) {
|
|||||||
* @param {string|Array.<string>} type The event type or array of event types.
|
* @param {string|Array.<string>} type The event type or array of event types.
|
||||||
* @param {function(?): ?} listener The listener function.
|
* @param {function(?): ?} listener The listener function.
|
||||||
* @param {Object=} opt_this The object to use as `this` in `listener`.
|
* @param {Object=} opt_this The object to use as `this` in `listener`.
|
||||||
* @return {goog.events.Key} Unique key for the listener.
|
* @return {ol.events.Key|Array.<ol.events.Key>} Unique key for the listener. If
|
||||||
|
* called with an array of event types as the first argument, the return
|
||||||
|
* will be an array of keys.
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Observable.prototype.once = function(type, listener, opt_this) {
|
ol.Observable.prototype.once = function(type, listener, opt_this) {
|
||||||
return goog.events.listenOnce(this, type, listener, false, opt_this);
|
if (Array.isArray(type)) {
|
||||||
|
var len = type.length;
|
||||||
|
var keys = new Array(len);
|
||||||
|
for (var i = 0; i < len; ++i) {
|
||||||
|
keys[i] = ol.events.listenOnce(this, type[i], listener, opt_this);
|
||||||
|
}
|
||||||
|
return keys;
|
||||||
|
} else {
|
||||||
|
return ol.events.listenOnce(
|
||||||
|
this, /** @type {string} */ (type), listener, opt_this);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -118,7 +151,14 @@ ol.Observable.prototype.once = function(type, listener, opt_this) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Observable.prototype.un = function(type, listener, opt_this) {
|
ol.Observable.prototype.un = function(type, listener, opt_this) {
|
||||||
goog.events.unlisten(this, type, listener, false, opt_this);
|
if (Array.isArray(type)) {
|
||||||
|
for (var i = 0, ii = type.length; i < ii; ++i) {
|
||||||
|
ol.events.unlisten(this, type[i], listener, opt_this);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
ol.events.unlisten(this, /** @type {string} */ (type), listener, opt_this);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -126,7 +166,8 @@ ol.Observable.prototype.un = function(type, listener, opt_this) {
|
|||||||
* Removes an event listener using the key returned by `on()` or `once()`.
|
* Removes an event listener using the key returned by `on()` or `once()`.
|
||||||
* Note that using the {@link ol.Observable.unByKey} static function is to
|
* Note that using the {@link ol.Observable.unByKey} static function is to
|
||||||
* be preferred.
|
* be preferred.
|
||||||
* @param {goog.events.Key} key The key returned by `on()` or `once()`.
|
* @param {ol.events.Key|Array.<ol.events.Key>} key The key returned by `on()`
|
||||||
|
* or `once()` (or an array of keys).
|
||||||
* @function
|
* @function
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
|
|||||||
+15
-15
@@ -4,7 +4,7 @@ goog.provide('ol.OverlayProperty');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
@@ -137,29 +137,29 @@ ol.Overlay = function(options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.mapPostrenderListenerKey_ = null;
|
this.mapPostrenderListenerKey_ = null;
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.OverlayProperty.ELEMENT),
|
this, ol.Object.getChangeEventType(ol.OverlayProperty.ELEMENT),
|
||||||
this.handleElementChanged, false, this);
|
this.handleElementChanged, this);
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.OverlayProperty.MAP),
|
this, ol.Object.getChangeEventType(ol.OverlayProperty.MAP),
|
||||||
this.handleMapChanged, false, this);
|
this.handleMapChanged, this);
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.OverlayProperty.OFFSET),
|
this, ol.Object.getChangeEventType(ol.OverlayProperty.OFFSET),
|
||||||
this.handleOffsetChanged, false, this);
|
this.handleOffsetChanged, this);
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.OverlayProperty.POSITION),
|
this, ol.Object.getChangeEventType(ol.OverlayProperty.POSITION),
|
||||||
this.handlePositionChanged, false, this);
|
this.handlePositionChanged, this);
|
||||||
|
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
this, ol.Object.getChangeEventType(ol.OverlayProperty.POSITIONING),
|
this, ol.Object.getChangeEventType(ol.OverlayProperty.POSITIONING),
|
||||||
this.handlePositioningChanged, false, this);
|
this.handlePositioningChanged, this);
|
||||||
|
|
||||||
if (options.element !== undefined) {
|
if (options.element !== undefined) {
|
||||||
this.setElement(options.element);
|
this.setElement(options.element);
|
||||||
@@ -269,13 +269,13 @@ ol.Overlay.prototype.handleElementChanged = function() {
|
|||||||
ol.Overlay.prototype.handleMapChanged = function() {
|
ol.Overlay.prototype.handleMapChanged = function() {
|
||||||
if (this.mapPostrenderListenerKey_) {
|
if (this.mapPostrenderListenerKey_) {
|
||||||
goog.dom.removeNode(this.element_);
|
goog.dom.removeNode(this.element_);
|
||||||
goog.events.unlistenByKey(this.mapPostrenderListenerKey_);
|
ol.events.unlistenByKey(this.mapPostrenderListenerKey_);
|
||||||
this.mapPostrenderListenerKey_ = null;
|
this.mapPostrenderListenerKey_ = null;
|
||||||
}
|
}
|
||||||
var map = this.getMap();
|
var map = this.getMap();
|
||||||
if (map) {
|
if (map) {
|
||||||
this.mapPostrenderListenerKey_ = goog.events.listen(map,
|
this.mapPostrenderListenerKey_ = ol.events.listen(map,
|
||||||
ol.MapEventType.POSTRENDER, this.render, false, this);
|
ol.MapEventType.POSTRENDER, this.render, this);
|
||||||
this.updatePixelPosition();
|
this.updatePixelPosition();
|
||||||
var container = this.stopEvent_ ?
|
var container = this.stopEvent_ ?
|
||||||
map.getOverlayContainerStopEvent() : map.getOverlayContainer();
|
map.getOverlayContainerStopEvent() : map.getOverlayContainer();
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
goog.provide('ol.pointer.EventSource');
|
goog.provide('ol.pointer.EventSource');
|
||||||
|
|
||||||
goog.require('goog.events.BrowserEvent');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.pointer.PointerEventHandler} dispatcher Event handler.
|
* @param {ol.pointer.PointerEventHandler} dispatcher Event handler.
|
||||||
* @param {!Object.<string, function(goog.events.BrowserEvent)>} mapping Event
|
* @param {!Object.<string, function(Event)>} mapping Event
|
||||||
* mapping.
|
* mapping.
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
@@ -18,7 +16,7 @@ ol.pointer.EventSource = function(dispatcher, mapping) {
|
|||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @const
|
* @const
|
||||||
* @type {!Object.<string, function(goog.events.BrowserEvent)>}
|
* @type {!Object.<string, function(Event)>}
|
||||||
*/
|
*/
|
||||||
this.mapping_ = mapping;
|
this.mapping_ = mapping;
|
||||||
};
|
};
|
||||||
@@ -36,7 +34,7 @@ ol.pointer.EventSource.prototype.getEvents = function() {
|
|||||||
/**
|
/**
|
||||||
* Returns a mapping between the supported event types and
|
* Returns a mapping between the supported event types and
|
||||||
* the handlers that should handle an event.
|
* the handlers that should handle an event.
|
||||||
* @return {Object.<string, function(goog.events.BrowserEvent)>}
|
* @return {Object.<string, function(Event)>}
|
||||||
* Event/Handler mapping
|
* Event/Handler mapping
|
||||||
*/
|
*/
|
||||||
ol.pointer.EventSource.prototype.getMapping = function() {
|
ol.pointer.EventSource.prototype.getMapping = function() {
|
||||||
@@ -47,7 +45,7 @@ ol.pointer.EventSource.prototype.getMapping = function() {
|
|||||||
/**
|
/**
|
||||||
* Returns the handler that should handle a given event type.
|
* Returns the handler that should handle a given event type.
|
||||||
* @param {string} eventType The event type.
|
* @param {string} eventType The event type.
|
||||||
* @return {function(goog.events.BrowserEvent)} Handler
|
* @return {function(Event)} Handler
|
||||||
*/
|
*/
|
||||||
ol.pointer.EventSource.prototype.getHandlerForEvent = function(eventType) {
|
ol.pointer.EventSource.prototype.getHandlerForEvent = function(eventType) {
|
||||||
return this.mapping_[eventType];
|
return this.mapping_[eventType];
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ ol.pointer.MouseSource = function(dispatcher) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {!Object.<string, goog.events.BrowserEvent|Object>}
|
* @type {!Object.<string, Event|Object>}
|
||||||
*/
|
*/
|
||||||
this.pointerMap = dispatcher.pointerMap;
|
this.pointerMap = dispatcher.pointerMap;
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ ol.pointer.MouseSource.DEDUP_DIST = 25;
|
|||||||
* or detect that the positions are invalid.
|
* or detect that the positions are invalid.
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
* @return {boolean} True, if the event was generated by a touch.
|
* @return {boolean} True, if the event was generated by a touch.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.isEventSimulatedFromTouch_ = function(inEvent) {
|
ol.pointer.MouseSource.prototype.isEventSimulatedFromTouch_ = function(inEvent) {
|
||||||
@@ -129,12 +129,12 @@ ol.pointer.MouseSource.prototype.isEventSimulatedFromTouch_ = function(inEvent)
|
|||||||
* Creates a copy of the original event that will be used
|
* Creates a copy of the original event that will be used
|
||||||
* for the fake pointer event.
|
* for the fake pointer event.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
* @param {ol.pointer.PointerEventHandler} dispatcher Event handler.
|
* @param {ol.pointer.PointerEventHandler} dispatcher Event handler.
|
||||||
* @return {Object} The copied event.
|
* @return {Object} The copied event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prepareEvent = function(inEvent, dispatcher) {
|
ol.pointer.MouseSource.prepareEvent = function(inEvent, dispatcher) {
|
||||||
var e = dispatcher.cloneEvent(inEvent, inEvent.getBrowserEvent());
|
var e = dispatcher.cloneEvent(inEvent, inEvent);
|
||||||
|
|
||||||
// forward mouse preventDefault
|
// forward mouse preventDefault
|
||||||
var pd = e.preventDefault;
|
var pd = e.preventDefault;
|
||||||
@@ -154,7 +154,7 @@ ol.pointer.MouseSource.prepareEvent = function(inEvent, dispatcher) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `mousedown`.
|
* Handler for `mousedown`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.mousedown = function(inEvent) {
|
ol.pointer.MouseSource.prototype.mousedown = function(inEvent) {
|
||||||
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
||||||
@@ -173,7 +173,7 @@ ol.pointer.MouseSource.prototype.mousedown = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `mousemove`.
|
* Handler for `mousemove`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.mousemove = function(inEvent) {
|
ol.pointer.MouseSource.prototype.mousemove = function(inEvent) {
|
||||||
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
||||||
@@ -186,7 +186,7 @@ ol.pointer.MouseSource.prototype.mousemove = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `mouseup`.
|
* Handler for `mouseup`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.mouseup = function(inEvent) {
|
ol.pointer.MouseSource.prototype.mouseup = function(inEvent) {
|
||||||
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
||||||
@@ -204,7 +204,7 @@ ol.pointer.MouseSource.prototype.mouseup = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `mouseover`.
|
* Handler for `mouseover`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.mouseover = function(inEvent) {
|
ol.pointer.MouseSource.prototype.mouseover = function(inEvent) {
|
||||||
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
||||||
@@ -217,7 +217,7 @@ ol.pointer.MouseSource.prototype.mouseover = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `mouseout`.
|
* Handler for `mouseout`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.mouseout = function(inEvent) {
|
ol.pointer.MouseSource.prototype.mouseout = function(inEvent) {
|
||||||
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
if (!this.isEventSimulatedFromTouch_(inEvent)) {
|
||||||
@@ -230,7 +230,7 @@ ol.pointer.MouseSource.prototype.mouseout = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Dispatches a `pointercancel` event.
|
* Dispatches a `pointercancel` event.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MouseSource.prototype.cancel = function(inEvent) {
|
ol.pointer.MouseSource.prototype.cancel = function(inEvent) {
|
||||||
var e = ol.pointer.MouseSource.prepareEvent(inEvent, this.dispatcher);
|
var e = ol.pointer.MouseSource.prepareEvent(inEvent, this.dispatcher);
|
||||||
|
|||||||
+18
-18
@@ -53,7 +53,7 @@ ol.pointer.MsSource = function(dispatcher) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {!Object.<string, goog.events.BrowserEvent|Object>}
|
* @type {!Object.<string, Event|Object>}
|
||||||
*/
|
*/
|
||||||
this.pointerMap = dispatcher.pointerMap;
|
this.pointerMap = dispatcher.pointerMap;
|
||||||
|
|
||||||
@@ -77,14 +77,14 @@ goog.inherits(ol.pointer.MsSource, ol.pointer.EventSource);
|
|||||||
* for the fake pointer event.
|
* for the fake pointer event.
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
* @return {Object} The copied event.
|
* @return {Object} The copied event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.prepareEvent_ = function(inEvent) {
|
ol.pointer.MsSource.prototype.prepareEvent_ = function(inEvent) {
|
||||||
var e = inEvent;
|
var e = inEvent;
|
||||||
if (goog.isNumber(inEvent.getBrowserEvent().pointerType)) {
|
if (goog.isNumber(inEvent.pointerType)) {
|
||||||
e = this.dispatcher.cloneEvent(inEvent, inEvent.getBrowserEvent());
|
e = this.dispatcher.cloneEvent(inEvent, inEvent);
|
||||||
e.pointerType = this.POINTER_TYPES[inEvent.getBrowserEvent().pointerType];
|
e.pointerType = this.POINTER_TYPES[inEvent.pointerType];
|
||||||
}
|
}
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
@@ -103,10 +103,10 @@ ol.pointer.MsSource.prototype.cleanup = function(pointerId) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `msPointerDown`.
|
* Handler for `msPointerDown`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msPointerDown = function(inEvent) {
|
ol.pointer.MsSource.prototype.msPointerDown = function(inEvent) {
|
||||||
this.pointerMap[inEvent.getBrowserEvent().pointerId.toString()] = inEvent;
|
this.pointerMap[inEvent.pointerId.toString()] = inEvent;
|
||||||
var e = this.prepareEvent_(inEvent);
|
var e = this.prepareEvent_(inEvent);
|
||||||
this.dispatcher.down(e, inEvent);
|
this.dispatcher.down(e, inEvent);
|
||||||
};
|
};
|
||||||
@@ -115,7 +115,7 @@ ol.pointer.MsSource.prototype.msPointerDown = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `msPointerMove`.
|
* Handler for `msPointerMove`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msPointerMove = function(inEvent) {
|
ol.pointer.MsSource.prototype.msPointerMove = function(inEvent) {
|
||||||
var e = this.prepareEvent_(inEvent);
|
var e = this.prepareEvent_(inEvent);
|
||||||
@@ -126,19 +126,19 @@ ol.pointer.MsSource.prototype.msPointerMove = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `msPointerUp`.
|
* Handler for `msPointerUp`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msPointerUp = function(inEvent) {
|
ol.pointer.MsSource.prototype.msPointerUp = function(inEvent) {
|
||||||
var e = this.prepareEvent_(inEvent);
|
var e = this.prepareEvent_(inEvent);
|
||||||
this.dispatcher.up(e, inEvent);
|
this.dispatcher.up(e, inEvent);
|
||||||
this.cleanup(inEvent.getBrowserEvent().pointerId);
|
this.cleanup(inEvent.pointerId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler for `msPointerOut`.
|
* Handler for `msPointerOut`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msPointerOut = function(inEvent) {
|
ol.pointer.MsSource.prototype.msPointerOut = function(inEvent) {
|
||||||
var e = this.prepareEvent_(inEvent);
|
var e = this.prepareEvent_(inEvent);
|
||||||
@@ -149,7 +149,7 @@ ol.pointer.MsSource.prototype.msPointerOut = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `msPointerOver`.
|
* Handler for `msPointerOver`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msPointerOver = function(inEvent) {
|
ol.pointer.MsSource.prototype.msPointerOver = function(inEvent) {
|
||||||
var e = this.prepareEvent_(inEvent);
|
var e = this.prepareEvent_(inEvent);
|
||||||
@@ -160,23 +160,23 @@ ol.pointer.MsSource.prototype.msPointerOver = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `msPointerCancel`.
|
* Handler for `msPointerCancel`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msPointerCancel = function(inEvent) {
|
ol.pointer.MsSource.prototype.msPointerCancel = function(inEvent) {
|
||||||
var e = this.prepareEvent_(inEvent);
|
var e = this.prepareEvent_(inEvent);
|
||||||
this.dispatcher.cancel(e, inEvent);
|
this.dispatcher.cancel(e, inEvent);
|
||||||
this.cleanup(inEvent.getBrowserEvent().pointerId);
|
this.cleanup(inEvent.pointerId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler for `msLostPointerCapture`.
|
* Handler for `msLostPointerCapture`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msLostPointerCapture = function(inEvent) {
|
ol.pointer.MsSource.prototype.msLostPointerCapture = function(inEvent) {
|
||||||
var e = this.dispatcher.makeEvent('lostpointercapture',
|
var e = this.dispatcher.makeEvent('lostpointercapture',
|
||||||
inEvent.getBrowserEvent(), inEvent);
|
inEvent, inEvent);
|
||||||
this.dispatcher.dispatchEvent(e);
|
this.dispatcher.dispatchEvent(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -184,10 +184,10 @@ ol.pointer.MsSource.prototype.msLostPointerCapture = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `msGotPointerCapture`.
|
* Handler for `msGotPointerCapture`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.MsSource.prototype.msGotPointerCapture = function(inEvent) {
|
ol.pointer.MsSource.prototype.msGotPointerCapture = function(inEvent) {
|
||||||
var e = this.dispatcher.makeEvent('gotpointercapture',
|
var e = this.dispatcher.makeEvent('gotpointercapture',
|
||||||
inEvent.getBrowserEvent(), inEvent);
|
inEvent, inEvent);
|
||||||
this.dispatcher.dispatchEvent(e);
|
this.dispatcher.dispatchEvent(e);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ goog.inherits(ol.pointer.NativeSource, ol.pointer.EventSource);
|
|||||||
/**
|
/**
|
||||||
* Handler for `pointerdown`.
|
* Handler for `pointerdown`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.pointerDown = function(inEvent) {
|
ol.pointer.NativeSource.prototype.pointerDown = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -67,7 +67,7 @@ ol.pointer.NativeSource.prototype.pointerDown = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `pointermove`.
|
* Handler for `pointermove`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.pointerMove = function(inEvent) {
|
ol.pointer.NativeSource.prototype.pointerMove = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -77,7 +77,7 @@ ol.pointer.NativeSource.prototype.pointerMove = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `pointerup`.
|
* Handler for `pointerup`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.pointerUp = function(inEvent) {
|
ol.pointer.NativeSource.prototype.pointerUp = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -87,7 +87,7 @@ ol.pointer.NativeSource.prototype.pointerUp = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `pointerout`.
|
* Handler for `pointerout`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.pointerOut = function(inEvent) {
|
ol.pointer.NativeSource.prototype.pointerOut = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -97,7 +97,7 @@ ol.pointer.NativeSource.prototype.pointerOut = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `pointerover`.
|
* Handler for `pointerover`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.pointerOver = function(inEvent) {
|
ol.pointer.NativeSource.prototype.pointerOver = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -107,7 +107,7 @@ ol.pointer.NativeSource.prototype.pointerOver = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `pointercancel`.
|
* Handler for `pointercancel`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.pointerCancel = function(inEvent) {
|
ol.pointer.NativeSource.prototype.pointerCancel = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -117,7 +117,7 @@ ol.pointer.NativeSource.prototype.pointerCancel = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `lostpointercapture`.
|
* Handler for `lostpointercapture`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.lostPointerCapture = function(inEvent) {
|
ol.pointer.NativeSource.prototype.lostPointerCapture = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
@@ -127,7 +127,7 @@ ol.pointer.NativeSource.prototype.lostPointerCapture = function(inEvent) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `gotpointercapture`.
|
* Handler for `gotpointercapture`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.NativeSource.prototype.gotPointerCapture = function(inEvent) {
|
ol.pointer.NativeSource.prototype.gotPointerCapture = function(inEvent) {
|
||||||
this.dispatcher.fireNativeEvent(inEvent);
|
this.dispatcher.fireNativeEvent(inEvent);
|
||||||
|
|||||||
@@ -31,8 +31,8 @@
|
|||||||
goog.provide('ol.pointer.PointerEvent');
|
goog.provide('ol.pointer.PointerEvent');
|
||||||
|
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -42,20 +42,20 @@ goog.require('goog.events.Event');
|
|||||||
* touch events and even native pointer events.
|
* touch events and even native pointer events.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @param {string} type The type of the event to create.
|
* @param {string} type The type of the event to create.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} originalEvent The event.
|
||||||
* @param {Object.<string, ?>=} opt_eventDict An optional dictionary of
|
* @param {Object.<string, ?>=} opt_eventDict An optional dictionary of
|
||||||
* initial event properties.
|
* initial event properties.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEvent = function(type, browserEvent, opt_eventDict) {
|
ol.pointer.PointerEvent = function(type, originalEvent, opt_eventDict) {
|
||||||
goog.base(this, type);
|
goog.base(this, type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {goog.events.BrowserEvent}
|
* @type {Event}
|
||||||
*/
|
*/
|
||||||
this.browserEvent = browserEvent;
|
this.originalEvent = originalEvent;
|
||||||
|
|
||||||
var eventDict = opt_eventDict ? opt_eventDict : {};
|
var eventDict = opt_eventDict ? opt_eventDict : {};
|
||||||
|
|
||||||
@@ -186,13 +186,13 @@ ol.pointer.PointerEvent = function(type, browserEvent, opt_eventDict) {
|
|||||||
this.isPrimary = 'isPrimary' in eventDict ? eventDict['isPrimary'] : false;
|
this.isPrimary = 'isPrimary' in eventDict ? eventDict['isPrimary'] : false;
|
||||||
|
|
||||||
// keep the semantics of preventDefault
|
// keep the semantics of preventDefault
|
||||||
if (browserEvent.preventDefault) {
|
if (originalEvent.preventDefault) {
|
||||||
this.preventDefault = function() {
|
this.preventDefault = function() {
|
||||||
browserEvent.preventDefault();
|
originalEvent.preventDefault();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
goog.inherits(ol.pointer.PointerEvent, goog.events.Event);
|
goog.inherits(ol.pointer.PointerEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -31,9 +31,8 @@
|
|||||||
goog.provide('ol.pointer.PointerEventHandler');
|
goog.provide('ol.pointer.PointerEventHandler');
|
||||||
|
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.BrowserEvent');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('goog.events.EventTarget');
|
|
||||||
|
|
||||||
goog.require('ol.has');
|
goog.require('ol.has');
|
||||||
goog.require('ol.pointer.MouseSource');
|
goog.require('ol.pointer.MouseSource');
|
||||||
@@ -45,7 +44,7 @@ goog.require('ol.pointer.TouchSource');
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
* @param {Element|HTMLDocument} element Viewport element.
|
* @param {Element|HTMLDocument} element Viewport element.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler = function(element) {
|
ol.pointer.PointerEventHandler = function(element) {
|
||||||
@@ -60,12 +59,12 @@ ol.pointer.PointerEventHandler = function(element) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {!Object.<string, goog.events.BrowserEvent|Object>}
|
* @type {!Object.<string, Event|Object>}
|
||||||
*/
|
*/
|
||||||
this.pointerMap = {};
|
this.pointerMap = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Object.<string, function(goog.events.BrowserEvent)>}
|
* @type {Object.<string, function(Event)>}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.eventMap_ = {};
|
this.eventMap_ = {};
|
||||||
@@ -78,7 +77,7 @@ ol.pointer.PointerEventHandler = function(element) {
|
|||||||
|
|
||||||
this.registerSources();
|
this.registerSources();
|
||||||
};
|
};
|
||||||
goog.inherits(ol.pointer.PointerEventHandler, goog.events.EventTarget);
|
goog.inherits(ol.pointer.PointerEventHandler, ol.events.EventTarget);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -159,7 +158,7 @@ ol.pointer.PointerEventHandler.prototype.unregister_ = function() {
|
|||||||
/**
|
/**
|
||||||
* Calls the right handler for a new event.
|
* Calls the right handler for a new event.
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} inEvent Browser event.
|
* @param {Event} inEvent Browser event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.eventHandler_ = function(inEvent) {
|
ol.pointer.PointerEventHandler.prototype.eventHandler_ = function(inEvent) {
|
||||||
var type = inEvent.type;
|
var type = inEvent.type;
|
||||||
@@ -177,8 +176,7 @@ ol.pointer.PointerEventHandler.prototype.eventHandler_ = function(inEvent) {
|
|||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.addEvents_ = function(events) {
|
ol.pointer.PointerEventHandler.prototype.addEvents_ = function(events) {
|
||||||
events.forEach(function(eventName) {
|
events.forEach(function(eventName) {
|
||||||
goog.events.listen(this.element_, eventName,
|
ol.events.listen(this.element_, eventName, this.eventHandler_, this);
|
||||||
this.eventHandler_, false, this);
|
|
||||||
}, this);
|
}, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -190,8 +188,7 @@ ol.pointer.PointerEventHandler.prototype.addEvents_ = function(events) {
|
|||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.removeEvents_ = function(events) {
|
ol.pointer.PointerEventHandler.prototype.removeEvents_ = function(events) {
|
||||||
events.forEach(function(e) {
|
events.forEach(function(e) {
|
||||||
goog.events.unlisten(this.element_, e,
|
ol.events.unlisten(this.element_, e, this.eventHandler_, this);
|
||||||
this.eventHandler_, false, this);
|
|
||||||
}, this);
|
}, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -199,20 +196,17 @@ ol.pointer.PointerEventHandler.prototype.removeEvents_ = function(events) {
|
|||||||
/**
|
/**
|
||||||
* Returns a snapshot of inEvent, with writable properties.
|
* Returns a snapshot of inEvent, with writable properties.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} browserEvent Browser event.
|
* @param {Event} event Browser event.
|
||||||
* @param {Event|Touch} inEvent An event that contains
|
* @param {Event|Touch} inEvent An event that contains
|
||||||
* properties to copy.
|
* properties to copy.
|
||||||
* @return {Object} An object containing shallow copies of
|
* @return {Object} An object containing shallow copies of
|
||||||
* `inEvent`'s properties.
|
* `inEvent`'s properties.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.cloneEvent = function(browserEvent, inEvent) {
|
ol.pointer.PointerEventHandler.prototype.cloneEvent = function(event, inEvent) {
|
||||||
var eventCopy = {}, p;
|
var eventCopy = {}, p;
|
||||||
for (var i = 0, ii = ol.pointer.CLONE_PROPS.length; i < ii; i++) {
|
for (var i = 0, ii = ol.pointer.CLONE_PROPS.length; i < ii; i++) {
|
||||||
p = ol.pointer.CLONE_PROPS[i][0];
|
p = ol.pointer.CLONE_PROPS[i][0];
|
||||||
eventCopy[p] =
|
eventCopy[p] = event[p] || inEvent[p] || ol.pointer.CLONE_PROPS[i][1];
|
||||||
browserEvent[p] ||
|
|
||||||
inEvent[p] ||
|
|
||||||
ol.pointer.CLONE_PROPS[i][1];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return eventCopy;
|
return eventCopy;
|
||||||
@@ -224,122 +218,110 @@ ol.pointer.PointerEventHandler.prototype.cloneEvent = function(browserEvent, inE
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointerdown' event.
|
* Triggers a 'pointerdown' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.down = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.down = function(data, event) {
|
||||||
this.fireEvent(ol.pointer.EventType.POINTERDOWN,
|
this.fireEvent(ol.pointer.EventType.POINTERDOWN, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointermove' event.
|
* Triggers a 'pointermove' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.move = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.move = function(data, event) {
|
||||||
this.fireEvent(ol.pointer.EventType.POINTERMOVE,
|
this.fireEvent(ol.pointer.EventType.POINTERMOVE, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointerup' event.
|
* Triggers a 'pointerup' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.up = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.up = function(data, event) {
|
||||||
this.fireEvent(ol.pointer.EventType.POINTERUP,
|
this.fireEvent(ol.pointer.EventType.POINTERUP, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointerenter' event.
|
* Triggers a 'pointerenter' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.enter = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.enter = function(data, event) {
|
||||||
pointerEventData.bubbles = false;
|
data.bubbles = false;
|
||||||
this.fireEvent(ol.pointer.EventType.POINTERENTER,
|
this.fireEvent(ol.pointer.EventType.POINTERENTER, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointerleave' event.
|
* Triggers a 'pointerleave' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.leave = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.leave = function(data, event) {
|
||||||
pointerEventData.bubbles = false;
|
data.bubbles = false;
|
||||||
this.fireEvent(ol.pointer.EventType.POINTERLEAVE,
|
this.fireEvent(ol.pointer.EventType.POINTERLEAVE, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointerover' event.
|
* Triggers a 'pointerover' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.over = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.over = function(data, event) {
|
||||||
pointerEventData.bubbles = true;
|
data.bubbles = true;
|
||||||
this.fireEvent(ol.pointer.EventType.POINTEROVER,
|
this.fireEvent(ol.pointer.EventType.POINTEROVER, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointerout' event.
|
* Triggers a 'pointerout' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.out = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.out = function(data, event) {
|
||||||
pointerEventData.bubbles = true;
|
data.bubbles = true;
|
||||||
this.fireEvent(ol.pointer.EventType.POINTEROUT,
|
this.fireEvent(ol.pointer.EventType.POINTEROUT, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a 'pointercancel' event.
|
* Triggers a 'pointercancel' event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.cancel = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.cancel = function(data, event) {
|
||||||
this.fireEvent(ol.pointer.EventType.POINTERCANCEL,
|
this.fireEvent(ol.pointer.EventType.POINTERCANCEL, data, event);
|
||||||
pointerEventData, browserEvent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a combination of 'pointerout' and 'pointerleave' events.
|
* Triggers a combination of 'pointerout' and 'pointerleave' events.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.leaveOut = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.leaveOut = function(data, event) {
|
||||||
this.out(pointerEventData, browserEvent);
|
this.out(data, event);
|
||||||
if (!this.contains_(
|
if (!this.contains_(data.target, data.relatedTarget)) {
|
||||||
pointerEventData.target,
|
this.leave(data, event);
|
||||||
pointerEventData.relatedTarget)) {
|
|
||||||
this.leave(pointerEventData, browserEvent);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a combination of 'pointerover' and 'pointerevents' events.
|
* Triggers a combination of 'pointerover' and 'pointerevents' events.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.enterOver = function(pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.enterOver = function(data, event) {
|
||||||
this.over(pointerEventData, browserEvent);
|
this.over(data, event);
|
||||||
if (!this.contains_(
|
if (!this.contains_(data.target, data.relatedTarget)) {
|
||||||
pointerEventData.target,
|
this.enter(data, event);
|
||||||
pointerEventData.relatedTarget)) {
|
|
||||||
this.enter(pointerEventData, browserEvent);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -362,26 +344,26 @@ ol.pointer.PointerEventHandler.prototype.contains_ = function(container, contain
|
|||||||
// EVENT CREATION AND TRACKING
|
// EVENT CREATION AND TRACKING
|
||||||
/**
|
/**
|
||||||
* Creates a new Event of type `inType`, based on the information in
|
* Creates a new Event of type `inType`, based on the information in
|
||||||
* `pointerEventData`.
|
* `data`.
|
||||||
*
|
*
|
||||||
* @param {string} inType A string representing the type of event to create.
|
* @param {string} inType A string representing the type of event to create.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
* @return {ol.pointer.PointerEvent} A PointerEvent of type `inType`.
|
* @return {ol.pointer.PointerEvent} A PointerEvent of type `inType`.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.makeEvent = function(inType, pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.makeEvent = function(inType, data, event) {
|
||||||
return new ol.pointer.PointerEvent(inType, browserEvent, pointerEventData);
|
return new ol.pointer.PointerEvent(inType, event, data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make and dispatch an event in one call.
|
* Make and dispatch an event in one call.
|
||||||
* @param {string} inType A string representing the type of event.
|
* @param {string} inType A string representing the type of event.
|
||||||
* @param {Object} pointerEventData Pointer event data.
|
* @param {Object} data Pointer event data.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.fireEvent = function(inType, pointerEventData, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.fireEvent = function(inType, data, event) {
|
||||||
var e = this.makeEvent(inType, pointerEventData, browserEvent);
|
var e = this.makeEvent(inType, data, event);
|
||||||
this.dispatchEvent(e);
|
this.dispatchEvent(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -389,11 +371,10 @@ ol.pointer.PointerEventHandler.prototype.fireEvent = function(inType, pointerEve
|
|||||||
/**
|
/**
|
||||||
* Creates a pointer event from a native pointer event
|
* Creates a pointer event from a native pointer event
|
||||||
* and dispatches this event.
|
* and dispatches this event.
|
||||||
* @param {goog.events.BrowserEvent} nativeEvent A platform event with a target.
|
* @param {Event} event A platform event with a target.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.fireNativeEvent = function(nativeEvent) {
|
ol.pointer.PointerEventHandler.prototype.fireNativeEvent = function(event) {
|
||||||
var e = this.makeEvent(nativeEvent.type, nativeEvent.getBrowserEvent(),
|
var e = this.makeEvent(event.type, event, event);
|
||||||
nativeEvent);
|
|
||||||
this.dispatchEvent(e);
|
this.dispatchEvent(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -402,15 +383,12 @@ ol.pointer.PointerEventHandler.prototype.fireNativeEvent = function(nativeEvent)
|
|||||||
* Wrap a native mouse event into a pointer event.
|
* Wrap a native mouse event into a pointer event.
|
||||||
* This proxy method is required for the legacy IE support.
|
* This proxy method is required for the legacy IE support.
|
||||||
* @param {string} eventType The pointer event type.
|
* @param {string} eventType The pointer event type.
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} event The event.
|
||||||
* @return {ol.pointer.PointerEvent} The wrapped event.
|
* @return {ol.pointer.PointerEvent} The wrapped event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.PointerEventHandler.prototype.wrapMouseEvent = function(eventType, browserEvent) {
|
ol.pointer.PointerEventHandler.prototype.wrapMouseEvent = function(eventType, event) {
|
||||||
var pointerEvent = this.makeEvent(
|
var pointerEvent = this.makeEvent(
|
||||||
eventType,
|
eventType, ol.pointer.MouseSource.prepareEvent(event, this), event);
|
||||||
ol.pointer.MouseSource.prepareEvent(browserEvent, this),
|
|
||||||
browserEvent
|
|
||||||
);
|
|
||||||
return pointerEvent;
|
return pointerEvent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ ol.pointer.TouchSource = function(dispatcher, mouseSource) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {!Object.<string, goog.events.BrowserEvent|Object>}
|
* @type {!Object.<string, Event|Object>}
|
||||||
*/
|
*/
|
||||||
this.pointerMap = dispatcher.pointerMap;
|
this.pointerMap = dispatcher.pointerMap;
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ ol.pointer.TouchSource.prototype.cancelResetClickCount_ = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} browserEvent Browser event
|
* @param {Event} browserEvent Browser event
|
||||||
* @param {Touch} inTouch Touch event
|
* @param {Touch} inTouch Touch event
|
||||||
* @return {Object} A pointer object.
|
* @return {Object} A pointer object.
|
||||||
*/
|
*/
|
||||||
@@ -212,12 +212,12 @@ ol.pointer.TouchSource.prototype.touchToPointer_ = function(browserEvent, inTouc
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} inEvent Touch event
|
* @param {Event} inEvent Touch event
|
||||||
* @param {function(goog.events.BrowserEvent, Object)} inFunction In function.
|
* @param {function(Event, Object)} inFunction In function.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.processTouches_ = function(inEvent, inFunction) {
|
ol.pointer.TouchSource.prototype.processTouches_ = function(inEvent, inFunction) {
|
||||||
var touches = Array.prototype.slice.call(
|
var touches = Array.prototype.slice.call(
|
||||||
inEvent.getBrowserEvent().changedTouches);
|
inEvent.changedTouches);
|
||||||
var count = touches.length;
|
var count = touches.length;
|
||||||
function preventDefault() {
|
function preventDefault() {
|
||||||
inEvent.preventDefault();
|
inEvent.preventDefault();
|
||||||
@@ -260,10 +260,10 @@ ol.pointer.TouchSource.prototype.findTouch_ = function(touchList, searchId) {
|
|||||||
* this "abandoned" touch
|
* this "abandoned" touch
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.vacuumTouches_ = function(inEvent) {
|
ol.pointer.TouchSource.prototype.vacuumTouches_ = function(inEvent) {
|
||||||
var touchList = inEvent.getBrowserEvent().touches;
|
var touchList = inEvent.touches;
|
||||||
// pointerMap.getCount() should be < touchList.length here,
|
// pointerMap.getCount() should be < touchList.length here,
|
||||||
// as the touchstart has not been processed yet.
|
// as the touchstart has not been processed yet.
|
||||||
var keys = Object.keys(this.pointerMap);
|
var keys = Object.keys(this.pointerMap);
|
||||||
@@ -293,11 +293,11 @@ ol.pointer.TouchSource.prototype.vacuumTouches_ = function(inEvent) {
|
|||||||
* Handler for `touchstart`, triggers `pointerover`,
|
* Handler for `touchstart`, triggers `pointerover`,
|
||||||
* `pointerenter` and `pointerdown` events.
|
* `pointerenter` and `pointerdown` events.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.touchstart = function(inEvent) {
|
ol.pointer.TouchSource.prototype.touchstart = function(inEvent) {
|
||||||
this.vacuumTouches_(inEvent);
|
this.vacuumTouches_(inEvent);
|
||||||
this.setPrimaryTouch_(inEvent.getBrowserEvent().changedTouches[0]);
|
this.setPrimaryTouch_(inEvent.changedTouches[0]);
|
||||||
this.dedupSynthMouse_(inEvent);
|
this.dedupSynthMouse_(inEvent);
|
||||||
this.clickCount_++;
|
this.clickCount_++;
|
||||||
this.processTouches_(inEvent, this.overDown_);
|
this.processTouches_(inEvent, this.overDown_);
|
||||||
@@ -306,7 +306,7 @@ ol.pointer.TouchSource.prototype.touchstart = function(inEvent) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} browserEvent The event.
|
||||||
* @param {Object} inPointer The in pointer object.
|
* @param {Object} inPointer The in pointer object.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.overDown_ = function(browserEvent, inPointer) {
|
ol.pointer.TouchSource.prototype.overDown_ = function(browserEvent, inPointer) {
|
||||||
@@ -324,7 +324,7 @@ ol.pointer.TouchSource.prototype.overDown_ = function(browserEvent, inPointer) {
|
|||||||
/**
|
/**
|
||||||
* Handler for `touchmove`.
|
* Handler for `touchmove`.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.touchmove = function(inEvent) {
|
ol.pointer.TouchSource.prototype.touchmove = function(inEvent) {
|
||||||
inEvent.preventDefault();
|
inEvent.preventDefault();
|
||||||
@@ -334,7 +334,7 @@ ol.pointer.TouchSource.prototype.touchmove = function(inEvent) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} browserEvent The event.
|
||||||
* @param {Object} inPointer The in pointer.
|
* @param {Object} inPointer The in pointer.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.moveOverOut_ = function(browserEvent, inPointer) {
|
ol.pointer.TouchSource.prototype.moveOverOut_ = function(browserEvent, inPointer) {
|
||||||
@@ -371,7 +371,7 @@ ol.pointer.TouchSource.prototype.moveOverOut_ = function(browserEvent, inPointer
|
|||||||
* Handler for `touchend`, triggers `pointerup`,
|
* Handler for `touchend`, triggers `pointerup`,
|
||||||
* `pointerout` and `pointerleave` events.
|
* `pointerout` and `pointerleave` events.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The event.
|
* @param {Event} inEvent The event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.touchend = function(inEvent) {
|
ol.pointer.TouchSource.prototype.touchend = function(inEvent) {
|
||||||
this.dedupSynthMouse_(inEvent);
|
this.dedupSynthMouse_(inEvent);
|
||||||
@@ -381,7 +381,7 @@ ol.pointer.TouchSource.prototype.touchend = function(inEvent) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} browserEvent An event.
|
* @param {Event} browserEvent An event.
|
||||||
* @param {Object} inPointer The inPointer object.
|
* @param {Object} inPointer The inPointer object.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.upOut_ = function(browserEvent, inPointer) {
|
ol.pointer.TouchSource.prototype.upOut_ = function(browserEvent, inPointer) {
|
||||||
@@ -396,7 +396,7 @@ ol.pointer.TouchSource.prototype.upOut_ = function(browserEvent, inPointer) {
|
|||||||
* Handler for `touchcancel`, triggers `pointercancel`,
|
* Handler for `touchcancel`, triggers `pointercancel`,
|
||||||
* `pointerout` and `pointerleave` events.
|
* `pointerout` and `pointerleave` events.
|
||||||
*
|
*
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.touchcancel = function(inEvent) {
|
ol.pointer.TouchSource.prototype.touchcancel = function(inEvent) {
|
||||||
this.processTouches_(inEvent, this.cancelOut_);
|
this.processTouches_(inEvent, this.cancelOut_);
|
||||||
@@ -405,7 +405,7 @@ ol.pointer.TouchSource.prototype.touchcancel = function(inEvent) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} browserEvent The event.
|
* @param {Event} browserEvent The event.
|
||||||
* @param {Object} inPointer The in pointer.
|
* @param {Object} inPointer The in pointer.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.cancelOut_ = function(browserEvent, inPointer) {
|
ol.pointer.TouchSource.prototype.cancelOut_ = function(browserEvent, inPointer) {
|
||||||
@@ -430,11 +430,11 @@ ol.pointer.TouchSource.prototype.cleanUpPointer_ = function(inPointer) {
|
|||||||
* Prevent synth mouse events from creating pointer events.
|
* Prevent synth mouse events from creating pointer events.
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {goog.events.BrowserEvent} inEvent The in event.
|
* @param {Event} inEvent The in event.
|
||||||
*/
|
*/
|
||||||
ol.pointer.TouchSource.prototype.dedupSynthMouse_ = function(inEvent) {
|
ol.pointer.TouchSource.prototype.dedupSynthMouse_ = function(inEvent) {
|
||||||
var lts = this.mouseSource.lastTouches;
|
var lts = this.mouseSource.lastTouches;
|
||||||
var t = inEvent.getBrowserEvent().changedTouches[0];
|
var t = inEvent.changedTouches[0];
|
||||||
// only the primary finger will synth mouse events
|
// only the primary finger will synth mouse events
|
||||||
if (this.isPrimaryTouch_(t)) {
|
if (this.isPrimaryTouch_(t)) {
|
||||||
// remember x/y of last touch
|
// remember x/y of last touch
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.render.Event');
|
goog.provide('ol.render.Event');
|
||||||
goog.provide('ol.render.EventType');
|
goog.provide('ol.render.EventType');
|
||||||
|
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.render.VectorContext');
|
goog.require('ol.render.VectorContext');
|
||||||
|
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ ol.render.EventType = {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.render.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.
|
||||||
@@ -75,4 +75,4 @@ ol.render.Event = function(
|
|||||||
this.glContext = opt_glContext;
|
this.glContext = opt_glContext;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.render.Event, goog.events.Event);
|
goog.inherits(ol.render.Event, ol.events.Event);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ ol.renderer.vector.renderCircleGeometry_ = function(replayGroup, geometry, style
|
|||||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {number} squaredTolerance Squared tolerance.
|
* @param {number} squaredTolerance Squared tolerance.
|
||||||
* @param {function(this: T, goog.events.Event)} listener Listener function.
|
* @param {function(this: T, ol.events.Event)} listener Listener function.
|
||||||
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
||||||
* @return {boolean} `true` if style is loading.
|
* @return {boolean} `true` if style is loading.
|
||||||
* @template T
|
* @template T
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.renderer.canvas.VectorLayer');
|
goog.provide('ol.renderer.canvas.VectorLayer');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.ViewHint');
|
goog.require('ol.ViewHint');
|
||||||
goog.require('ol.dom');
|
goog.require('ol.dom');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
@@ -181,7 +181,7 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtCoordinate = function(c
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle changes in image style state.
|
* Handle changes in image style state.
|
||||||
* @param {goog.events.Event} event Image style change event.
|
* @param {ol.events.Event} event Image style change event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.canvas.VectorLayer.prototype.handleStyleImageChange_ = function(event) {
|
ol.renderer.canvas.VectorLayer.prototype.handleStyleImageChange_ = function(event) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.renderer.canvas.VectorTileLayer');
|
goog.provide('ol.renderer.canvas.VectorTileLayer');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.TileRange');
|
goog.require('ol.TileRange');
|
||||||
@@ -364,7 +364,7 @@ ol.renderer.canvas.VectorTileLayer.prototype.forEachFeatureAtCoordinate = functi
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle changes in image style state.
|
* Handle changes in image style state.
|
||||||
* @param {goog.events.Event} event Image style change event.
|
* @param {ol.events.Event} event Image style change event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.canvas.VectorTileLayer.prototype.handleStyleImageChange_ = function(event) {
|
ol.renderer.canvas.VectorTileLayer.prototype.handleStyleImageChange_ = function(event) {
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ goog.provide('ol.renderer.dom.Map');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
@@ -68,8 +68,8 @@ ol.renderer.dom.Map = function(container, map) {
|
|||||||
style.height = '100%';
|
style.height = '100%';
|
||||||
|
|
||||||
// prevent the img context menu on mobile devices
|
// prevent the img context menu on mobile devices
|
||||||
goog.events.listen(this.layersPane_, goog.events.EventType.TOUCHSTART,
|
ol.events.listen(this.layersPane_, ol.events.EventType.TOUCHSTART,
|
||||||
goog.events.Event.preventDefault);
|
ol.events.Event.preventDefault);
|
||||||
|
|
||||||
goog.dom.insertChildAt(container, this.layersPane_, 0);
|
goog.dom.insertChildAt(container, this.layersPane_, 0);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.renderer.dom.VectorLayer');
|
goog.provide('ol.renderer.dom.VectorLayer');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
goog.require('ol.ViewHint');
|
goog.require('ol.ViewHint');
|
||||||
goog.require('ol.dom');
|
goog.require('ol.dom');
|
||||||
@@ -202,7 +202,7 @@ ol.renderer.dom.VectorLayer.prototype.forEachFeatureAtCoordinate = function(coor
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle changes in image style state.
|
* Handle changes in image style state.
|
||||||
* @param {goog.events.Event} event Image style change event.
|
* @param {ol.events.Event} event Image style change event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.dom.VectorLayer.prototype.handleStyleImageChange_ = function(event) {
|
ol.renderer.dom.VectorLayer.prototype.handleStyleImageChange_ = function(event) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.renderer.Layer');
|
goog.provide('ol.renderer.Layer');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.ImageState');
|
goog.require('ol.ImageState');
|
||||||
@@ -121,7 +121,7 @@ ol.renderer.Layer.prototype.getLayer = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle changes in image state.
|
* Handle changes in image state.
|
||||||
* @param {goog.events.Event} event Image change event.
|
* @param {ol.events.Event} event Image change event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.Layer.prototype.handleImageChange_ = function(event) {
|
ol.renderer.Layer.prototype.handleImageChange_ = function(event) {
|
||||||
@@ -149,8 +149,8 @@ ol.renderer.Layer.prototype.loadImage = function(image) {
|
|||||||
goog.asserts.assert(imageState == ol.ImageState.IDLE ||
|
goog.asserts.assert(imageState == ol.ImageState.IDLE ||
|
||||||
imageState == ol.ImageState.LOADING,
|
imageState == ol.ImageState.LOADING,
|
||||||
'imageState is "idle" or "loading"');
|
'imageState is "idle" or "loading"');
|
||||||
goog.events.listen(image, goog.events.EventType.CHANGE,
|
ol.events.listen(image, ol.events.EventType.CHANGE,
|
||||||
this.handleImageChange_, false, this);
|
this.handleImageChange_, this);
|
||||||
}
|
}
|
||||||
if (imageState == ol.ImageState.IDLE) {
|
if (imageState == ol.ImageState.IDLE) {
|
||||||
image.load();
|
image.load();
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ goog.provide('ol.renderer.Map');
|
|||||||
goog.require('goog.Disposable');
|
goog.require('goog.Disposable');
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dispose');
|
goog.require('goog.dispose');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
@@ -55,7 +55,7 @@ ol.renderer.Map = function(container, map) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Object.<string, goog.events.Key>}
|
* @type {Object.<string, ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.layerRendererListeners_ = {};
|
this.layerRendererListeners_ = {};
|
||||||
|
|
||||||
@@ -255,9 +255,8 @@ ol.renderer.Map.prototype.getLayerRenderer = function(layer) {
|
|||||||
} else {
|
} else {
|
||||||
var layerRenderer = this.createLayerRenderer(layer);
|
var layerRenderer = this.createLayerRenderer(layer);
|
||||||
this.layerRenderers_[layerKey] = layerRenderer;
|
this.layerRenderers_[layerKey] = layerRenderer;
|
||||||
this.layerRendererListeners_[layerKey] = goog.events.listen(layerRenderer,
|
this.layerRendererListeners_[layerKey] = ol.events.listen(layerRenderer,
|
||||||
goog.events.EventType.CHANGE, this.handleLayerRendererChange_,
|
ol.events.EventType.CHANGE, this.handleLayerRendererChange_, this);
|
||||||
false, this);
|
|
||||||
|
|
||||||
return layerRenderer;
|
return layerRenderer;
|
||||||
}
|
}
|
||||||
@@ -321,7 +320,7 @@ ol.renderer.Map.prototype.removeLayerRendererByKey_ = function(layerKey) {
|
|||||||
|
|
||||||
goog.asserts.assert(layerKey in this.layerRendererListeners_,
|
goog.asserts.assert(layerKey in this.layerRendererListeners_,
|
||||||
'given layerKey (%s) exists in layerRendererListeners', layerKey);
|
'given layerKey (%s) exists in layerRendererListeners', layerKey);
|
||||||
goog.events.unlistenByKey(this.layerRendererListeners_[layerKey]);
|
ol.events.unlistenByKey(this.layerRendererListeners_[layerKey]);
|
||||||
delete this.layerRendererListeners_[layerKey];
|
delete this.layerRendererListeners_[layerKey];
|
||||||
|
|
||||||
return layerRenderer;
|
return layerRenderer;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ goog.provide('ol.renderer.webgl.Map');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('goog.log');
|
goog.require('goog.log');
|
||||||
goog.require('goog.log.Logger');
|
goog.require('goog.log.Logger');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
@@ -106,10 +106,10 @@ ol.renderer.webgl.Map = function(container, map) {
|
|||||||
*/
|
*/
|
||||||
this.context_ = new ol.webgl.Context(this.canvas_, this.gl_);
|
this.context_ = new ol.webgl.Context(this.canvas_, this.gl_);
|
||||||
|
|
||||||
goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST,
|
ol.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST,
|
||||||
this.handleWebGLContextLost, false, this);
|
this.handleWebGLContextLost, this);
|
||||||
goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED,
|
ol.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED,
|
||||||
this.handleWebGLContextRestored, false, this);
|
this.handleWebGLContextRestored, this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
@@ -377,7 +377,7 @@ ol.renderer.webgl.Map.prototype.getType = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) {
|
ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.renderer.webgl.VectorLayer');
|
goog.provide('ol.renderer.webgl.VectorLayer');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.ViewHint');
|
goog.require('ol.ViewHint');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
@@ -169,7 +169,7 @@ ol.renderer.webgl.VectorLayer.prototype.forEachLayerAtPixel = function(pixel, fr
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle changes in image style state.
|
* Handle changes in image style state.
|
||||||
* @param {goog.events.Event} event Image style change event.
|
* @param {ol.events.Event} event Image style change event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.webgl.VectorLayer.prototype.handleStyleImageChange_ = function(event) {
|
ol.renderer.webgl.VectorLayer.prototype.handleStyleImageChange_ = function(event) {
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ goog.provide('ol.reproj.Image');
|
|||||||
goog.provide('ol.reproj.ImageFunctionType');
|
goog.provide('ol.reproj.ImageFunctionType');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.ImageBase');
|
goog.require('ol.ImageBase');
|
||||||
goog.require('ol.ImageState');
|
goog.require('ol.ImageState');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
@@ -102,7 +102,7 @@ ol.reproj.Image = function(sourceProj, targetProj,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {goog.events.Key}
|
* @type {?ol.events.Key}
|
||||||
*/
|
*/
|
||||||
this.sourceListenerKey_ = null;
|
this.sourceListenerKey_ = null;
|
||||||
|
|
||||||
@@ -183,15 +183,15 @@ ol.reproj.Image.prototype.load = function() {
|
|||||||
sourceState == ol.ImageState.ERROR) {
|
sourceState == ol.ImageState.ERROR) {
|
||||||
this.reproject_();
|
this.reproject_();
|
||||||
} else {
|
} else {
|
||||||
this.sourceListenerKey_ = this.sourceImage_.listen(
|
this.sourceListenerKey_ = ol.events.listen(this.sourceImage_,
|
||||||
goog.events.EventType.CHANGE, function(e) {
|
ol.events.EventType.CHANGE, function(e) {
|
||||||
var sourceState = this.sourceImage_.getState();
|
var sourceState = this.sourceImage_.getState();
|
||||||
if (sourceState == ol.ImageState.LOADED ||
|
if (sourceState == ol.ImageState.LOADED ||
|
||||||
sourceState == ol.ImageState.ERROR) {
|
sourceState == ol.ImageState.ERROR) {
|
||||||
this.unlistenSource_();
|
this.unlistenSource_();
|
||||||
this.reproject_();
|
this.reproject_();
|
||||||
}
|
}
|
||||||
}, false, this);
|
}, this);
|
||||||
this.sourceImage_.load();
|
this.sourceImage_.load();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -204,6 +204,6 @@ ol.reproj.Image.prototype.load = function() {
|
|||||||
ol.reproj.Image.prototype.unlistenSource_ = function() {
|
ol.reproj.Image.prototype.unlistenSource_ = function() {
|
||||||
goog.asserts.assert(this.sourceListenerKey_,
|
goog.asserts.assert(this.sourceListenerKey_,
|
||||||
'this.sourceListenerKey_ should not be null');
|
'this.sourceListenerKey_ should not be null');
|
||||||
goog.events.unlistenByKey(this.sourceListenerKey_);
|
ol.events.unlistenByKey(this.sourceListenerKey_);
|
||||||
this.sourceListenerKey_ = null;
|
this.sourceListenerKey_ = null;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ goog.provide('ol.reproj.Tile');
|
|||||||
goog.provide('ol.reproj.TileFunctionType');
|
goog.provide('ol.reproj.TileFunctionType');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.math');
|
goog.require('goog.math');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.Tile');
|
goog.require('ol.Tile');
|
||||||
@@ -97,7 +97,7 @@ ol.reproj.Tile = function(sourceProj, sourceTileGrid,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.sourcesListenerKeys_ = null;
|
this.sourcesListenerKeys_ = null;
|
||||||
|
|
||||||
@@ -297,13 +297,13 @@ ol.reproj.Tile.prototype.load = function() {
|
|||||||
leftToLoad++;
|
leftToLoad++;
|
||||||
|
|
||||||
var sourceListenKey;
|
var sourceListenKey;
|
||||||
sourceListenKey = tile.listen(goog.events.EventType.CHANGE,
|
sourceListenKey = ol.events.listen(tile, ol.events.EventType.CHANGE,
|
||||||
function(e) {
|
function(e) {
|
||||||
var state = tile.getState();
|
var state = tile.getState();
|
||||||
if (state == ol.TileState.LOADED ||
|
if (state == ol.TileState.LOADED ||
|
||||||
state == ol.TileState.ERROR ||
|
state == ol.TileState.ERROR ||
|
||||||
state == ol.TileState.EMPTY) {
|
state == ol.TileState.EMPTY) {
|
||||||
goog.events.unlistenByKey(sourceListenKey);
|
ol.events.unlistenByKey(sourceListenKey);
|
||||||
leftToLoad--;
|
leftToLoad--;
|
||||||
goog.asserts.assert(leftToLoad >= 0,
|
goog.asserts.assert(leftToLoad >= 0,
|
||||||
'leftToLoad should not be negative');
|
'leftToLoad should not be negative');
|
||||||
@@ -312,7 +312,7 @@ ol.reproj.Tile.prototype.load = function() {
|
|||||||
this.reproject_();
|
this.reproject_();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, false, this);
|
}, this);
|
||||||
this.sourcesListenerKeys_.push(sourceListenKey);
|
this.sourcesListenerKeys_.push(sourceListenKey);
|
||||||
}
|
}
|
||||||
}, this);
|
}, this);
|
||||||
@@ -337,6 +337,6 @@ ol.reproj.Tile.prototype.load = function() {
|
|||||||
ol.reproj.Tile.prototype.unlistenSources_ = function() {
|
ol.reproj.Tile.prototype.unlistenSources_ = function() {
|
||||||
goog.asserts.assert(this.sourcesListenerKeys_,
|
goog.asserts.assert(this.sourcesListenerKeys_,
|
||||||
'this.sourcesListenerKeys_ should not be null');
|
'this.sourcesListenerKeys_ should not be null');
|
||||||
this.sourcesListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.sourcesListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.sourcesListenerKeys_ = null;
|
this.sourcesListenerKeys_ = null;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
goog.provide('ol.source.BingMaps');
|
goog.provide('ol.source.BingMaps');
|
||||||
|
|
||||||
goog.require('goog.Uri');
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.net.Jsonp');
|
|
||||||
goog.require('ol.Attribution');
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.TileRange');
|
goog.require('ol.TileRange');
|
||||||
goog.require('ol.TileUrlFunction');
|
goog.require('ol.TileUrlFunction');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.net');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.State');
|
goog.require('ol.source.State');
|
||||||
goog.require('ol.source.TileImage');
|
goog.require('ol.source.TileImage');
|
||||||
@@ -46,16 +45,12 @@ ol.source.BingMaps = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.maxZoom_ = options.maxZoom !== undefined ? options.maxZoom : -1;
|
this.maxZoom_ = options.maxZoom !== undefined ? options.maxZoom : -1;
|
||||||
|
|
||||||
var uri = new goog.Uri(
|
var url = 'https://dev.virtualearth.net/REST/v1/Imagery/Metadata/' +
|
||||||
'https://dev.virtualearth.net/REST/v1/Imagery/Metadata/' +
|
options.imagerySet +
|
||||||
options.imagerySet);
|
'?uriScheme=https&include=ImageryProviders&key=' + options.key;
|
||||||
|
|
||||||
var jsonp = new goog.net.Jsonp(uri, 'jsonp');
|
ol.net.jsonp(url, this.handleImageryMetadataResponse.bind(this), undefined,
|
||||||
jsonp.send({
|
'jsonp');
|
||||||
'include': 'ImageryProviders',
|
|
||||||
'uriScheme': 'https',
|
|
||||||
'key': options.key
|
|
||||||
}, this.handleImageryMetadataResponse.bind(this));
|
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.BingMaps, ol.source.TileImage);
|
goog.inherits(ol.source.BingMaps, ol.source.TileImage);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
goog.provide('ol.source.Cluster');
|
goog.provide('ol.source.Cluster');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.coordinate');
|
goog.require('ol.coordinate');
|
||||||
@@ -55,7 +55,7 @@ ol.source.Cluster = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.source_ = options.source;
|
this.source_ = options.source;
|
||||||
|
|
||||||
this.source_.on(goog.events.EventType.CHANGE,
|
this.source_.on(ol.events.EventType.CHANGE,
|
||||||
ol.source.Cluster.prototype.onSourceChange_, this);
|
ol.source.Cluster.prototype.onSourceChange_, this);
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.Cluster, ol.source.Vector);
|
goog.inherits(ol.source.Cluster, ol.source.Vector);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.source.ImageMapGuide');
|
goog.provide('ol.source.ImageMapGuide');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('goog.uri.utils');
|
goog.require('goog.uri.utils');
|
||||||
goog.require('ol.Image');
|
goog.require('ol.Image');
|
||||||
@@ -143,8 +143,8 @@ ol.source.ImageMapGuide.prototype.getImageInternal = function(extent, resolution
|
|||||||
image = new ol.Image(extent, resolution, pixelRatio,
|
image = new ol.Image(extent, resolution, pixelRatio,
|
||||||
this.getAttributions(), imageUrl, this.crossOrigin_,
|
this.getAttributions(), imageUrl, this.crossOrigin_,
|
||||||
this.imageLoadFunction_);
|
this.imageLoadFunction_);
|
||||||
goog.events.listen(image, goog.events.EventType.CHANGE,
|
ol.events.listen(image, ol.events.EventType.CHANGE,
|
||||||
this.handleImageChange, false, this);
|
this.handleImageChange, this);
|
||||||
} else {
|
} else {
|
||||||
image = null;
|
image = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ goog.provide('ol.source.Image');
|
|||||||
goog.provide('ol.source.ImageEvent');
|
goog.provide('ol.source.ImageEvent');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.Attribution');
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.ImageState');
|
goog.require('ol.ImageState');
|
||||||
goog.require('ol.array');
|
goog.require('ol.array');
|
||||||
@@ -153,7 +153,7 @@ ol.source.Image.prototype.getImageInternal = goog.abstractMethod;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle image change events.
|
* Handle image change events.
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.source.Image.prototype.handleImageChange = function(event) {
|
ol.source.Image.prototype.handleImageChange = function(event) {
|
||||||
@@ -197,7 +197,7 @@ ol.source.Image.defaultImageLoadFunction = function(image, src) {
|
|||||||
* type.
|
* type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.source.ImageEvent}
|
* @implements {oli.source.ImageEvent}
|
||||||
* @param {string} type Type.
|
* @param {string} type Type.
|
||||||
* @param {ol.Image} image The image.
|
* @param {ol.Image} image The image.
|
||||||
@@ -214,7 +214,7 @@ ol.source.ImageEvent = function(type, image) {
|
|||||||
this.image = image;
|
this.image = image;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.ImageEvent, goog.events.Event);
|
goog.inherits(ol.source.ImageEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.source.ImageStatic');
|
goog.provide('ol.source.ImageStatic');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.Image');
|
goog.require('ol.Image');
|
||||||
goog.require('ol.ImageLoadFunctionType');
|
goog.require('ol.ImageLoadFunctionType');
|
||||||
goog.require('ol.ImageState');
|
goog.require('ol.ImageState');
|
||||||
@@ -52,8 +52,8 @@ ol.source.ImageStatic = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.imageSize_ = options.imageSize ? options.imageSize : null;
|
this.imageSize_ = options.imageSize ? options.imageSize : null;
|
||||||
|
|
||||||
goog.events.listen(this.image_, goog.events.EventType.CHANGE,
|
ol.events.listen(this.image_, ol.events.EventType.CHANGE,
|
||||||
this.handleImageChange, false, this);
|
this.handleImageChange, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.ImageStatic, ol.source.Image);
|
goog.inherits(ol.source.ImageStatic, ol.source.Image);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.source.ImageVector');
|
goog.provide('ol.source.ImageVector');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
goog.require('ol.dom');
|
goog.require('ol.dom');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
@@ -89,8 +89,8 @@ ol.source.ImageVector = function(options) {
|
|||||||
|
|
||||||
this.setStyle(options.style);
|
this.setStyle(options.style);
|
||||||
|
|
||||||
goog.events.listen(this.source_, goog.events.EventType.CHANGE,
|
ol.events.listen(this.source_, ol.events.EventType.CHANGE,
|
||||||
this.handleSourceChange_, undefined, this);
|
this.handleSourceChange_, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.ImageVector, ol.source.ImageCanvas);
|
goog.inherits(ol.source.ImageVector, ol.source.ImageCanvas);
|
||||||
@@ -226,7 +226,7 @@ ol.source.ImageVector.prototype.getTransform_ = function(center, resolution, pix
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle changes in image style state.
|
* Handle changes in image style state.
|
||||||
* @param {goog.events.Event} event Image style change event.
|
* @param {ol.events.Event} event Image style change event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.source.ImageVector.prototype.handleImageChange_ = function(event) {
|
ol.source.ImageVector.prototype.handleImageChange_ = function(event) {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
goog.provide('ol.source.ImageWMS');
|
goog.provide('ol.source.ImageWMS');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('goog.string');
|
goog.require('goog.string');
|
||||||
goog.require('goog.uri.utils');
|
goog.require('goog.uri.utils');
|
||||||
@@ -241,8 +241,8 @@ ol.source.ImageWMS.prototype.getImageInternal = function(extent, resolution, pix
|
|||||||
|
|
||||||
this.renderedRevision_ = this.getRevision();
|
this.renderedRevision_ = this.getRevision();
|
||||||
|
|
||||||
goog.events.listen(this.image_, goog.events.EventType.CHANGE,
|
ol.events.listen(this.image_, ol.events.EventType.CHANGE,
|
||||||
this.handleImageChange, false, this);
|
this.handleImageChange, this);
|
||||||
|
|
||||||
return this.image_;
|
return this.image_;
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ goog.provide('ol.source.RasterEvent');
|
|||||||
goog.provide('ol.source.RasterEventType');
|
goog.provide('ol.source.RasterEventType');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
goog.require('ol.ImageCanvas');
|
goog.require('ol.ImageCanvas');
|
||||||
@@ -62,8 +62,8 @@ ol.source.Raster = function(options) {
|
|||||||
this.renderers_ = ol.source.Raster.createRenderers_(options.sources);
|
this.renderers_ = ol.source.Raster.createRenderers_(options.sources);
|
||||||
|
|
||||||
for (var r = 0, rr = this.renderers_.length; r < rr; ++r) {
|
for (var r = 0, rr = this.renderers_.length; r < rr; ++r) {
|
||||||
goog.events.listen(this.renderers_[r], goog.events.EventType.CHANGE,
|
ol.events.listen(this.renderers_[r], ol.events.EventType.CHANGE,
|
||||||
this.changed, false, this);
|
this.changed, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -474,7 +474,7 @@ ol.source.Raster.RenderedState;
|
|||||||
* type.
|
* type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.source.RasterEvent}
|
* @implements {oli.source.RasterEvent}
|
||||||
* @param {string} type Type.
|
* @param {string} type Type.
|
||||||
* @param {olx.FrameState} frameState The frame state.
|
* @param {olx.FrameState} frameState The frame state.
|
||||||
@@ -506,7 +506,7 @@ ol.source.RasterEvent = function(type, frameState, data) {
|
|||||||
this.data = data;
|
this.data = data;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.RasterEvent, goog.events.Event);
|
goog.inherits(ol.source.RasterEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.source.TileImage');
|
goog.provide('ol.source.TileImage');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.ImageTile');
|
goog.require('ol.ImageTile');
|
||||||
goog.require('ol.TileCache');
|
goog.require('ol.TileCache');
|
||||||
@@ -197,8 +197,8 @@ ol.source.TileImage.prototype.createTile_ = function(z, x, y, pixelRatio, projec
|
|||||||
this.crossOrigin,
|
this.crossOrigin,
|
||||||
this.tileLoadFunction);
|
this.tileLoadFunction);
|
||||||
tile.key = key;
|
tile.key = key;
|
||||||
goog.events.listen(tile, goog.events.EventType.CHANGE,
|
ol.events.listen(tile, ol.events.EventType.CHANGE,
|
||||||
this.handleTileChange, false, this);
|
this.handleTileChange, this);
|
||||||
return tile;
|
return tile;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,15 +8,11 @@ goog.provide('ol.source.TileJSON');
|
|||||||
goog.provide('ol.tilejson');
|
goog.provide('ol.tilejson');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.net.CorsXmlHttpFactory');
|
|
||||||
goog.require('goog.net.EventType');
|
|
||||||
goog.require('goog.net.Jsonp');
|
|
||||||
goog.require('goog.net.XhrIo');
|
|
||||||
goog.require('ol.Attribution');
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.TileRange');
|
goog.require('ol.TileRange');
|
||||||
goog.require('ol.TileUrlFunction');
|
goog.require('ol.TileUrlFunction');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.net');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.State');
|
goog.require('ol.source.State');
|
||||||
goog.require('ol.source.TileImage');
|
goog.require('ol.source.TileImage');
|
||||||
@@ -44,21 +40,20 @@ ol.source.TileJSON = function(options) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (options.jsonp) {
|
if (options.jsonp) {
|
||||||
var request = new goog.net.Jsonp(options.url);
|
ol.net.jsonp(options.url, this.handleTileJSONResponse.bind(this),
|
||||||
request.send(undefined, this.handleTileJSONResponse.bind(this),
|
|
||||||
this.handleTileJSONError.bind(this));
|
this.handleTileJSONError.bind(this));
|
||||||
} else {
|
} else {
|
||||||
var xhr = new goog.net.XhrIo(new goog.net.CorsXmlHttpFactory());
|
var xhr = new XMLHttpRequest();
|
||||||
goog.events.listen(xhr, goog.net.EventType.COMPLETE, function(e) {
|
xhr.open('GET', options.url, true);
|
||||||
if (xhr.isSuccess()) {
|
xhr.onload = function(e) {
|
||||||
var response = /** @type {TileJSON} */(xhr.getResponseJson());
|
if (xhr.status >= 200 && xhr.status < 300) {
|
||||||
|
var response = /** @type {TileJSON} */(JSON.parse(xhr.responseText));
|
||||||
this.handleTileJSONResponse(response);
|
this.handleTileJSONResponse(response);
|
||||||
} else {
|
} else {
|
||||||
this.handleTileJSONError();
|
this.handleTileJSONError();
|
||||||
}
|
}
|
||||||
xhr.dispose();
|
}.bind(this);
|
||||||
}, false, this);
|
xhr.send();
|
||||||
xhr.send(options.url);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ goog.provide('ol.source.TileEvent');
|
|||||||
goog.provide('ol.source.TileOptions');
|
goog.provide('ol.source.TileOptions');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Attribution');
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.Extent');
|
goog.require('ol.Extent');
|
||||||
@@ -305,7 +305,7 @@ ol.source.Tile.prototype.useTile = ol.nullFunction;
|
|||||||
* type.
|
* type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.source.TileEvent}
|
* @implements {oli.source.TileEvent}
|
||||||
* @param {string} type Type.
|
* @param {string} type Type.
|
||||||
* @param {ol.Tile} tile The tile.
|
* @param {ol.Tile} tile The tile.
|
||||||
@@ -322,7 +322,7 @@ ol.source.TileEvent = function(type, tile) {
|
|||||||
this.tile = tile;
|
this.tile = tile;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.TileEvent, goog.events.Event);
|
goog.inherits(ol.source.TileEvent, ol.events.Event);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,14 +2,14 @@ goog.provide('ol.source.TileUTFGrid');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.async.nextTick');
|
goog.require('goog.async.nextTick');
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.events.EventType');
|
|
||||||
goog.require('goog.net.Jsonp');
|
|
||||||
goog.require('ol.Attribution');
|
goog.require('ol.Attribution');
|
||||||
goog.require('ol.Tile');
|
goog.require('ol.Tile');
|
||||||
goog.require('ol.TileState');
|
goog.require('ol.TileState');
|
||||||
goog.require('ol.TileUrlFunction');
|
goog.require('ol.TileUrlFunction');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.net');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.State');
|
goog.require('ol.source.State');
|
||||||
goog.require('ol.source.Tile');
|
goog.require('ol.source.Tile');
|
||||||
@@ -49,8 +49,7 @@ ol.source.TileUTFGrid = function(options) {
|
|||||||
*/
|
*/
|
||||||
this.template_ = undefined;
|
this.template_ = undefined;
|
||||||
|
|
||||||
var request = new goog.net.Jsonp(options.url);
|
ol.net.jsonp(options.url, this.handleTileJSONResponse.bind(this));
|
||||||
request.send(undefined, this.handleTileJSONResponse.bind(this));
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.TileUTFGrid, ol.source.Tile);
|
goog.inherits(ol.source.TileUTFGrid, ol.source.Tile);
|
||||||
|
|
||||||
@@ -307,9 +306,9 @@ ol.source.TileUTFGridTile_.prototype.getData = function(coordinate) {
|
|||||||
*/
|
*/
|
||||||
ol.source.TileUTFGridTile_.prototype.forDataAtCoordinate = function(coordinate, callback, opt_this, opt_request) {
|
ol.source.TileUTFGridTile_.prototype.forDataAtCoordinate = function(coordinate, callback, opt_this, opt_request) {
|
||||||
if (this.state == ol.TileState.IDLE && opt_request === true) {
|
if (this.state == ol.TileState.IDLE && opt_request === true) {
|
||||||
goog.events.listenOnce(this, goog.events.EventType.CHANGE, function(e) {
|
ol.events.listenOnce(this, ol.events.EventType.CHANGE, function(e) {
|
||||||
callback.call(opt_this, this.getData(coordinate));
|
callback.call(opt_this, this.getData(coordinate));
|
||||||
}, false, this);
|
}, this);
|
||||||
this.loadInternal_();
|
this.loadInternal_();
|
||||||
} else {
|
} else {
|
||||||
if (opt_request === true) {
|
if (opt_request === true) {
|
||||||
@@ -360,9 +359,8 @@ ol.source.TileUTFGridTile_.prototype.handleLoad_ = function(json) {
|
|||||||
ol.source.TileUTFGridTile_.prototype.loadInternal_ = function() {
|
ol.source.TileUTFGridTile_.prototype.loadInternal_ = function() {
|
||||||
if (this.state == ol.TileState.IDLE) {
|
if (this.state == ol.TileState.IDLE) {
|
||||||
this.state = ol.TileState.LOADING;
|
this.state = ol.TileState.LOADING;
|
||||||
var request = new goog.net.Jsonp(this.src_);
|
ol.net.jsonp(this.src_, this.handleLoad_.bind(this),
|
||||||
request.send(undefined, this.handleLoad_.bind(this),
|
this.handleError_.bind(this));
|
||||||
this.handleError_.bind(this));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
goog.provide('ol.source.UrlTile');
|
goog.provide('ol.source.UrlTile');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.TileLoadFunctionType');
|
goog.require('ol.TileLoadFunctionType');
|
||||||
goog.require('ol.TileState');
|
goog.require('ol.TileState');
|
||||||
goog.require('ol.TileUrlFunction');
|
goog.require('ol.TileUrlFunction');
|
||||||
@@ -126,7 +126,7 @@ ol.source.UrlTile.prototype.getUrls = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle tile change events.
|
* Handle tile change events.
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.source.UrlTile.prototype.handleTileChange = function(event) {
|
ol.source.UrlTile.prototype.handleTileChange = function(event) {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ goog.provide('ol.source.VectorEvent');
|
|||||||
goog.provide('ol.source.VectorEventType');
|
goog.provide('ol.source.VectorEventType');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
@@ -146,7 +146,7 @@ ol.source.Vector = function(opt_options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Object.<string, Array.<goog.events.Key>>}
|
* @type {Object.<string, Array.<ol.events.Key>>}
|
||||||
*/
|
*/
|
||||||
this.featureChangeKeys_ = {};
|
this.featureChangeKeys_ = {};
|
||||||
|
|
||||||
@@ -228,12 +228,10 @@ ol.source.Vector.prototype.setupChangeEvents_ = function(featureKey, feature) {
|
|||||||
goog.asserts.assert(!(featureKey in this.featureChangeKeys_),
|
goog.asserts.assert(!(featureKey in this.featureChangeKeys_),
|
||||||
'key (%s) not yet registered in featureChangeKey', featureKey);
|
'key (%s) not yet registered in featureChangeKey', featureKey);
|
||||||
this.featureChangeKeys_[featureKey] = [
|
this.featureChangeKeys_[featureKey] = [
|
||||||
goog.events.listen(feature,
|
ol.events.listen(feature, ol.events.EventType.CHANGE,
|
||||||
goog.events.EventType.CHANGE,
|
this.handleFeatureChange_, this),
|
||||||
this.handleFeatureChange_, false, this),
|
ol.events.listen(feature, ol.ObjectEventType.PROPERTYCHANGE,
|
||||||
goog.events.listen(feature,
|
this.handleFeatureChange_, this)
|
||||||
ol.ObjectEventType.PROPERTYCHANGE,
|
|
||||||
this.handleFeatureChange_, false, this)
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -327,7 +325,7 @@ ol.source.Vector.prototype.bindFeaturesCollection_ = function(collection) {
|
|||||||
goog.asserts.assert(!this.featuresCollection_,
|
goog.asserts.assert(!this.featuresCollection_,
|
||||||
'bindFeaturesCollection can only be called once');
|
'bindFeaturesCollection can only be called once');
|
||||||
var modifyingCollection = false;
|
var modifyingCollection = false;
|
||||||
goog.events.listen(this, ol.source.VectorEventType.ADDFEATURE,
|
ol.events.listen(this, ol.source.VectorEventType.ADDFEATURE,
|
||||||
function(evt) {
|
function(evt) {
|
||||||
if (!modifyingCollection) {
|
if (!modifyingCollection) {
|
||||||
modifyingCollection = true;
|
modifyingCollection = true;
|
||||||
@@ -335,7 +333,7 @@ ol.source.Vector.prototype.bindFeaturesCollection_ = function(collection) {
|
|||||||
modifyingCollection = false;
|
modifyingCollection = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
goog.events.listen(this, ol.source.VectorEventType.REMOVEFEATURE,
|
ol.events.listen(this, ol.source.VectorEventType.REMOVEFEATURE,
|
||||||
function(evt) {
|
function(evt) {
|
||||||
if (!modifyingCollection) {
|
if (!modifyingCollection) {
|
||||||
modifyingCollection = true;
|
modifyingCollection = true;
|
||||||
@@ -343,7 +341,7 @@ ol.source.Vector.prototype.bindFeaturesCollection_ = function(collection) {
|
|||||||
modifyingCollection = false;
|
modifyingCollection = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
goog.events.listen(collection, ol.CollectionEventType.ADD,
|
ol.events.listen(collection, ol.CollectionEventType.ADD,
|
||||||
function(evt) {
|
function(evt) {
|
||||||
if (!modifyingCollection) {
|
if (!modifyingCollection) {
|
||||||
var feature = evt.element;
|
var feature = evt.element;
|
||||||
@@ -352,8 +350,8 @@ ol.source.Vector.prototype.bindFeaturesCollection_ = function(collection) {
|
|||||||
this.addFeature(feature);
|
this.addFeature(feature);
|
||||||
modifyingCollection = false;
|
modifyingCollection = false;
|
||||||
}
|
}
|
||||||
}, false, this);
|
}, this);
|
||||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE,
|
ol.events.listen(collection, ol.CollectionEventType.REMOVE,
|
||||||
function(evt) {
|
function(evt) {
|
||||||
if (!modifyingCollection) {
|
if (!modifyingCollection) {
|
||||||
var feature = evt.element;
|
var feature = evt.element;
|
||||||
@@ -362,7 +360,7 @@ ol.source.Vector.prototype.bindFeaturesCollection_ = function(collection) {
|
|||||||
this.removeFeature(feature);
|
this.removeFeature(feature);
|
||||||
modifyingCollection = false;
|
modifyingCollection = false;
|
||||||
}
|
}
|
||||||
}, false, this);
|
}, this);
|
||||||
this.featuresCollection_ = collection;
|
this.featuresCollection_ = collection;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -376,7 +374,7 @@ ol.source.Vector.prototype.clear = function(opt_fast) {
|
|||||||
if (opt_fast) {
|
if (opt_fast) {
|
||||||
for (var featureId in this.featureChangeKeys_) {
|
for (var featureId in this.featureChangeKeys_) {
|
||||||
var keys = this.featureChangeKeys_[featureId];
|
var keys = this.featureChangeKeys_[featureId];
|
||||||
keys.forEach(goog.events.unlistenByKey);
|
keys.forEach(ol.events.unlistenByKey);
|
||||||
}
|
}
|
||||||
if (!this.featuresCollection_) {
|
if (!this.featuresCollection_) {
|
||||||
this.featureChangeKeys_ = {};
|
this.featureChangeKeys_ = {};
|
||||||
@@ -680,7 +678,7 @@ ol.source.Vector.prototype.getFeatureById = function(id) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.source.Vector.prototype.handleFeatureChange_ = function(event) {
|
ol.source.Vector.prototype.handleFeatureChange_ = function(event) {
|
||||||
@@ -816,7 +814,7 @@ ol.source.Vector.prototype.removeFeatureInternal = function(feature) {
|
|||||||
var featureKey = goog.getUid(feature).toString();
|
var featureKey = goog.getUid(feature).toString();
|
||||||
goog.asserts.assert(featureKey in this.featureChangeKeys_,
|
goog.asserts.assert(featureKey in this.featureChangeKeys_,
|
||||||
'featureKey exists in featureChangeKeys');
|
'featureKey exists in featureChangeKeys');
|
||||||
this.featureChangeKeys_[featureKey].forEach(goog.events.unlistenByKey);
|
this.featureChangeKeys_[featureKey].forEach(ol.events.unlistenByKey);
|
||||||
delete this.featureChangeKeys_[featureKey];
|
delete this.featureChangeKeys_[featureKey];
|
||||||
var id = feature.getId();
|
var id = feature.getId();
|
||||||
if (id !== undefined) {
|
if (id !== undefined) {
|
||||||
@@ -855,7 +853,7 @@ ol.source.Vector.prototype.removeFromIdIndex_ = function(feature) {
|
|||||||
* type.
|
* type.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.Event}
|
* @extends {ol.events.Event}
|
||||||
* @implements {oli.source.VectorEvent}
|
* @implements {oli.source.VectorEvent}
|
||||||
* @param {string} type Type.
|
* @param {string} type Type.
|
||||||
* @param {ol.Feature=} opt_feature Feature.
|
* @param {ol.Feature=} opt_feature Feature.
|
||||||
@@ -872,4 +870,4 @@ ol.source.VectorEvent = function(type, opt_feature) {
|
|||||||
this.feature = opt_feature;
|
this.feature = opt_feature;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.source.VectorEvent, goog.events.Event);
|
goog.inherits(ol.source.VectorEvent, ol.events.Event);
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
goog.provide('ol.source.VectorTile');
|
goog.provide('ol.source.VectorTile');
|
||||||
|
|
||||||
goog.require('goog.events');
|
|
||||||
goog.require('goog.events.EventType');
|
|
||||||
goog.require('ol.TileState');
|
goog.require('ol.TileState');
|
||||||
goog.require('ol.VectorTile');
|
goog.require('ol.VectorTile');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.featureloader');
|
goog.require('ol.featureloader');
|
||||||
goog.require('ol.source.UrlTile');
|
goog.require('ol.source.UrlTile');
|
||||||
|
|
||||||
@@ -79,8 +79,8 @@ ol.source.VectorTile.prototype.getTile = function(z, x, y, pixelRatio, projectio
|
|||||||
tileUrl !== undefined ? ol.TileState.IDLE : ol.TileState.EMPTY,
|
tileUrl !== undefined ? ol.TileState.IDLE : ol.TileState.EMPTY,
|
||||||
tileUrl !== undefined ? tileUrl : '',
|
tileUrl !== undefined ? tileUrl : '',
|
||||||
this.format_, this.tileLoadFunction);
|
this.format_, this.tileLoadFunction);
|
||||||
goog.events.listen(tile, goog.events.EventType.CHANGE,
|
ol.events.listen(tile, ol.events.EventType.CHANGE,
|
||||||
this.handleTileChange, false, this);
|
this.handleTileChange, this);
|
||||||
|
|
||||||
this.tileCache.set(tileCoordKey, tile);
|
this.tileCache.set(tileCoordKey, tile);
|
||||||
return tile;
|
return tile;
|
||||||
|
|||||||
+17
-17
@@ -4,9 +4,9 @@ goog.provide('ol.style.IconImageCache');
|
|||||||
goog.provide('ol.style.IconOrigin');
|
goog.provide('ol.style.IconOrigin');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventTarget');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.color');
|
goog.require('ol.color');
|
||||||
goog.require('ol.dom');
|
goog.require('ol.dom');
|
||||||
goog.require('ol.style.Image');
|
goog.require('ol.style.Image');
|
||||||
@@ -345,8 +345,8 @@ ol.style.Icon.prototype.getSize = function() {
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.style.Icon.prototype.listenImageChange = function(listener, thisArg) {
|
ol.style.Icon.prototype.listenImageChange = function(listener, thisArg) {
|
||||||
return goog.events.listen(this.iconImage_, goog.events.EventType.CHANGE,
|
return ol.events.listen(this.iconImage_, ol.events.EventType.CHANGE,
|
||||||
listener, false, thisArg);
|
listener, thisArg);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -366,8 +366,8 @@ ol.style.Icon.prototype.load = function() {
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.style.Icon.prototype.unlistenImageChange = function(listener, thisArg) {
|
ol.style.Icon.prototype.unlistenImageChange = function(listener, thisArg) {
|
||||||
goog.events.unlisten(this.iconImage_, goog.events.EventType.CHANGE,
|
ol.events.unlisten(this.iconImage_, ol.events.EventType.CHANGE,
|
||||||
listener, false, thisArg);
|
listener, thisArg);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -379,7 +379,7 @@ ol.style.Icon.prototype.unlistenImageChange = function(listener, thisArg) {
|
|||||||
* @param {?string} crossOrigin Cross origin.
|
* @param {?string} crossOrigin Cross origin.
|
||||||
* @param {ol.style.ImageState} imageState Image state.
|
* @param {ol.style.ImageState} imageState Image state.
|
||||||
* @param {ol.Color} color Color.
|
* @param {ol.Color} color Color.
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.style.IconImage_ = function(image, src, size, crossOrigin, imageState,
|
ol.style.IconImage_ = function(image, src, size, crossOrigin, imageState,
|
||||||
@@ -419,7 +419,7 @@ ol.style.IconImage_ = function(image, src, size, crossOrigin, imageState,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Array.<goog.events.Key>}
|
* @type {Array.<ol.events.Key>}
|
||||||
*/
|
*/
|
||||||
this.imageListenerKeys_ = null;
|
this.imageListenerKeys_ = null;
|
||||||
|
|
||||||
@@ -451,7 +451,7 @@ ol.style.IconImage_ = function(image, src, size, crossOrigin, imageState,
|
|||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.style.IconImage_, goog.events.EventTarget);
|
goog.inherits(ol.style.IconImage_, ol.events.EventTarget);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -494,7 +494,7 @@ ol.style.IconImage_.prototype.determineTainting_ = function() {
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.style.IconImage_.prototype.dispatchChangeEvent_ = function() {
|
ol.style.IconImage_.prototype.dispatchChangeEvent_ = function() {
|
||||||
this.dispatchEvent(goog.events.EventType.CHANGE);
|
this.dispatchEvent(ol.events.EventType.CHANGE);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -585,10 +585,10 @@ ol.style.IconImage_.prototype.load = function() {
|
|||||||
'no listener keys existing');
|
'no listener keys existing');
|
||||||
this.imageState_ = ol.style.ImageState.LOADING;
|
this.imageState_ = ol.style.ImageState.LOADING;
|
||||||
this.imageListenerKeys_ = [
|
this.imageListenerKeys_ = [
|
||||||
goog.events.listenOnce(this.image_, goog.events.EventType.ERROR,
|
ol.events.listenOnce(this.image_, ol.events.EventType.ERROR,
|
||||||
this.handleImageError_, false, this),
|
this.handleImageError_, this),
|
||||||
goog.events.listenOnce(this.image_, goog.events.EventType.LOAD,
|
ol.events.listenOnce(this.image_, ol.events.EventType.LOAD,
|
||||||
this.handleImageLoad_, false, this)
|
this.handleImageLoad_, this)
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
this.image_.src = this.src_;
|
this.image_.src = this.src_;
|
||||||
@@ -639,7 +639,7 @@ ol.style.IconImage_.prototype.replaceColor_ = function() {
|
|||||||
ol.style.IconImage_.prototype.unlistenImage_ = function() {
|
ol.style.IconImage_.prototype.unlistenImage_ = function() {
|
||||||
goog.asserts.assert(this.imageListenerKeys_,
|
goog.asserts.assert(this.imageListenerKeys_,
|
||||||
'we must have listeners registered');
|
'we must have listeners registered');
|
||||||
this.imageListenerKeys_.forEach(goog.events.unlistenByKey);
|
this.imageListenerKeys_.forEach(ol.events.unlistenByKey);
|
||||||
this.imageListenerKeys_ = null;
|
this.imageListenerKeys_ = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -703,7 +703,7 @@ ol.style.IconImageCache.prototype.expire = function() {
|
|||||||
var key, iconImage;
|
var key, iconImage;
|
||||||
for (key in this.cache_) {
|
for (key in this.cache_) {
|
||||||
iconImage = this.cache_[key];
|
iconImage = this.cache_[key];
|
||||||
if ((i++ & 3) === 0 && !goog.events.hasListener(iconImage)) {
|
if ((i++ & 3) === 0 && !iconImage.hasListener()) {
|
||||||
delete this.cache_[key];
|
delete this.cache_[key];
|
||||||
--this.cacheSize_;
|
--this.cacheSize_;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -231,9 +231,9 @@ ol.style.Image.prototype.setSnapToPixel = function(snapToPixel) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {function(this: T, goog.events.Event)} listener Listener function.
|
* @param {function(this: T, ol.events.Event)} listener Listener function.
|
||||||
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
||||||
* @return {goog.events.Key|undefined} Listener key.
|
* @return {ol.events.Key|undefined} Listener key.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.style.Image.prototype.listenImageChange = goog.abstractMethod;
|
ol.style.Image.prototype.listenImageChange = goog.abstractMethod;
|
||||||
@@ -246,7 +246,7 @@ ol.style.Image.prototype.load = goog.abstractMethod;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {function(this: T, goog.events.Event)} listener Listener function.
|
* @param {function(this: T, ol.events.Event)} listener Listener function.
|
||||||
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
|
|||||||
+6
-6
@@ -1,9 +1,9 @@
|
|||||||
goog.provide('ol.Tile');
|
goog.provide('ol.Tile');
|
||||||
goog.provide('ol.TileState');
|
goog.provide('ol.TileState');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventTarget');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.TileCoord');
|
goog.require('ol.TileCoord');
|
||||||
|
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ ol.TileState = {
|
|||||||
* Base class for tiles.
|
* Base class for tiles.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
* @param {ol.TileCoord} tileCoord Tile coordinate.
|
* @param {ol.TileCoord} tileCoord Tile coordinate.
|
||||||
* @param {ol.TileState} state State.
|
* @param {ol.TileState} state State.
|
||||||
*/
|
*/
|
||||||
@@ -60,14 +60,14 @@ ol.Tile = function(tileCoord, state) {
|
|||||||
this.key = '';
|
this.key = '';
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.Tile, goog.events.EventTarget);
|
goog.inherits(ol.Tile, ol.events.EventTarget);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.Tile.prototype.changed = function() {
|
ol.Tile.prototype.changed = function() {
|
||||||
this.dispatchEvent(goog.events.EventType.CHANGE);
|
this.dispatchEvent(ol.events.EventType.CHANGE);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -1,8 +1,8 @@
|
|||||||
goog.provide('ol.TilePriorityFunction');
|
goog.provide('ol.TilePriorityFunction');
|
||||||
goog.provide('ol.TileQueue');
|
goog.provide('ol.TileQueue');
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.Coordinate');
|
goog.require('ol.Coordinate');
|
||||||
goog.require('ol.TileState');
|
goog.require('ol.TileState');
|
||||||
goog.require('ol.structs.PriorityQueue');
|
goog.require('ol.structs.PriorityQueue');
|
||||||
@@ -71,8 +71,8 @@ ol.TileQueue.prototype.enqueue = function(element) {
|
|||||||
var added = goog.base(this, 'enqueue', element);
|
var added = goog.base(this, 'enqueue', element);
|
||||||
if (added) {
|
if (added) {
|
||||||
var tile = element[0];
|
var tile = element[0];
|
||||||
goog.events.listen(tile, goog.events.EventType.CHANGE,
|
ol.events.listen(tile, ol.events.EventType.CHANGE,
|
||||||
this.handleTileChange, false, this);
|
this.handleTileChange, this);
|
||||||
}
|
}
|
||||||
return added;
|
return added;
|
||||||
};
|
};
|
||||||
@@ -87,7 +87,7 @@ ol.TileQueue.prototype.getTilesLoading = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {goog.events.Event} event Event.
|
* @param {ol.events.Event} event Event.
|
||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
ol.TileQueue.prototype.handleTileChange = function(event) {
|
ol.TileQueue.prototype.handleTileChange = function(event) {
|
||||||
@@ -95,8 +95,8 @@ ol.TileQueue.prototype.handleTileChange = function(event) {
|
|||||||
var state = tile.getState();
|
var state = tile.getState();
|
||||||
if (state === ol.TileState.LOADED || state === ol.TileState.ERROR ||
|
if (state === ol.TileState.LOADED || state === ol.TileState.ERROR ||
|
||||||
state === ol.TileState.EMPTY) {
|
state === ol.TileState.EMPTY) {
|
||||||
goog.events.unlisten(tile, goog.events.EventType.CHANGE,
|
ol.events.unlisten(tile, ol.events.EventType.CHANGE,
|
||||||
this.handleTileChange, false, this);
|
this.handleTileChange, this);
|
||||||
var tileKey = tile.getKey();
|
var tileKey = tile.getKey();
|
||||||
if (tileKey in this.tilesLoadingKeys_) {
|
if (tileKey in this.tilesLoadingKeys_) {
|
||||||
delete this.tilesLoadingKeys_[tileKey];
|
delete this.tilesLoadingKeys_[tileKey];
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.webgl.Context');
|
goog.provide('ol.webgl.Context');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.log');
|
goog.require('goog.log');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
@@ -22,7 +22,7 @@ ol.webgl.BufferCacheEntry;
|
|||||||
* A WebGL context for accessing low-level WebGL capabilities.
|
* A WebGL context for accessing low-level WebGL capabilities.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.events.EventTarget}
|
* @extends {ol.events.EventTarget}
|
||||||
* @param {HTMLCanvasElement} canvas Canvas.
|
* @param {HTMLCanvasElement} canvas Canvas.
|
||||||
* @param {WebGLRenderingContext} gl GL.
|
* @param {WebGLRenderingContext} gl GL.
|
||||||
*/
|
*/
|
||||||
@@ -95,10 +95,10 @@ ol.webgl.Context = function(canvas, gl) {
|
|||||||
'Failed to get extension "OES_element_index_uint"');
|
'Failed to get extension "OES_element_index_uint"');
|
||||||
}
|
}
|
||||||
|
|
||||||
goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST,
|
ol.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST,
|
||||||
this.handleWebGLContextLost, false, this);
|
this.handleWebGLContextLost, this);
|
||||||
goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED,
|
ol.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED,
|
||||||
this.handleWebGLContextRestored, false, this);
|
this.handleWebGLContextRestored, this);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -32,22 +32,6 @@
|
|||||||
|
|
||||||
goog.json.USE_NATIVE_JSON = true;
|
goog.json.USE_NATIVE_JSON = true;
|
||||||
|
|
||||||
/**
|
|
||||||
* The goog.dom.ViewportSizeMonitor (used in map.js) creates a global leak
|
|
||||||
* by setting goog.UID_PROPERTY_ on the monitored window. In order to test
|
|
||||||
* that we don't have other global leaks, we preemptively set the property
|
|
||||||
* so Mocha can compare the global before and after our tests.
|
|
||||||
*
|
|
||||||
* In addition, calling goog.events.listen on the global object (as done
|
|
||||||
* in deviceorientation.js) creates a second leak by setting
|
|
||||||
* goog.events.LISTENER_MAP_PROP_ on the global object.
|
|
||||||
*
|
|
||||||
* We preemptively set both of these properties so Mocha can compare the
|
|
||||||
* global before and after tests. The call to goog.events.listen also
|
|
||||||
* calls goog.getUid.
|
|
||||||
*/
|
|
||||||
goog.events.listen(this, 'test', function() {});
|
|
||||||
|
|
||||||
var runner = mocha.run();
|
var runner = mocha.run();
|
||||||
if (window.console && console.log) {
|
if (window.console && console.log) {
|
||||||
// write stacks to the console for failed tests
|
// write stacks to the console for failed tests
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ describe('ol.collection', function() {
|
|||||||
it('fires a remove event', function() {
|
it('fires a remove event', function() {
|
||||||
var collection = new ol.Collection([0, 1, 2]);
|
var collection = new ol.Collection([0, 1, 2]);
|
||||||
var cb = sinon.spy();
|
var cb = sinon.spy();
|
||||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb);
|
ol.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].element).to.eql(1);
|
expect(cb.lastCall.args[0].element).to.eql(1);
|
||||||
@@ -137,10 +137,10 @@ describe('ol.collection', function() {
|
|||||||
it('does dispatch events', function() {
|
it('does dispatch events', 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) {
|
ol.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||||
added = e.element;
|
added = e.element;
|
||||||
});
|
});
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
collection, ol.CollectionEventType.REMOVE, function(e) {
|
collection, ol.CollectionEventType.REMOVE, function(e) {
|
||||||
removed = e.element;
|
removed = e.element;
|
||||||
});
|
});
|
||||||
@@ -154,7 +154,7 @@ describe('ol.collection', function() {
|
|||||||
it('does dispatch events', function() {
|
it('does dispatch events', function() {
|
||||||
var collection = new ol.Collection(['a']);
|
var collection = new ol.Collection(['a']);
|
||||||
var removed;
|
var removed;
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
collection, ol.CollectionEventType.REMOVE, function(e) {
|
collection, ol.CollectionEventType.REMOVE, function(e) {
|
||||||
removed = e.element;
|
removed = e.element;
|
||||||
});
|
});
|
||||||
@@ -167,7 +167,7 @@ describe('ol.collection', function() {
|
|||||||
it('does dispatch events', function() {
|
it('does dispatch events', function() {
|
||||||
var collection = new ol.Collection([0, 2]);
|
var collection = new ol.Collection([0, 2]);
|
||||||
var added;
|
var added;
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
collection, ol.CollectionEventType.ADD, function(e) {
|
collection, ol.CollectionEventType.ADD, function(e) {
|
||||||
added = e.element;
|
added = e.element;
|
||||||
});
|
});
|
||||||
@@ -179,7 +179,7 @@ describe('ol.collection', function() {
|
|||||||
describe('setAt beyond end', function() {
|
describe('setAt beyond end', function() {
|
||||||
it('triggers events properly', function() {
|
it('triggers events properly', function() {
|
||||||
var added = [];
|
var added = [];
|
||||||
goog.events.listen(
|
ol.events.listen(
|
||||||
collection, ol.CollectionEventType.ADD, function(e) {
|
collection, ol.CollectionEventType.ADD, function(e) {
|
||||||
added.push(e.element);
|
added.push(e.element);
|
||||||
});
|
});
|
||||||
@@ -200,7 +200,7 @@ describe('ol.collection', function() {
|
|||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
collection = new ol.Collection([0, 1, 2]);
|
collection = new ol.Collection([0, 1, 2]);
|
||||||
cb = sinon.spy();
|
cb = sinon.spy();
|
||||||
goog.events.listen(collection, 'change:length', cb);
|
ol.events.listen(collection, 'change:length', cb);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('insertAt', function() {
|
describe('insertAt', function() {
|
||||||
@@ -229,7 +229,7 @@ describe('ol.collection', function() {
|
|||||||
it('triggers add when pushing', function() {
|
it('triggers add when pushing', function() {
|
||||||
var collection = new ol.Collection();
|
var collection = new ol.Collection();
|
||||||
var elem;
|
var elem;
|
||||||
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
ol.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||||
elem = e.element;
|
elem = e.element;
|
||||||
});
|
});
|
||||||
collection.push(1);
|
collection.push(1);
|
||||||
@@ -246,8 +246,8 @@ describe('ol.collection', function() {
|
|||||||
});
|
});
|
||||||
describe('setAt', function() {
|
describe('setAt', function() {
|
||||||
it('triggers remove', function() {
|
it('triggers remove', function() {
|
||||||
goog.events.listen(collection, ol.CollectionEventType.ADD, cb1);
|
ol.events.listen(collection, ol.CollectionEventType.ADD, cb1);
|
||||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb2);
|
ol.events.listen(collection, ol.CollectionEventType.REMOVE, cb2);
|
||||||
collection.setAt(0, 2);
|
collection.setAt(0, 2);
|
||||||
expect(cb2.lastCall.args[0].element).to.eql(1);
|
expect(cb2.lastCall.args[0].element).to.eql(1);
|
||||||
expect(cb1.lastCall.args[0].element).to.eql(2);
|
expect(cb1.lastCall.args[0].element).to.eql(2);
|
||||||
@@ -255,7 +255,7 @@ describe('ol.collection', function() {
|
|||||||
});
|
});
|
||||||
describe('pop', function() {
|
describe('pop', function() {
|
||||||
it('triggers remove', function() {
|
it('triggers remove', function() {
|
||||||
goog.events.listen(collection, ol.CollectionEventType.REMOVE, cb1);
|
ol.events.listen(collection, ol.CollectionEventType.REMOVE, cb1);
|
||||||
collection.pop();
|
collection.pop();
|
||||||
expect(cb1.lastCall.args[0].element).to.eql(1);
|
expect(cb1.lastCall.args[0].element).to.eql(1);
|
||||||
});
|
});
|
||||||
@@ -273,7 +273,7 @@ describe('ol.collection', function() {
|
|||||||
it('fires events', function() {
|
it('fires events', function() {
|
||||||
var collection = new ol.Collection();
|
var collection = new ol.Collection();
|
||||||
var elems = [];
|
var elems = [];
|
||||||
goog.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
ol.events.listen(collection, ol.CollectionEventType.ADD, function(e) {
|
||||||
elems.push(e.element);
|
elems.push(e.element);
|
||||||
});
|
});
|
||||||
collection.extend([1, 2]);
|
collection.extend([1, 2]);
|
||||||
@@ -284,6 +284,6 @@ describe('ol.collection', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
goog.require('ol.CollectionEventType');
|
goog.require('ol.CollectionEventType');
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/*global createMapDiv, disposeMap*/
|
||||||
goog.provide('ol.test.control.ZoomSlider');
|
goog.provide('ol.test.control.ZoomSlider');
|
||||||
|
|
||||||
describe('ol.control.ZoomSlider', function() {
|
describe('ol.control.ZoomSlider', function() {
|
||||||
@@ -50,10 +51,10 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('dragger setup', function() {
|
describe('#initSlider_', function() {
|
||||||
it('creates a goog.fx.Dragger', function() {
|
it('sets limits', function() {
|
||||||
expect(zoomslider.dragger_ instanceof goog.fx.Dragger).to.be(true);
|
zoomslider.initSlider_();
|
||||||
expect(zoomslider.dragger_.limits instanceof goog.math.Rect).to.be(true);
|
expect(zoomslider.limits_ instanceof goog.math.Rect).to.be(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -85,12 +86,104 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Pointer event handling', function() {
|
||||||
|
var map;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
map = new ol.Map({
|
||||||
|
target: createMapDiv(500, 100),
|
||||||
|
view: new ol.View({
|
||||||
|
center: [0, 0],
|
||||||
|
resolutions: [16, 8, 4, 2, 1, 0.5, 0.25, 0.125, 0.0625]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
});
|
||||||
|
afterEach(function() {
|
||||||
|
disposeMap(map);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[horizontal] handles a drag sequence', function() {
|
||||||
|
var spy = sinon.spy(goog.Disposable.prototype, 'registerDisposable');
|
||||||
|
var control = new ol.control.ZoomSlider();
|
||||||
|
map.addControl(control);
|
||||||
|
map.getView().setZoom(0);
|
||||||
|
control.element.style.width = '500px';
|
||||||
|
control.element.style.height = '10px';
|
||||||
|
control.element.firstChild.style.width = '100px';
|
||||||
|
control.element.firstChild.style.height = '10px';
|
||||||
|
map.renderSync();
|
||||||
|
var dragger = spy.firstCall.args[0];
|
||||||
|
spy.restore();
|
||||||
|
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
||||||
|
target: control.element.firstElementChild
|
||||||
|
});
|
||||||
|
event.clientX = control.limits_.width;
|
||||||
|
event.clientY = 0;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
expect(control.currentResolution_).to.be(16);
|
||||||
|
expect(control.dragging_).to.be(true);
|
||||||
|
expect(control.dragListenerKeys_).to.be.ok();
|
||||||
|
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||||
|
event.clientX = 6 * control.limits_.width / 8;
|
||||||
|
event.clientY = 0;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
expect(control.currentResolution_).to.be(4);
|
||||||
|
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||||
|
event.clientX = 4 * control.limits_.width / 8;
|
||||||
|
event.clientY = 0;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
event.type = ol.pointer.EventType.POINTERUP;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
expect(control.currentResolution_).to.be(1);
|
||||||
|
expect(control.dragListenerKeys_).to.be(null);
|
||||||
|
expect(control.dragging_).to.be(false);
|
||||||
|
});
|
||||||
|
it('[vertical] handles a drag sequence', function() {
|
||||||
|
var spy = sinon.spy(goog.Disposable.prototype, 'registerDisposable');
|
||||||
|
var control = new ol.control.ZoomSlider();
|
||||||
|
control.element.style.width = '10px';
|
||||||
|
control.element.style.height = '100px';
|
||||||
|
control.element.firstChild.style.width = '10px';
|
||||||
|
control.element.firstChild.style.height = '20px';
|
||||||
|
map.addControl(control);
|
||||||
|
map.getView().setZoom(8);
|
||||||
|
map.renderSync();
|
||||||
|
var dragger = spy.firstCall.args[0];
|
||||||
|
spy.restore();
|
||||||
|
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
||||||
|
target: control.element.firstElementChild
|
||||||
|
});
|
||||||
|
event.clientX = 0;
|
||||||
|
event.clientY = 0;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
expect(control.currentResolution_).to.be(0.0625);
|
||||||
|
expect(control.dragging_).to.be(true);
|
||||||
|
expect(control.dragListenerKeys_).to.be.ok();
|
||||||
|
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||||
|
event.clientX = 0;
|
||||||
|
event.clientY = 2 * control.limits_.height / 8;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
expect(control.currentResolution_).to.be(0.25);
|
||||||
|
event.type = ol.pointer.EventType.POINTERMOVE;
|
||||||
|
event.clientX = 0;
|
||||||
|
event.clientY = 4 * control.limits_.height / 8;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
event.type = ol.pointer.EventType.POINTERUP;
|
||||||
|
dragger.dispatchEvent(event);
|
||||||
|
expect(control.currentResolution_).to.be(1);
|
||||||
|
expect(control.dragListenerKeys_).to.be(null);
|
||||||
|
expect(control.dragging_).to.be(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
goog.require('goog.Disposable');
|
||||||
goog.require('goog.dispose');
|
goog.require('goog.dispose');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('goog.fx.Dragger');
|
|
||||||
goog.require('goog.math.Rect');
|
goog.require('goog.math.Rect');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View');
|
||||||
goog.require('ol.control.ZoomSlider');
|
goog.require('ol.control.ZoomSlider');
|
||||||
|
goog.require('ol.pointer.PointerEvent');
|
||||||
|
|||||||
@@ -0,0 +1,216 @@
|
|||||||
|
goog.provide('ol.test.events');
|
||||||
|
|
||||||
|
|
||||||
|
describe('ol.events', function() {
|
||||||
|
var add, remove, target;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
add = sinon.spy();
|
||||||
|
remove = sinon.spy();
|
||||||
|
target = {
|
||||||
|
addEventListener: add,
|
||||||
|
removeEventListener: remove
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('bindListener_()', function() {
|
||||||
|
it('binds a listener and returns a bound listener function', function() {
|
||||||
|
var listenerObj = {
|
||||||
|
listener: sinon.spy(),
|
||||||
|
bindTo: {id: 1}
|
||||||
|
};
|
||||||
|
var boundListener = ol.events.bindListener_(listenerObj);
|
||||||
|
expect(listenerObj.boundListener).to.equal(boundListener);
|
||||||
|
boundListener();
|
||||||
|
expect(listenerObj.listener.thisValues[0]).to.equal(listenerObj.bindTo);
|
||||||
|
});
|
||||||
|
it('binds a self-unregistering listener when callOnce is true', function() {
|
||||||
|
var bindTo = {id: 1};
|
||||||
|
var listener = sinon.spy();
|
||||||
|
target.removeEventListener = function() {};
|
||||||
|
var listenerObj = {
|
||||||
|
type: 'foo',
|
||||||
|
target: target,
|
||||||
|
listener: listener,
|
||||||
|
bindTo: bindTo,
|
||||||
|
callOnce: true
|
||||||
|
};
|
||||||
|
var boundListener = ol.events.bindListener_(listenerObj);
|
||||||
|
expect(listenerObj.boundListener).to.equal(boundListener);
|
||||||
|
var spy = sinon.spy(ol.events, 'unlistenByKey');
|
||||||
|
boundListener();
|
||||||
|
expect(listener.thisValues[0]).to.equal(bindTo);
|
||||||
|
expect(spy.firstCall.args[0]).to.eql(listenerObj);
|
||||||
|
ol.events.unlistenByKey.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('findListener_()', function() {
|
||||||
|
var listener, listenerObj, listeners;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
listener = function() {};
|
||||||
|
listenerObj = {
|
||||||
|
type: 'foo',
|
||||||
|
target: target,
|
||||||
|
listener: listener
|
||||||
|
};
|
||||||
|
listeners = [listenerObj];
|
||||||
|
});
|
||||||
|
|
||||||
|
it('searches a listener array for a specific listener', function() {
|
||||||
|
var bindTo = {id: 1};
|
||||||
|
var result = ol.events.findListener_(listeners, listener);
|
||||||
|
expect(result).to.be(listenerObj);
|
||||||
|
result = ol.events.findListener_(listeners, listener, bindTo);
|
||||||
|
expect(result).to.be(undefined);
|
||||||
|
listenerObj.bindTo = bindTo;
|
||||||
|
result = ol.events.findListener_(listeners, listener);
|
||||||
|
expect(result).to.be(undefined);
|
||||||
|
result = ol.events.findListener_(listeners, listener, bindTo);
|
||||||
|
expect(result).to.be(listenerObj);
|
||||||
|
});
|
||||||
|
it('marks the delete index on a listener object', function() {
|
||||||
|
var result = ol.events.findListener_(listeners, listener, undefined, true);
|
||||||
|
expect(result).to.be(listenerObj);
|
||||||
|
expect(listenerObj.deleteIndex).to.be(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getListeners()', function() {
|
||||||
|
it('returns listeners for a target and type', function() {
|
||||||
|
var foo = ol.events.listen(target, 'foo', function() {});
|
||||||
|
var bar = ol.events.listen(target, 'bar', function() {});
|
||||||
|
expect (ol.events.getListeners(target, 'foo')).to.eql([foo]);
|
||||||
|
expect (ol.events.getListeners(target, 'bar')).to.eql([bar]);
|
||||||
|
});
|
||||||
|
it('returns undefined when no listeners are registered', function() {
|
||||||
|
expect (ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('listen()', function() {
|
||||||
|
it('calls addEventListener on the target', function() {
|
||||||
|
ol.events.listen(target, 'foo', function() {});
|
||||||
|
expect(add.callCount).to.be(1);
|
||||||
|
});
|
||||||
|
it('returns a key', function() {
|
||||||
|
var key = ol.events.listen(target, 'foo', function() {});
|
||||||
|
expect(key).to.be.a(Object);
|
||||||
|
});
|
||||||
|
it('does not add the same listener twice', function() {
|
||||||
|
var listener = function() {};
|
||||||
|
var key1 = ol.events.listen(target, 'foo', listener);
|
||||||
|
var key2 = ol.events.listen(target, 'foo', listener);
|
||||||
|
expect(key1).to.equal(key2);
|
||||||
|
expect(add.callCount).to.be(1);
|
||||||
|
});
|
||||||
|
it('only treats listeners as same when all args are equal', function() {
|
||||||
|
var listener = function() {};
|
||||||
|
ol.events.listen(target, 'foo', listener, {});
|
||||||
|
ol.events.listen(target, 'foo', listener, {});
|
||||||
|
ol.events.listen(target, 'foo', listener, undefined);
|
||||||
|
expect(add.callCount).to.be(3);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('listenOnce()', function() {
|
||||||
|
it('creates a one-off listener', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
var key = ol.events.listenOnce(target, 'foo', listener);
|
||||||
|
expect(add.callCount).to.be(1);
|
||||||
|
expect(key.callOnce).to.be(true);
|
||||||
|
key.boundListener();
|
||||||
|
expect(listener.callCount).to.be(1);
|
||||||
|
expect(remove.callCount).to.be(1);
|
||||||
|
});
|
||||||
|
it('does not add the same listener twice', function() {
|
||||||
|
var listener = function() {};
|
||||||
|
var key1 = ol.events.listenOnce(target, 'foo', listener);
|
||||||
|
var key2 = ol.events.listenOnce(target, 'foo', listener);
|
||||||
|
expect(key1).to.equal(key2);
|
||||||
|
expect(add.callCount).to.be(1);
|
||||||
|
expect(key1.callOnce).to.be(true);
|
||||||
|
});
|
||||||
|
it('listen() can turn a one-off listener into a permanent one', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
var key = ol.events.listenOnce(target, 'foo', listener);
|
||||||
|
expect(key.callOnce).to.be(true);
|
||||||
|
key = ol.events.listen(target, 'foo', listener);
|
||||||
|
expect(add.callCount).to.be(1);
|
||||||
|
expect(key.callOnce).to.be(false);
|
||||||
|
key.boundListener();
|
||||||
|
expect(remove.callCount).to.be(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('unlisten()', function() {
|
||||||
|
it('unregisters previously registered listeners', function() {
|
||||||
|
var listener = function() {};
|
||||||
|
ol.events.listen(target, 'foo', listener);
|
||||||
|
ol.events.unlisten(target, 'foo', listener);
|
||||||
|
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
|
});
|
||||||
|
it('works with multiple types', function() {
|
||||||
|
var listener = function() {};
|
||||||
|
ol.events.listen(target, ['foo', 'bar'], listener);
|
||||||
|
ol.events.unlisten(target, ['bar', 'foo'], listener);
|
||||||
|
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
|
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('unlistenByKey()', function() {
|
||||||
|
it('unregisters previously registered listeners', function() {
|
||||||
|
var key = ol.events.listen(target, 'foo', function() {});
|
||||||
|
ol.events.unlistenByKey(key);
|
||||||
|
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
|
});
|
||||||
|
it('works with multiple types', function() {
|
||||||
|
var key = ol.events.listen(target, ['foo', 'bar'], function() {});
|
||||||
|
ol.events.unlistenByKey(key);
|
||||||
|
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
|
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('unlistenAll()', function() {
|
||||||
|
it('unregisters all listeners registered for a target', function() {
|
||||||
|
var keys = [
|
||||||
|
ol.events.listen(target, 'foo', function() {}),
|
||||||
|
ol.events.listen(target, 'bar', function() {})
|
||||||
|
];
|
||||||
|
ol.events.unlistenAll(target);
|
||||||
|
expect(ol.events.getListeners(target, 'foo')).to.be(undefined);
|
||||||
|
expect(ol.events.getListeners(target, 'bar')).to.be(undefined);
|
||||||
|
expect(ol.events.LISTENER_MAP_PROP_ in target).to.be(false);
|
||||||
|
expect(keys).to.eql([{}, {}]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Compatibility with ol.events.EventTarget', function() {
|
||||||
|
it('does not register duplicated listeners', function() {
|
||||||
|
var target = new ol.events.EventTarget();
|
||||||
|
var listener = function() {};
|
||||||
|
var key1 = ol.events.listen(target, 'foo', listener);
|
||||||
|
expect(target.getListeners('foo')).to.eql([key1.boundListener]);
|
||||||
|
var key2 = ol.events.listen(target, 'foo', listener);
|
||||||
|
expect(key2.boundListener).to.equal(key1.boundListener);
|
||||||
|
expect(target.getListeners('foo')).to.eql([key1.boundListener]);
|
||||||
|
});
|
||||||
|
it('registers multiple listeners if this object is different', function() {
|
||||||
|
var target = new ol.events.EventTarget();
|
||||||
|
var listener = function() {};
|
||||||
|
var key1 = ol.events.listen(target, 'foo', listener, {});
|
||||||
|
var key2 = ol.events.listen(target, 'foo', listener, {});
|
||||||
|
expect(key1.boundListener).to.not.equal(key2.boundListener);
|
||||||
|
expect(target.getListeners('foo')).to.eql(
|
||||||
|
[key2.boundListener, key1.boundListener]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.EventTarget');
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
goog.provide('ol.test.events.Event');
|
||||||
|
|
||||||
|
|
||||||
|
describe('ol.events.Event', function() {
|
||||||
|
|
||||||
|
describe('constructor', function() {
|
||||||
|
it('takes a type as argument', function() {
|
||||||
|
var event = new ol.events.Event('foo');
|
||||||
|
expect(event.type).to.be('foo');
|
||||||
|
});
|
||||||
|
it('can be constructed with an optional 2nd target arg', function() {
|
||||||
|
var target = {id: 1};
|
||||||
|
var event = new ol.events.Event('foo', target);
|
||||||
|
expect(event.target).to.equal(target);
|
||||||
|
});
|
||||||
|
it('does not set the propagationStopped flag', function() {
|
||||||
|
var event = new ol.events.Event('foo');
|
||||||
|
expect(event.propagationStopped).to.be(undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#preventDefault', function() {
|
||||||
|
it('sets the propagationStopped flag', function() {
|
||||||
|
var event = new ol.events.Event('foo');
|
||||||
|
event.preventDefault();
|
||||||
|
expect(event.propagationStopped).to.be(true);
|
||||||
|
});
|
||||||
|
it('is the same as #stopPropagation', function() {
|
||||||
|
var event = new ol.events.Event('foo');
|
||||||
|
expect(event.stopPropagation).to.equal(event.preventDefault);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('ol.events.Event.preventDefault', function() {
|
||||||
|
it('calls preventDefault on the event object', function() {
|
||||||
|
var event = {
|
||||||
|
preventDefault: sinon.spy()
|
||||||
|
};
|
||||||
|
ol.events.Event.preventDefault(event);
|
||||||
|
expect(event.preventDefault.called).to.be(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('ol.events.Event.stopPropagation', function() {
|
||||||
|
it('calls preventDefault on the event object', function() {
|
||||||
|
var event = {
|
||||||
|
stopPropagation: sinon.spy()
|
||||||
|
};
|
||||||
|
ol.events.Event.stopPropagation(event);
|
||||||
|
expect(event.stopPropagation.called).to.be(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
goog.require('ol.events.Event');
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
goog.provide('ol.test.events.EventTarget');
|
||||||
|
|
||||||
|
|
||||||
|
describe('ol.events.EventTarget', function() {
|
||||||
|
var called, events, eventTarget, spy1, spy2, spy3;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
called = [];
|
||||||
|
events = [];
|
||||||
|
function spy(evt) {
|
||||||
|
called.push(this.id);
|
||||||
|
events.push(evt);
|
||||||
|
}
|
||||||
|
spy1 = spy.bind({id: 1});
|
||||||
|
spy2 = spy.bind({id: 2});
|
||||||
|
spy3 = spy.bind({id: 3});
|
||||||
|
eventTarget = new ol.events.EventTarget();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('constructor', function() {
|
||||||
|
it('creates an instance', function() {
|
||||||
|
expect(eventTarget).to.be.a(ol.events.EventTarget);
|
||||||
|
});
|
||||||
|
it('creates an empty listeners_ object', function() {
|
||||||
|
expect(Object.keys(eventTarget.listeners_)).to.have.length(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#hasListener', function() {
|
||||||
|
it('reports any listeners when called without argument', function() {
|
||||||
|
expect(eventTarget.hasListener()).to.be(false);
|
||||||
|
eventTarget.listeners_['foo'] = [function() {}];
|
||||||
|
expect(eventTarget.hasListener()).to.be(true);
|
||||||
|
});
|
||||||
|
it('reports listeners for the type passed as argument', function() {
|
||||||
|
eventTarget.listeners_['foo'] = [function() {}];
|
||||||
|
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||||
|
expect(eventTarget.hasListener('bar')).to.be(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#getListeners', function() {
|
||||||
|
it('returns listeners for a type or undefined if none', function() {
|
||||||
|
expect(eventTarget.getListeners('foo')).to.be(undefined);
|
||||||
|
var listeners = [function() {}];
|
||||||
|
eventTarget.listeners_['foo'] = listeners;
|
||||||
|
expect(eventTarget.getListeners('foo')).to.equal(listeners);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
describe('#addEventListener()', function() {
|
||||||
|
it('has listeners for each registered type', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.addEventListener('bar', spy2);
|
||||||
|
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||||
|
expect(eventTarget.hasListener('bar')).to.be(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#removeEventListener()', function() {
|
||||||
|
it('keeps the listeners registry clean', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.removeEventListener('foo', spy1);
|
||||||
|
expect(eventTarget.hasListener('foo')).to.be(false);
|
||||||
|
});
|
||||||
|
it('removes added listeners from the listeners registry', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.addEventListener('foo', spy2);
|
||||||
|
eventTarget.removeEventListener('foo', spy1, false);
|
||||||
|
expect(eventTarget.getListeners('foo')).to.have.length(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#dispatchEvent()', function() {
|
||||||
|
it('calls listeners in the correct order', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.addEventListener('foo', spy2);
|
||||||
|
eventTarget.dispatchEvent('foo');
|
||||||
|
expect(called).to.eql([1, 2]);
|
||||||
|
});
|
||||||
|
it('stops propagation when listeners return false', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.addEventListener('foo', function(evt) {
|
||||||
|
spy2();
|
||||||
|
return false;
|
||||||
|
}, false);
|
||||||
|
eventTarget.addEventListener('foo', spy3);
|
||||||
|
eventTarget.dispatchEvent('foo');
|
||||||
|
expect(called).to.eql([1, 2]);
|
||||||
|
});
|
||||||
|
it('stops propagation when listeners call preventDefault()', function() {
|
||||||
|
eventTarget.addEventListener('foo', function(evt) {
|
||||||
|
spy2();
|
||||||
|
evt.preventDefault();
|
||||||
|
});
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.dispatchEvent('foo');
|
||||||
|
expect(called).to.eql([2]);
|
||||||
|
});
|
||||||
|
it('passes a default ol.events.Event object to listeners', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
eventTarget.dispatchEvent('foo');
|
||||||
|
expect(events[0]).to.be.a(ol.events.Event);
|
||||||
|
expect(events[0].type).to.be('foo');
|
||||||
|
expect(events[0].target).to.equal(eventTarget);
|
||||||
|
});
|
||||||
|
it('passes a custom event object with target to listeners', function() {
|
||||||
|
eventTarget.addEventListener('foo', spy1);
|
||||||
|
var event = {
|
||||||
|
type: 'foo'
|
||||||
|
};
|
||||||
|
eventTarget.dispatchEvent(event);
|
||||||
|
expect(events[0]).to.equal(event);
|
||||||
|
expect(events[0].target).to.equal(eventTarget);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#dispose()', function() {
|
||||||
|
it('cleans up foreign references', function() {
|
||||||
|
ol.events.listen(eventTarget, 'foo', spy1, document);
|
||||||
|
expect(eventTarget.hasListener('foo')).to.be(true);
|
||||||
|
eventTarget.dispose();
|
||||||
|
expect(eventTarget.hasListener('foo')).to.be(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
goog.require('ol.events.EventTarget');
|
||||||
@@ -462,7 +462,7 @@ describe('ol.Feature.createStyleFunction()', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.geom.Point');
|
goog.require('ol.geom.Point');
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ describe('ol.featureloader', function() {
|
|||||||
var url = 'spec/ol/data/point.json';
|
var url = 'spec/ol/data/point.json';
|
||||||
var format = new ol.format.GeoJSON();
|
var format = new ol.format.GeoJSON();
|
||||||
loader = ol.featureloader.tile(url, format);
|
loader = ol.featureloader.tile(url, format);
|
||||||
goog.events.listen(tile, 'change', function(e) {
|
ol.events.listen(tile, 'change', function(e) {
|
||||||
expect(tile.getFeatures().length).to.be.greaterThan(0);
|
expect(tile.getFeatures().length).to.be.greaterThan(0);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -81,7 +81,7 @@ describe('ol.featureloader', function() {
|
|||||||
var url = 'spec/ol/data/14-8938-5680.vector.pbf';
|
var url = 'spec/ol/data/14-8938-5680.vector.pbf';
|
||||||
var format = new ol.format.MVT();
|
var format = new ol.format.MVT();
|
||||||
loader = ol.featureloader.tile(url, format);
|
loader = ol.featureloader.tile(url, format);
|
||||||
goog.events.listen(tile, 'change', function(e) {
|
ol.events.listen(tile, 'change', function(e) {
|
||||||
expect(tile.getFeatures().length).to.be.greaterThan(0);
|
expect(tile.getFeatures().length).to.be.greaterThan(0);
|
||||||
expect(tile.getProjection().getUnits()).to.be('tile-pixels');
|
expect(tile.getProjection().getUnits()).to.be('tile-pixels');
|
||||||
done();
|
done();
|
||||||
@@ -93,7 +93,7 @@ describe('ol.featureloader', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.VectorTile');
|
goog.require('ol.VectorTile');
|
||||||
goog.require('ol.featureloader');
|
goog.require('ol.featureloader');
|
||||||
goog.require('ol.format.GeoJSON');
|
goog.require('ol.format.GeoJSON');
|
||||||
|
|||||||
@@ -1,16 +1,101 @@
|
|||||||
goog.provide('ol.test.interaction.DragAndDrop');
|
goog.provide('ol.test.interaction.DragAndDrop');
|
||||||
|
|
||||||
describe('ol.interaction.DragAndDrop', function() {
|
describe('ol.interaction.DragAndDrop', function() {
|
||||||
|
var viewport, map, interaction;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
viewport = new ol.events.EventTarget();
|
||||||
|
map = {
|
||||||
|
getViewport: function() {
|
||||||
|
return viewport;
|
||||||
|
},
|
||||||
|
getView: function() {
|
||||||
|
return new ol.View()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
interaction = new ol.interaction.DragAndDrop({
|
||||||
|
formatConstructors: [ol.format.GeoJSON]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('constructor', function() {
|
describe('constructor', function() {
|
||||||
|
|
||||||
it('can be constructed without arguments', function() {
|
it('can be constructed without arguments', function() {
|
||||||
var instance = new ol.interaction.DragAndDrop();
|
var interaction = new ol.interaction.DragAndDrop();
|
||||||
expect(instance).to.be.an(ol.interaction.DragAndDrop);
|
expect(interaction).to.be.an(ol.interaction.DragAndDrop);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('sets formatConstructors on the instance', function() {
|
||||||
|
expect(interaction.formatConstructors_).to.have.length(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#setMap()', function() {
|
||||||
|
it('registers and unregisters listeners', function() {
|
||||||
|
interaction.setMap(map);
|
||||||
|
expect(viewport.hasListener(ol.events.EventType.DRAGENTER)).to.be(true);
|
||||||
|
expect(viewport.hasListener(ol.events.EventType.DRAGOVER)).to.be(true);
|
||||||
|
expect(viewport.hasListener(ol.events.EventType.DROP)).to.be(true);
|
||||||
|
interaction.setMap(null);
|
||||||
|
expect(viewport.hasListener(ol.events.EventType.DRAGENTER)).to.be(false);
|
||||||
|
expect(viewport.hasListener(ol.events.EventType.DRAGOVER)).to.be(false);
|
||||||
|
expect(viewport.hasListener(ol.events.EventType.DROP)).to.be(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#handleDrop_', function() {
|
||||||
|
var origFileReader = goog.global.FileReader;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
FileReader = function() {
|
||||||
|
ol.events.EventTarget.apply(this, arguments);
|
||||||
|
this.readAsText = function(file) {
|
||||||
|
this.result = file;
|
||||||
|
this.dispatchEvent('load');
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ol.inherits(FileReader, ol.events.EventTarget);
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(function() {
|
||||||
|
goog.global.FileReader = origFileReader;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('reads dropped files', function(done) {
|
||||||
|
interaction.on('addfeatures', function(evt) {
|
||||||
|
expect(evt.features.length).to.be(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
interaction.setMap(map);
|
||||||
|
var event = new ol.events.Event();
|
||||||
|
event.dataTransfer = {};
|
||||||
|
event.type = ol.events.EventType.DRAGENTER;
|
||||||
|
viewport.dispatchEvent(event);
|
||||||
|
event.type = ol.events.EventType.DRAGOVER;
|
||||||
|
viewport.dispatchEvent(event);
|
||||||
|
event.type = ol.events.EventType.DROP;
|
||||||
|
event.dataTransfer.files = {
|
||||||
|
length: 1,
|
||||||
|
item: function() {
|
||||||
|
return JSON.stringify({
|
||||||
|
type: 'FeatureCollection',
|
||||||
|
features: [{type: 'Feature', id: '1'}]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
viewport.dispatchEvent(event);
|
||||||
|
expect(event.dataTransfer.dropEffect).to.be('copy');
|
||||||
|
expect(event.propagationStopped).to.be(true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('ol.interaction.DragAndDrop');
|
goog.require('ol.interaction.DragAndDrop');
|
||||||
|
goog.require('ol.View');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
goog.require('ol.events.EventTarget');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
|
goog.require('ol.format.GeoJSON');
|
||||||
|
|||||||
@@ -51,11 +51,11 @@ describe('ol.interaction.Draw', function() {
|
|||||||
var shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false;
|
var shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false;
|
||||||
var event = new ol.MapBrowserPointerEvent(type, map,
|
var event = new ol.MapBrowserPointerEvent(type, map,
|
||||||
new ol.pointer.PointerEvent(type,
|
new ol.pointer.PointerEvent(type,
|
||||||
new goog.events.BrowserEvent({
|
{
|
||||||
clientX: position.x + x + width / 2,
|
clientX: position.x + x + width / 2,
|
||||||
clientY: position.y + y + height / 2,
|
clientY: position.y + y + height / 2,
|
||||||
shiftKey: shiftKey
|
shiftKey: shiftKey
|
||||||
})));
|
}));
|
||||||
map.handleMapBrowserEvent(event);
|
map.handleMapBrowserEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,8 +163,8 @@ describe('ol.interaction.Draw', function() {
|
|||||||
it('triggers draw events', function() {
|
it('triggers draw events', function() {
|
||||||
var ds = sinon.spy();
|
var ds = sinon.spy();
|
||||||
var de = sinon.spy();
|
var de = sinon.spy();
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||||
simulateEvent('pointermove', 10, 20);
|
simulateEvent('pointermove', 10, 20);
|
||||||
simulateEvent('pointerdown', 10, 20);
|
simulateEvent('pointerdown', 10, 20);
|
||||||
simulateEvent('pointerup', 10, 20);
|
simulateEvent('pointerup', 10, 20);
|
||||||
@@ -180,7 +180,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
end: 0,
|
end: 0,
|
||||||
addfeature: 0
|
addfeature: 0
|
||||||
};
|
};
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND,
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND,
|
||||||
function() {
|
function() {
|
||||||
expect(receivedEvents.end).to.be(0);
|
expect(receivedEvents.end).to.be(0);
|
||||||
expect(receivedEvents.addfeature).to.be(0);
|
expect(receivedEvents.addfeature).to.be(0);
|
||||||
@@ -309,8 +309,8 @@ describe('ol.interaction.Draw', function() {
|
|||||||
it('triggers draw events', function() {
|
it('triggers draw events', function() {
|
||||||
var ds = sinon.spy();
|
var ds = sinon.spy();
|
||||||
var de = sinon.spy();
|
var de = sinon.spy();
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||||
|
|
||||||
// first point
|
// first point
|
||||||
simulateEvent('pointermove', 10, 20);
|
simulateEvent('pointermove', 10, 20);
|
||||||
@@ -467,8 +467,8 @@ describe('ol.interaction.Draw', function() {
|
|||||||
it('triggers draw events', function() {
|
it('triggers draw events', function() {
|
||||||
var ds = sinon.spy();
|
var ds = sinon.spy();
|
||||||
var de = sinon.spy();
|
var de = sinon.spy();
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||||
|
|
||||||
// first point
|
// first point
|
||||||
simulateEvent('pointermove', 10, 20);
|
simulateEvent('pointermove', 10, 20);
|
||||||
@@ -607,8 +607,8 @@ describe('ol.interaction.Draw', function() {
|
|||||||
it('triggers draw events', function() {
|
it('triggers draw events', function() {
|
||||||
var ds = sinon.spy();
|
var ds = sinon.spy();
|
||||||
var de = sinon.spy();
|
var de = sinon.spy();
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, ds);
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWEND, de);
|
||||||
|
|
||||||
// first point
|
// first point
|
||||||
simulateEvent('pointermove', 10, 20);
|
simulateEvent('pointermove', 10, 20);
|
||||||
@@ -805,7 +805,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
|
|
||||||
it('dispatches a drawstart event', function() {
|
it('dispatches a drawstart event', function() {
|
||||||
var spy = sinon.spy();
|
var spy = sinon.spy();
|
||||||
goog.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, spy);
|
ol.events.listen(draw, ol.interaction.DrawEventType.DRAWSTART, spy);
|
||||||
draw.extend(feature);
|
draw.extend(feature);
|
||||||
expect(spy.callCount).to.be(1);
|
expect(spy.callCount).to.be(1);
|
||||||
});
|
});
|
||||||
@@ -814,8 +814,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.dispose');
|
goog.require('goog.dispose');
|
||||||
goog.require('goog.events');
|
goog.require('ol.events');
|
||||||
goog.require('goog.events.BrowserEvent');
|
|
||||||
goog.require('goog.style');
|
goog.require('goog.style');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ describe('ol.interaction.Interaction', function() {
|
|||||||
|
|
||||||
it('creates a new interaction', function() {
|
it('creates a new interaction', function() {
|
||||||
expect(interaction).to.be.a(ol.interaction.Interaction);
|
expect(interaction).to.be.a(ol.interaction.Interaction);
|
||||||
expect(interaction).to.be.a(goog.events.EventTarget);
|
expect(interaction).to.be.a(ol.events.EventTarget);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('creates an active interaction', function() {
|
it('creates an active interaction', function() {
|
||||||
@@ -55,6 +55,6 @@ describe('ol.interaction.Interaction', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.events.EventTarget');
|
goog.require('ol.events.EventTarget');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
/*global createMapDiv, disposeMap*/
|
||||||
|
goog.provide('ol.test.interaction.KeyboardPan');
|
||||||
|
|
||||||
|
|
||||||
|
describe('ol.interaction.KeyboardPan', function() {
|
||||||
|
var map;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
map = new ol.Map({
|
||||||
|
target: createMapDiv(100, 100),
|
||||||
|
view: new ol.View({
|
||||||
|
center: [0, 0],
|
||||||
|
resolutions: [1],
|
||||||
|
zoom: 0
|
||||||
|
})
|
||||||
|
});
|
||||||
|
map.renderSync();
|
||||||
|
});
|
||||||
|
afterEach(function() {
|
||||||
|
disposeMap(map);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('handleEvent()', function() {
|
||||||
|
it('pans on arrow keys', function() {
|
||||||
|
var spy = sinon.spy(ol.interaction.Interaction, 'pan');
|
||||||
|
var event = new ol.MapBrowserEvent(ol.events.EventType.KEYDOWN, map, {
|
||||||
|
type: ol.events.EventType.KEYDOWN,
|
||||||
|
target: map.getTargetElement(),
|
||||||
|
preventDefault: ol.events.Event.prototype.preventDefault
|
||||||
|
});
|
||||||
|
event.originalEvent.keyCode = ol.events.KeyCode.DOWN;
|
||||||
|
map.handleMapBrowserEvent(event);
|
||||||
|
event.originalEvent.keyCode = ol.events.KeyCode.UP;
|
||||||
|
map.handleMapBrowserEvent(event);
|
||||||
|
event.originalEvent.keyCode = ol.events.KeyCode.LEFT;
|
||||||
|
map.handleMapBrowserEvent(event);
|
||||||
|
event.originalEvent.keyCode = ol.events.KeyCode.RIGHT;
|
||||||
|
map.handleMapBrowserEvent(event);
|
||||||
|
expect(spy.getCall(0).args[2]).to.eql([0, -128]);
|
||||||
|
expect(spy.getCall(1).args[2]).to.eql([0, 128]);
|
||||||
|
expect(spy.getCall(2).args[2]).to.eql([-128, 0]);
|
||||||
|
expect(spy.getCall(3).args[2]).to.eql([128, 0]);
|
||||||
|
ol.interaction.Interaction.pan.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
goog.require('goog.object');
|
||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.MapBrowserEvent');
|
||||||
|
goog.require('ol.View');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
|
goog.require('ol.events.KeyCode');
|
||||||
|
goog.require('ol.interaction.Interaction');
|
||||||
|
goog.require('ol.interaction.KeyboardPan');
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user