Merge pull request #1256 from ahocevar/simplify-select

Simplify Select interaction and prepare for programmatic feature selection without interaction
This commit is contained in:
ahocevar
2013-11-11 13:19:57 -08:00
8 changed files with 115 additions and 153 deletions

View File

@@ -894,7 +894,7 @@ describe('ol.expr.lib', function() {
describe('renderIntent()', function() {
var feature = new ol.Feature();
feature.renderIntent = 'foo';
feature.setRenderIntent('foo');
var isFoo = parse('renderIntent("foo")');
var isBar = parse('renderIntent("bar")');

View File

@@ -46,29 +46,27 @@ describe('ol.interaction.Select', function() {
describe('#select', function() {
var selectedFeaturesFilter = function(feature) {
return feature.getRenderIntent() == 'selected';
};
it('toggles selection of features', function() {
select.select(map, [features], [vector]);
var layer = select.selectionLayers[goog.getUid(map)]
.layers[goog.getUid(vector)];
expect(goog.object.getCount(layer.featureCache_.idLookup_)).to.be(2);
expect(vector.getFeatures(selectedFeaturesFilter).length).to.be(2);
select.select(map, [features], [vector]);
expect(goog.object.getCount(layer.featureCache_.idLookup_)).to.be(0);
expect(vector.getFeatures(selectedFeaturesFilter).length).to.be(0);
});
it('can append features to an existing selection', function() {
select.select(map, [[features[0]]], [vector]);
select.select(map, [[features[0]]], [vector], true);
select.select(map, [[features[1]]], [vector]);
var layer = select.selectionLayers[goog.getUid(map)]
.layers[goog.getUid(vector)];
expect(goog.object.getCount(layer.featureCache_.idLookup_)).to.be(2);
expect(vector.getFeatures(selectedFeaturesFilter).length).to.be(2);
});
it('can clear a selection before selecting new features', function() {
select.select(map, [[features[0]]], [vector], true);
select.select(map, [[features[1]]], [vector], true);
var layer = select.selectionLayers[goog.getUid(map)]
.layers[goog.getUid(vector)];
expect(goog.object.getCount(layer.featureCache_.idLookup_)).to.be(1);
expect(vector.getFeatures(selectedFeaturesFilter).length).to.be(1);
});
});
@@ -76,7 +74,6 @@ describe('ol.interaction.Select', function() {
});
goog.require('goog.dispose');
goog.require('goog.object');
goog.require('ol.Map');
goog.require('ol.interaction.Select');
goog.require('ol.layer.Vector');