mac
2024-07-25 f9181a9c8125136f597add7c30cb2ff508d54ba7
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -1,10 +1,92 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class PublicInterface
    {
        /// <summary>
        /// 单选择
        /// </summary>
        /// <param name="frame">显示在哪个界面的父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText"></param>
        /// <param name="stateText">之前状态文本</param>
        /// <param name="action">返回值</param>
        /// <param name="textSize">显示文本字体大小</param>
        public void SingleSelectionShow(FrameLayout frame, List<FuntionControlView.Aks.Entity.RemoteControlEntity> list, string titleText, string stateText, Action<int> action, int textSize = LogicView.TextSize.text14)
        {
            if (list == null)
            {
                return;
            }
            FrameLayout frameLayout = new FrameLayout
            {
                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
            };
            frame.AddChidren(frameLayout);
            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++)
            {
                FuntionControlView.Aks.Entity.RemoteControlEntity remoteControl = list[i];
                LogicView.CheckView checkView = new LogicView.CheckView();
                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                checkView.btnText.TextSize = textSize;
                view.frameLayout.AddChidren(checkView.FLayoutView());
                checkView.btnText.Text = remoteControl.name;
                checkView.btnClick.Tag = i;//标记
                if (stateText == remoteControl.name)
                {
                    //显示之前的选中状态
                    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;
                }
                var index = int.Parse(checkBtn.Tag.ToString());
                if (index > list.Count)
                {
                    index = 0;
                }
                action(index);
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 单选择
        /// </summary>
@@ -341,6 +423,7 @@
        /// <param name="stateList">之前状态数据源</param>
        /// <param name="titleText">标题</param>
        /// <param name="action">返回值索引值</param>
        /// <param name="isIcon">数据源没有数据是否显示提示图标(默认(true)显示)</param>
        public void FrameOrVv(FrameLayout frame, List<string> list, List<string> stateList, string titleText, Action<int> action,bool isIcon=true)
        {
@@ -1304,6 +1387,61 @@
            return value;
        }
        /// <summary>
        /// 获取key值
        /// </summary>
        /// <param name="value"></param>
        /// <returns>不存在返回空字符“”</returns>
        public string GetKey(Dictionary<string, string> dic, string value)
        {
            if (string.IsNullOrEmpty(value)) {
                return  string.Empty;
            }
            if (dic==null||dic.Count==0)
            {
                return string.Empty;
            }
            //如果出现多个相同Value,这里默认返回是第一个key值
            var key = dic.FirstOrDefault(q => q.Value == value).Key;
            return key == null ? string.Empty : key;
        }
        /// <summary>
        /// 获取value值
        /// </summary>
        /// <param name="key">键</param>
        /// <returns>不存在返回空字符“”</returns>
        public string GetValue(Dictionary<string, string> dic, string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                return string.Empty;
            }
            if (dic == null || dic.Count == 0)
            {
                return string.Empty;
            }
            string value = string.Empty;
            dic.TryGetValue(key, out value);
            return value == null ? string.Empty : value;
        }
        /// <summary>
        /// 获取海信电视信号源列表( 0:LiveTV;2:PS;3:HDMI_1;4:HDMI_2;5:HDMI_3;6:HDMI_4;11:AV;)
        /// </summary>
        /// <returns></returns>
        public Dictionary<string, string> GetHisenseSignalSourceDic()
        {
            var dic = new Dictionary<string, string>();
            dic.Add("HDML 1", "3");
            dic.Add("HDML 2", "4");
            dic.Add("HDML 3", "5");
            dic.Add("HDML 4", "6");
            dic.Add("Live TV", "0");
            dic.Add("PS", "2");
            dic.Add("AV", "11");
            return dic;
        }
    }
}