import { LayerView } from './index'
class BaseRendererLayerView extends LayerView {
constructor(options) {
super(options)
this._initInstance(options)
this._initHandlers()
}
/**
* @description: 初始化实例
* @return {*}
*/
_initInstance(options) {}
/**
* @description: 初始化监听
* @return {*}
*/
_initHandlers() {
this._layerChangeAction = this._layerChangeAction.bind(this)
this.layer.on('set', this._layerChangeAction)
}
/**
* @description: 移除监听
* @return {*}
*/
_removeHandlers() {
this.layer.off('set', this._layerChangeAction)
}
/**
* @description: 图层变化action
* @param {*} event
* @return {*}
*/
_layerChangeAction(event) {
const { key } = event.eventData
if (key === 'renderer') {
this._rendererChangeAction(event)
}
}
/**
* @description: renderer变化action
* @param {*} event
* @return {*}
*/
_rendererChangeAction(event) {}
/**
* 移除图层视图
* @param {LayerEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onRemove(event) {
super.onRemove(event)
this._removeHandlers()
}
}
export default BaseRendererLayerView