using System.Collections;
using System.Collections.Generic;
using UniRx;
using UnityEngine;
using UnityEngine.UI;

public class NewSchemePanel : UIView
{
    public InputField NameInput;

    public override void Awake()
    {
        base.Awake();
        transform.Find("TitleBar/CloseButton").GetComponent<Button>().OnClickAsObservable()
            .Subscribe(_ => Hide());
        transform.Find("Background/SetButton").GetComponent<Button>().OnClickAsObservable()
            .Subscribe(_ => NewScheme());
    }

    private void NewScheme()
    {
        if (!string.IsNullOrEmpty(NameInput.text))
        {
            switch (PowerManager.Instance.PlanMode)
            {
                case DisposalPlanMode.方案:
                    if (UIManager.Instance.GetView<DisposalPlanPanel>().Plans.Find(a => a.Name == NameInput.text) == null)
                    {
                        GameObject go = Instantiate(UIManager.Instance.GetView<DisposalPlanPanel>().PlanItem) as GameObject;
                        go.SetActive(true);
                        go.name = NameInput.text;
                        go.transform.SetParent(UIManager.Instance.GetView<DisposalPlanPanel>().PlanItem.transform.parent, false);
                        go.transform.Find("Subtitles/Toggle/Label").GetComponent<Text>().text = NameInput.text;
                        Plan plan = new Plan() { Name = NameInput.text, Nodes = new List<Node>() };
                        UIManager.Instance.GetView<DisposalPlanPanel>().Plans.Add(plan);
                        UIManager.Instance.GetView<DisposalPlanPanel>().SavePlanList();
                        Hide();
                    }
                    else
                    {
                        MessageBox.Show("名称已存在!", Color.white, 1f);
                    }
                    break;
                case DisposalPlanMode.节点:
                    var temp = UIManager.Instance.GetView<DisposalPlanPanel>().Plans.Find(a => a.Name == PowerManager.Instance.PlanName);
                    if (temp.Nodes.Find(a => a.Name == NameInput.text) == null)
                    {
                        GameObject go = Instantiate(UIManager.Instance.GetView<DisposalPlanPanel>().NodeItem) as GameObject;
                        go.SetActive(true);
                        go.name = NameInput.text;
                        go.transform.SetParent(PowerManager.Instance.NodeParent, false);
                        go.transform.Find("Load/Label").GetComponent<Text>().text = NameInput.text;
                        //go.transform.Find("Load").GetComponent<Toggle>().group = UIManager.Instance.GetView<DisposalPlanPanel>().NodeItem.transform.parent.GetComponent<ToggleGroup>();
                        temp.Nodes.Add(new Node() { Name = NameInput.text });
                        go.GetComponent<NodeController>().ImageButton.gameObject.name = $"ImageButton{AX.Network.Common.GUID.NewGuid()}";
                        //go.GetComponent<NodeController>().LoadToggle.isOn = true;
                        go.GetComponent<NodeController>().SaveNode();
                        //UIManager.Instance.GetView<DisposalPlanPanel>().SavePlanList();
                        Hide();
                    }
                    else
                    {
                        MessageBox.Show("名称已存在!", Color.white, 1f);
                    }
                    break;
            }
        }
        else
        {
            MessageBox.Show("名称不能为空!", Color.white, 1f);
        }
    }
}