From a9d1161b1df96e7ddad566335989a1444e433ef5 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 28 三月 2023 11:54:45 +0800
Subject: [PATCH] 2023年03月28日11:52:02

---
 HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs |  253 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 250 insertions(+), 3 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index 4973f51..6f695e2 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/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>

--
Gitblit v1.8.0