Change the interaction condition signature

This commit is contained in:
Éric Lemoine
2013-09-12 18:08:01 +02:00
parent daddc61dc6
commit ba3f97d50a
8 changed files with 36 additions and 29 deletions

View File

@@ -7,16 +7,17 @@ goog.require('goog.functions');
/**
* @typedef {function(goog.events.BrowserEvent): boolean}
* @typedef {function(ol.MapBrowserEvent): boolean}
*/
ol.interaction.ConditionType;
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if only the alt key is pressed.
*/
ol.interaction.condition.altKeyOnly = function(browserEvent) {
ol.interaction.condition.altKeyOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
return (
browserEvent.altKey &&
!browserEvent.platformModifierKey &&
@@ -25,10 +26,11 @@ ol.interaction.condition.altKeyOnly = function(browserEvent) {
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if only the alt and shift keys are pressed.
*/
ol.interaction.condition.altShiftKeysOnly = function(browserEvent) {
ol.interaction.condition.altShiftKeysOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
return (
browserEvent.altKey &&
!browserEvent.platformModifierKey &&
@@ -37,26 +39,28 @@ ol.interaction.condition.altShiftKeysOnly = function(browserEvent) {
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True.
*/
ol.interaction.condition.always = goog.functions.TRUE;
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True only the event is a click event.
*/
ol.interaction.condition.clickOnly = function(browserEvent) {
ol.interaction.condition.clickOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
return browserEvent.type == goog.events.EventType.CLICK;
};
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if only the no modifier keys are pressed.
*/
ol.interaction.condition.noModifierKeys = function(browserEvent) {
ol.interaction.condition.noModifierKeys = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
return (
!browserEvent.altKey &&
!browserEvent.platformModifierKey &&
@@ -65,10 +69,11 @@ ol.interaction.condition.noModifierKeys = function(browserEvent) {
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if only the platform modifier key is pressed.
*/
ol.interaction.condition.platformModifierKeyOnly = function(browserEvent) {
ol.interaction.condition.platformModifierKeyOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
return (
!browserEvent.altKey &&
browserEvent.platformModifierKey &&
@@ -77,10 +82,11 @@ ol.interaction.condition.platformModifierKeyOnly = function(browserEvent) {
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if only the shift key is pressed.
*/
ol.interaction.condition.shiftKeyOnly = function(browserEvent) {
ol.interaction.condition.shiftKeyOnly = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
return (
!browserEvent.altKey &&
!browserEvent.platformModifierKey &&
@@ -89,10 +95,11 @@ ol.interaction.condition.shiftKeyOnly = function(browserEvent) {
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event.
* @return {boolean} True if the target element is not editable.
*/
ol.interaction.condition.targetNotEditable = function(browserEvent) {
ol.interaction.condition.targetNotEditable = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
var tagName = browserEvent.target.tagName;
return (
tagName !== goog.dom.TagName.INPUT &&

View File

@@ -105,7 +105,7 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
*/
ol.interaction.DragPan.prototype.handleDragStart = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
if (browserEvent.isMouseActionButton() && this.condition_(browserEvent)) {
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
if (this.kinetic_) {
this.kinetic_.begin();
this.kinetic_.update(browserEvent.clientX, browserEvent.clientY);

View File

@@ -117,8 +117,7 @@ ol.interaction.DragRotateAndZoom.prototype.handleDragEnd =
*/
ol.interaction.DragRotateAndZoom.prototype.handleDragStart =
function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
if (this.condition_(browserEvent)) {
if (this.condition_(mapBrowserEvent)) {
this.lastAngle_ = undefined;
this.lastMagnitude_ = undefined;
return true;

View File

@@ -83,7 +83,7 @@ ol.interaction.DragRotate.prototype.handleDragEnd = function(mapBrowserEvent) {
ol.interaction.DragRotate.prototype.handleDragStart =
function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
if (browserEvent.isMouseActionButton() && this.condition_(browserEvent)) {
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
var map = mapBrowserEvent.map;
map.requestRenderFrame();
this.lastAngle_ = undefined;

View File

@@ -88,7 +88,7 @@ ol.interaction.DragZoom.prototype.handleDragEnd =
ol.interaction.DragZoom.prototype.handleDragStart =
function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.browserEvent;
if (browserEvent.isMouseActionButton() && this.condition_(browserEvent)) {
if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) {
this.dragBox_ = new ol.control.DragBox({
startCoordinate: this.startCoordinate
});

View File

@@ -59,7 +59,8 @@ ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent =
var keyEvent = /** @type {goog.events.KeyEvent} */
(mapBrowserEvent.browserEvent);
var keyCode = keyEvent.keyCode;
if (this.condition_(keyEvent) && (keyCode == goog.events.KeyCodes.DOWN ||
if (this.condition_(mapBrowserEvent) &&
(keyCode == goog.events.KeyCodes.DOWN ||
keyCode == goog.events.KeyCodes.LEFT ||
keyCode == goog.events.KeyCodes.RIGHT ||
keyCode == goog.events.KeyCodes.UP)) {

View File

@@ -56,7 +56,7 @@ ol.interaction.KeyboardZoom.prototype.handleMapBrowserEvent =
var keyEvent = /** @type {goog.events.KeyEvent} */
(mapBrowserEvent.browserEvent);
var charCode = keyEvent.charCode;
if (this.condition_(keyEvent) &&
if (this.condition_(mapBrowserEvent) &&
(charCode == '+'.charCodeAt(0) || charCode == '-'.charCodeAt(0))) {
var map = mapBrowserEvent.map;
var delta = (charCode == '+'.charCodeAt(0)) ? this.delta_ : -this.delta_;

View File

@@ -56,15 +56,15 @@ goog.inherits(ol.interaction.Select, ol.interaction.Interaction);
/**
* @inheritDoc.
*/
ol.interaction.Select.prototype.handleMapBrowserEvent = function(evt) {
var browserEvent = evt.browserEvent;
if (this.condition_(browserEvent)) {
var map = evt.map;
ol.interaction.Select.prototype.handleMapBrowserEvent =
function(mapBrowserEvent) {
if (this.condition_(mapBrowserEvent)) {
var map = mapBrowserEvent.map;
var layers = map.getLayerGroup().getLayersArray();
if (!goog.isNull(this.layerFilter_)) {
layers = goog.array.filter(layers, this.layerFilter_);
}
var clear = !ol.interaction.condition.shiftKeyOnly(browserEvent);
var clear = !ol.interaction.condition.shiftKeyOnly(mapBrowserEvent);
var that = this;
var select = function(featuresByLayer) {
@@ -73,7 +73,7 @@ ol.interaction.Select.prototype.handleMapBrowserEvent = function(evt) {
map.getFeatures({
layers: layers,
pixel: evt.getPixel(),
pixel: mapBrowserEvent.getPixel(),
success: select
});
}