
import Log from '../Tools/LogTools'

//Хранилище все контролов приложения
//Генерирует униклаьный ID
export default class ControlRegister {


    static _Single;

    static Get() {
        if (this._Single == null || this._Single == undefined) {
            this._Single = new ControlRegister();
        }

        return this._Single;
    }    


    constructor() {
        this.ID = 0;
        this.Controls = [];
    }

    //Зарегестрировать контрол
    RegisterControl(control) {
        control.ID = this.ID;
        this.ID++;

        this.Controls.push(control);
        Log("RegisterControl", control.Name + " " + control.ID);
    }

    //Контрол уничтожается (удалть из регистра)
    UnregisterControl(control) {
        this.Controls.splice(this.Controls.
            findIndex(e => e.ID === control.ID), 1);

        Log("UnregisterControl", control.Name + " " + control.ID);
    }

}