类名 view/ui/UI.js
import {
  Evented,
  Collection,
  defaultValue,
  getGUID
} from '@mapgis/webclient-common'

/**
 *
 * @class Zondy.view.UI
 * @classdesc UI容器基类
 * @extends Evented
 * @param {Object} options 构造参数
 * @param {String} [options.id]  UI容器id
 * @param {MapView | SceneView } [options.view] 视图
 */
class UI extends Evented {
  constructor(options) {
    super()
    const opt = defaultValue(options, {})
    // id
    this._id = defaultValue(opt.id, getGUID())
    // 视图
    this._view = defaultValue(opt.view, null)
    if (!this._view) throw new Error('视图不存在!')
    // ui列表
    this._collection = new Collection()
  }

  add(control) {
    this._collection.add(control)
    control._addView()
  }

  remove(control) {
    this._collection.remove(control)
    control._removeView()
    if (control && control.destroy) {
      control.destroy()
    }
  }

  findControlById(id) {
    return this._collection.filter((v) => v._id === id)
  }
}

export default UI
构造函数
成员变量
方法
事件