陈嘉乐
2020-12-11 0414d9754bc61b5e496930ff184ede647ab4cc3a
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -1,10 +1,145 @@
using System;
using System.Collections.Generic;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class PublicInterface
    {
        public PublicInterface()
        /// <summary>
        /// 单选择
        /// </summary>
        /// <param name="frameLayout">父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText"></param>
        /// <param name="stateText">之前状态文本</param>
        /// <param name="action">返回值</param>
        public void SingleSelectionShow(FrameLayout frameLayout, List<string> list, string titleText, string stateText, Action<string> action)
        {
            LogicView.DateView view = new LogicView.DateView();
            view.btnTitle.Text = titleText;
            view.FLayoutView(frameLayout, list.Count);
            view.btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
            ///定义一个Btn记录选中状态
            Button checkBtn = new Button
            {
                Tag = "unknown",
            };
            for (int i = 0; i < list.Count; i++)
            {
                string str = list[i];
                LogicView.CheckView checkView = new LogicView.CheckView();
                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                view.frameLayout.AddChidren(checkView.FLayoutView());
                checkView.btnText.Text = str;
                checkView.btnClick.Tag = str;//标记
                if (stateText == str)
                {
                    //显示之前的选中状态
                    checkBtn.IsSelected = false;
                    checkView.btnCheckIcon.IsSelected = true;
                    checkBtn = checkView.btnCheckIcon;
                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
                }
                //点击事件
                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                {
                    checkBtn.IsSelected = false;
                    checkView.btnCheckIcon.IsSelected = true;
                    checkBtn = checkView.btnCheckIcon;
                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
                };
            }
            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (checkBtn.Tag.ToString() == "unknown")
                {
                    return;
                }
                action(checkBtn.Tag.ToString());
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 多选择
        /// </summary>
        /// <param name="frameLayout">父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText"></param>
        /// <param name="stateTextList">之前状态文本</param>
        /// <param name="action">返回值</param>
        public void MultiSelectShow(FrameLayout frameLayout, List<string> list, string titleText, List<string> stateTextList, Action<List<string>> action)
        {
            LogicView.DateView view = new LogicView.DateView();
            view.btnTitle.Text = titleText;
            view.FLayoutView(frameLayout, list.Count);
            view.btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //移除fLayout界面
                view.frameLayout.RemoveFromParent();
            };
            for (int i = 0; i < list.Count; i++)
            {
                string str = list[i];
                LogicView.CheckView checkView = new LogicView.CheckView();
                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                view.frameLayout.AddChidren(checkView.FLayoutView());
                checkView.btnText.Text = str;
                checkView.btnClick.Tag = str;//标记
                if (stateTextList.Contains(str))
                {
                    //显示之前的选中状态
                    checkView.btnCheckIcon.IsSelected = true;
                }
                //点击事件
                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                {
                    string clickIndex = checkView.btnClick.Tag.ToString();
                    checkView.btnClick.IsSelected = !checkView.btnClick.IsSelected;
                    if (checkView.btnClick.IsSelected)
                    {
                        checkView.btnCheckIcon.IsSelected = true;
                        if (!stateTextList.Contains(clickIndex))
                        {
                            //添加选中数据
                            stateTextList.Add(clickIndex);
                        }
                    }
                    else
                    {
                        checkView.btnCheckIcon.IsSelected = false;
                        if (stateTextList.Contains(clickIndex))
                        {
                            //移除选中数据
                            stateTextList.Remove(clickIndex);
                        }
                    }
                };
            }
            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (stateTextList.Count == 0)
                {
                    return;
                }
                action(stateTextList);
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
    }
}