import { Evented } from '../base'
import { defaultValue, Log } from '../util'
/**
* 图层视图类
* @private
* @classdesc 视图基类
* @extends Evented
* @param {Object} options 构造参数
* @param {BaseView} [options.view ] 视图
* @param {Layer} [options.layer ] 图层
*/
class LayerView extends Evented {
constructor(options) {
super()
const opts = defaultValue(options, {})
// BaseView
this.view = opts.view
if (!this.view) Log.error('视图对象不存在!')
// Layer
this.layer = opts.layer
if (!this.layer) Log.error('图层对象不存在!')
// 实际引擎视图
this.innerView = this.view.getInnerView()
if (!this.innerView) Log.error('视图对象InnerView不存在!')
// 实际图层
this.innerLayer = null
// id
this.id = this.layer.id
}
/**
* 添加图层视图
* @param {LayerEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onAdd(event) {}
/**
* 移除图层视图
* @param {LayerEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onRemove(event) {}
/**
* 更新图层视图
* @param {LayerViewUpdateEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onUpdate(event) {}
}
export default LayerView