Home Reference Source

src/layerSelector/LayerButton.js

import { Button } from './Button'

export class LayerButton extends Button {
  constructor (layerSelector, config, map) {
    super(layerSelector, config, map)
    this.layer_ = map.getLayerGroup().getLayerById(this.config.refId)
    if (this.layer_ && this.layer_.get('available')) {
      const title = this.config.title !== undefined ? this.config.title : this.layer_.get('title')
      this.buildButton(title)
      this.listenAt(this.layer_).on(['change:visible', 'loadcountstart', 'loadcountend'], () => {
        this.debouncedUpdate()
      })
      this.debouncedUpdate()
    }
  }

  addAccordionOption (option) {
    if (super.addAccordionOption(option)) {
      return true
    }
    if (option.type === 'transparency') {
      this.accordion.addTransparencySlider(this.layer_)
      return true
    }
  }

  getActive () {
    return this.layer_.getVisible()
  }

  getLoading () {
    return this.layer_.isLoading()
  }

  setActive (active) {
    super.setActive(active)
    this.layer_.setVisible(active)
  }
}