Do not use a temporary layer for selected features

This commit is contained in:
ahocevar
2013-11-09 14:07:08 +01:00
parent 9fca2c407d
commit d9fd459654
2 changed files with 30 additions and 92 deletions

View File

@@ -46,29 +46,27 @@ describe('ol.interaction.Select', function() {
describe('#select', function() {
var selectedFeaturesFilter = function(feature) {
return feature.renderIntent == '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');