wjc
2023-03-28 a9d1161b1df96e7ddad566335989a1444e433ef5
HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -17,11 +17,17 @@
        Action refreshAction;
        SceneFunction sceneFunction;
        public SceneFunctionInfoEditPage(Scene s, SceneFunction fc,Action action)
        {
            bodyView = this;
            scene = s;
            sceneFunction = fc;
            sceneFunction = fc.localFunction.ConvertSceneFunction();
            foreach(var ll in sceneFunction.status)
            {
                ll.value = fc.status.Find((obj) => obj.key == ll.key).value;
            }
            //sceneFunction = fc;
            refreshAction = action;
        }
@@ -69,6 +75,12 @@
                        break;
                    case FunctionAttributeKey.RGB:
                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.RGB));
                        break;
                    case "angle"://角度
                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "angle"));
                        break;
                    case "security"://大华摄像布防撤防
                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "security"));
                        break;
                }
            }
@@ -148,7 +160,15 @@
                
                if (temp != null)
                {
                    temp = sceneFunction;
                    temp.delay = sceneFunction.delay;
                    foreach(var attr in sceneFunction.status)
                    {
                        var keva = temp.status.Find((obj) => obj.key == attr.key);
                        if (keva != null)
                        {
                            keva.value = attr.value;
                        }
                    }
                }
                else
                {
@@ -315,6 +335,9 @@
            {
                switch (sceneStatus.key)
                {
                    case FunctionAttributeKey.Security:
                        LoadEditDialog_Security(sceneStatus, btnFunctionText);
                        break;
                    case FunctionAttributeKey.OnOff:
                        LoadEditDialog_OnOff(sceneStatus, btnFunctionText);
                        break;
@@ -343,6 +366,11 @@
                        LoadEditDialog_Temp(sceneStatus, btnFunctionText);
                        break;
                    case FunctionAttributeKey.FadeTime:
                        break;
                    case "angle":
                        //呈现的弹窗
                        LoadEditDialog_Angle(sceneStatus, btnFunctionText);
                        break;
                    case "cct":
@@ -561,6 +589,109 @@
        }
        /// <summary>
        /// 加载安防布防选择弹窗
        /// </summary>
        /// <param name="function"></param>
        /// <param name="btn"></param>
        void LoadEditDialog_Security(SceneFunctionStatus trait, Button btn)
        {
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(500),
                Height = Application.GetRealHeight(160),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
            };
            pView.AddChidren(optionBaseView);
            var optionView = new VerticalScrolViewLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(100),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
                ScrollEnabled = false,
            };
            optionBaseView.AddChidren(optionView);
            var btnOn = new Button()
            {
                Height = Application.GetRealHeight(50),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextID = StringId.Defense,
                IsSelected = trait.value.ToString() == "true"
            };
            optionView.AddChidren(btnOn);
            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnOff = new Button()
            {
                Height = Application.GetRealHeight(50),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextID = StringId.Undefense,
                IsSelected = trait.value.ToString() == "false"
            };
            optionView.AddChidren(btnOff);
            var btnCancel = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(8) + optionView.Bottom,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(50),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
                TextID = StringId.Cancel,
                TextColor = CSS_Color.WarningColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
            };
            optionBaseView.AddChidren(btnCancel);
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            btnOn.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
                trait.value = "true";
                sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Security).value = "true";
                btn.Text = trait.GetValueText() + trait.GetUintString();
            };
            btnOff.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
                trait.value = "false";
                sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Security).value = "false";
                btn.Text = trait.GetValueText() + trait.GetUintString();
            };
        }
        /// <summary>
        /// 加载温度选择弹窗
        /// </summary>
@@ -623,7 +754,8 @@
            var btnConfrim = new Button()
            {
                Width = Application.GetRealWidth(320),
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
@@ -671,6 +803,120 @@
            };
        }
        /// <summary>
        /// 加载温度选择弹窗
        /// </summary>
        /// <param name="function"></param>
        /// <param name="btn"></param>
        void LoadEditDialog_Angle (SceneFunctionStatus trait, Button btn)
        {
            double temp = trait.min;
            double.TryParse(trait.value, out temp);
            trait.value = temp.ToString();
            List<string> pickerItems = new List<string>();
            if (trait == null)
            {
                return;
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            for (int i = trait.min; i <= trait.max; i += 1)
            {
                pickerItems.Add(i.ToString() + trait.GetUintString());
            }
            uIPickerView.setNPicker(pickerItems, null, null);
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()+ "°"), 0, 0);
            string selectItem = pickerItems[pickerItems.IndexOf(trait.value.ToString() + "°")];
            if (pickerItems.Contains(trait.value + trait.GetUintString()))
            {
                selectItem = trait.value.ToString() + trait.GetUintString();
            }
            //uIPickerView.setCurrentItems
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
                selectItem = pickerItems[int1];
            };
            btnConfrim.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
                btn.Text = selectItem;
                //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ;
                trait.value = selectItem.Replace(trait.GetUintString(), "");
            };
        }
        /// <summary>
        /// 加载亮度选择弹窗
@@ -828,6 +1074,7 @@
            };
        }
        /// <summary>
        /// 加载cct选择弹窗
        /// </summary>