Merge layerFilter option into layers

This commit is contained in:
Frederic Junod
2014-04-22 09:04:50 +02:00
parent 2c7282d4e9
commit 3c308af91f
2 changed files with 21 additions and 23 deletions
+7 -11
View File
@@ -1726,8 +1726,7 @@ olx.interaction.PinchZoomOptions.prototype.duration;
/** /**
* @typedef {{addCondition: (ol.events.ConditionType|undefined), * @typedef {{addCondition: (ol.events.ConditionType|undefined),
* condition: (ol.events.ConditionType|undefined), * condition: (ol.events.ConditionType|undefined),
* layerFilter: (function(ol.layer.Layer): boolean|undefined), * layers: (Array.<ol.layer.Layer>|function(ol.layer.Layer): boolean|undefined),
* layers: (Array.<ol.layer.Layer>|undefined),
* style: (ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined), * style: (ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined),
* removeCondition: (ol.events.ConditionType|undefined), * removeCondition: (ol.events.ConditionType|undefined),
* toggleCondition: (ol.events.ConditionType|undefined)}} * toggleCondition: (ol.events.ConditionType|undefined)}}
@@ -1755,15 +1754,12 @@ olx.interaction.SelectOptions.prototype.condition;
/** /**
* Filter function to restrict selection to a subset of layers. * A list of layers from which features should be
* @type {function(ol.layer.Layer): boolean|undefined} * selected. Alternatively, a filter function can be provided. The
*/ * function will be called for each layer in the map and should return
olx.interaction.SelectOptions.prototype.layerFilter; * `true` for layers that you want to be selectable. If the option is
* absent, all visible layers will be considered selectable.
* @type {Array.<ol.layer.Layer>|function(ol.layer.Layer): boolean|undefined}
/**
* Layers. Zero or more layers from which features should be selected.
* @type {Array.<ol.layer.Layer>|undefined}
*/ */
olx.interaction.SelectOptions.prototype.layers; olx.interaction.SelectOptions.prototype.layers;
+14 -12
View File
@@ -55,18 +55,20 @@ ol.interaction.Select = function(opt_options) {
options.toggleCondition : ol.events.condition.shiftKeyOnly; options.toggleCondition : ol.events.condition.shiftKeyOnly;
var layerFilter; var layerFilter;
if (goog.isDef(options.layerFilter)) { if (goog.isDef(options.layers)) {
layerFilter = options.layerFilter; if (goog.isFunction(options.layers)) {
} else if (goog.isDef(options.layers)) { layerFilter = options.layers;
var layers = options.layers; } else {
layerFilter = var layers = options.layers;
/** layerFilter =
* @param {ol.layer.Layer} layer Layer. /**
* @return {boolean} Include. * @param {ol.layer.Layer} layer Layer.
*/ * @return {boolean} Include.
function(layer) { */
return goog.array.contains(layers, layer); function(layer) {
}; return goog.array.contains(layers, layer);
};
}
} else { } else {
layerFilter = goog.functions.TRUE; layerFilter = goog.functions.TRUE;
} }