Home Reference Source

src/layerSelector/WMSLayerButton.js

import { Element } from './Element'
import { LayerButton } from './LayerButton'

export class WMSLayerButton extends LayerButton {
  constructor (layerSelector, config, map) {
    super(layerSelector, config, map)
    if (this.layer_ && this.layer_.get('available')) {
      this.listenAt(this.layer_.getSource()).on(['change:layers', 'change:queryLayers'], () => {
        this.debouncedUpdate()
      })
    }
  }

  buildButton (title) {
    super.buildButton(title)

    // let $toggleFeatureInfo = $('<span>')
    //   .addClass(this.classNames_.featureInfo)
    // addTooltip($toggleFeatureInfo,
    //   this.getLocaliser().localiseUsingDictionary('LayerSelector featureInfo show'))

    // const updateFeatureInfoActive = () => {
    //   if (buttonController.getFeatureInfoActive()) {
    //     $toggleFeatureInfo.toggleClass(this.classNames_.featureInfoActive, true)
    //     changeTooltip($toggleFeatureInfo,
    //       this.getLocaliser().localiseUsingDictionary('LayerSelector featureInfo hide'))
    //   } else {
    //     $toggleFeatureInfo.toggleClass(this.classNames_.featureInfoActive, false)
    //     changeTooltip($toggleFeatureInfo,
    //       this.getLocaliser().localiseUsingDictionary('LayerSelector featureInfo show'))
    //   }
    // }
    // updateFeatureInfoActive()

    // this.listenAt(buttonController).on('change:featureInfoActive', updateFeatureInfoActive)
    //
    // if (buttonConfig.QUERY_LAYERS !== undefined) {
    //   $button.append($toggleFeatureInfo)
    //   this.listenAt($toggleFeatureInfo).on('click', e => {
    //     buttonController.toggleFeatureInfo()
    //     e.stopPropagation()
    //   })
    // }
  }

  getActive () {
    return this.layer_.getSource().areLayersActive(this.config.LAYERS)
  }

  setActive (active) {
    Element.prototype.setActive.call(this, active)
    if (active) {
      this.layer_.getSource().activateLayers(this.config.LAYERS)
    } else {
      this.layer_.getSource().deactivateLayers(this.config.LAYERS)
    }
    this.layer_.setVisible(this.layer_.getSource().anyLayerActive())
  }
}