import FeatureRenderView from './support/FeatureRenderView'

class WFSLayerView extends FeatureRenderView {
  _processData() {
    const layer = this.layer
    return layer.queryFeatures().then((res) => {
      return res
    })
  }

  /**
   * 更新图层视图
   * @param {LayerViewUpdateEvent} event 图层事件
   * @return {Promise<LayerView>} 图层视图
   */
  onUpdate(event) {
    let updateOtherArguments = false

    if (event.updateContent && this.innerLayer) {
      event.updateContent.forEach((layerUpdateContent) => {
        if (
          layerUpdateContent &&
          layerUpdateContent.operationType === 'property'
        ) {
          if (layerUpdateContent.name === 'renderer') {
            // 更新renderer需要移除原始的layer并重新构建新的layer
            super.onRemove(event)
            super.onAdd(event)
          } else {
            // 更新opacity、visible只需要执行一次父类的onUpdate方法
            updateOtherArguments = true
          }
        }
      })
    }

    // 使用父类中的onUpdate方法对非renderer更新统一执行更新操作
    if (updateOtherArguments) {
      super.onUpdate(event)
    }

    return Promise.resolve(this)
  }
}
export default WFSLayerView
