Browse Source

Add getLayerLabel to Stack

up-style-manager
Artur Arseniev 4 years ago
parent
commit
8f7d3b7db6
  1. 30
      src/style_manager/model/PropertyStack.js

30
src/style_manager/model/PropertyStack.js

@ -35,6 +35,9 @@ export default Property.extend({
// Parse single layer value string
parseLayer: null,
// Custom layer label function
layerLabel: null,
// Current selected layer
selectedLayer: null,
},
@ -243,6 +246,33 @@ export default Property.extend({
return layer && this.selectLayer(layer);
},
/**
* Get layer label
* @param {[Layer]} layer
* @returns {String}
*/
getLayerLabel(layer) {
let result = '';
if (layer) {
const layerLabel = this.get('layerLabel');
const values = layer.getValues();
const index = layer.getIndex();
if (layerLabel) {
result = layerLabel(layer, { index, values });
} else {
const parts = [];
this.getProperties().map(prop => {
parts.push(values[prop.getId()]);
});
result = parts.filter(Boolean).join(' ');
}
}
return result;
},
/**
* Get selected layer
* @returns {[Layer] | null}

Loading…
Cancel
Save