Merge pull request #2726 from elemoine/feature-setstyle
Make ol.Feature#setStyle accept null
This commit is contained in:
+13
-8
@@ -174,9 +174,10 @@ ol.Feature.prototype.getGeometryName = function() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {ol.style.Style|Array.<ol.style.Style>|
|
* @return {ol.style.Style|Array.<ol.style.Style>|
|
||||||
* ol.feature.FeatureStyleFunction} Return the style as set by setStyle in
|
* ol.feature.FeatureStyleFunction} Return the style as set by `setStyle`
|
||||||
* the same format that it was provided in. If setStyle has not been run,
|
* in the same format that it was provided in. If `setStyle` has not been
|
||||||
* return `undefined`.
|
* called, or if it was called with `null`, then `getStyle()` will return
|
||||||
|
* `null`.
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.getStyle = function() {
|
ol.Feature.prototype.getStyle = function() {
|
||||||
@@ -237,13 +238,17 @@ goog.exportProperty(
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Set the style for the feature. This can be a single style object, an array
|
||||||
|
* of styles, or a function that takes a resolution and returns an array of
|
||||||
|
* styles. If it is `null` the feature has no style (a `null` style).
|
||||||
* @param {ol.style.Style|Array.<ol.style.Style>|
|
* @param {ol.style.Style|Array.<ol.style.Style>|
|
||||||
* ol.feature.FeatureStyleFunction} style Set the style for this feature.
|
* ol.feature.FeatureStyleFunction} style Style for this feature.
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Feature.prototype.setStyle = function(style) {
|
ol.Feature.prototype.setStyle = function(style) {
|
||||||
this.style_ = style;
|
this.style_ = style;
|
||||||
this.styleFunction_ = ol.feature.createFeatureStyleFunction(style);
|
this.styleFunction_ = goog.isNull(style) ?
|
||||||
|
undefined : ol.feature.createFeatureStyleFunction(style);
|
||||||
this.changed();
|
this.changed();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -293,9 +298,9 @@ ol.feature.FeatureStyleFunction;
|
|||||||
* Convert the provided object into a feature style function. Functions passed
|
* Convert the provided object into a feature style function. Functions passed
|
||||||
* through unchanged. Arrays of ol.style.Style or single style objects wrapped
|
* through unchanged. Arrays of ol.style.Style or single style objects wrapped
|
||||||
* in a new feature style function.
|
* in a new feature style function.
|
||||||
* @param {ol.feature.FeatureStyleFunction|Array.<ol.style.Style>|
|
* @param {ol.feature.FeatureStyleFunction|!Array.<ol.style.Style>|
|
||||||
* ol.style.Style} obj A feature style function, a single style, or an array
|
* !ol.style.Style} obj A feature style function, a single style, or an
|
||||||
* of styles.
|
* array of styles.
|
||||||
* @return {ol.feature.FeatureStyleFunction} A style function.
|
* @return {ol.feature.FeatureStyleFunction} A style function.
|
||||||
*/
|
*/
|
||||||
ol.feature.createFeatureStyleFunction = function(obj) {
|
ol.feature.createFeatureStyleFunction = function(obj) {
|
||||||
|
|||||||
@@ -320,6 +320,14 @@ describe('ol.Feature', function() {
|
|||||||
expect(feature.getStyleFunction()).to.be(styleFunction);
|
expect(feature.getStyleFunction()).to.be(styleFunction);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('accepts null', function() {
|
||||||
|
var feature = new ol.Feature();
|
||||||
|
feature.setStyle(style);
|
||||||
|
feature.setStyle(null);
|
||||||
|
expect(feature.getStyle()).to.be(null);
|
||||||
|
expect(feature.getStyleFunction()).to.be(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
it('dispatches a change event', function(done) {
|
it('dispatches a change event', function(done) {
|
||||||
var feature = new ol.Feature();
|
var feature = new ol.Feature();
|
||||||
feature.on('change', function() {
|
feature.on('change', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user