import { _decorator, Component, EditBox, instantiate, Node, Prefab } from 'cc';
import { config } from '../../config';
import { add_event_item } from './add_event_item';
import { tools } from '../../tools';
const { ccclass, property } = _decorator;

@ccclass('add_event')
export class add_event extends Component {
    @property(Node) content:Node = null;
    @property(Node) btn_close:Node = null;
    @property(Prefab) item_prefab:Prefab = null;
    @property(Node) btn_add:Node = null;
    @property(Node) btn_cancel:Node = null;
    @property(EditBox) edit:EditBox = null;
    @property(Node) input_event_name:Node = null;
    private call_back = null;
    private select_type:number = 0;
    public show(call){
        this.call_back = call;
        this.input_event_name.active = false;
        config.event_type_map.forEach((v,k)=>{
            let item = instantiate(this.item_prefab)
            item.parent = this.content;
            item.getComponent(add_event_item).initView(k,this.onItemClick.bind(this))
        })
        this.btn_close.on(Node.EventType.TOUCH_END,()=>{
            this.close()
        })
        this.btn_add.on(Node.EventType.TOUCH_END,()=>{
            if(this.edit.string.length>0){
                if(this.call_back!=null){
                    this.call_back(this.select_type,this.edit.string)
               } 
               this.close()
            }else{
                tools.showToast("请输入事件名字")
            }
       
        })
        this.btn_cancel.on(Node.EventType.TOUCH_END,()=>{
            this.input_event_name.active = false;
        })
    }
    onItemClick(type:number){
        this.select_type = type;
       this.input_event_name.active = true;
    }

    close(){
        this.node.destroy()
    }
}


