From 5215a463afd281f62ecd67b2ae87d37404174287 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 28 八月 2023 15:41:59 +0800
Subject: [PATCH] 2023年08月28日15:41:39

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

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index 5cb0afd..681f9a9 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -3,6 +3,7 @@
 using HDL_ON.UI.CSS;
 using Shared;
 using System.Collections.Generic;
+using System.Linq;
 
 namespace HDL_ON.UI
 {
@@ -25,12 +26,14 @@
         SceneFunction rgbColorful;
         bool isOnStatus = false;
 
-        public SceneFunctionInfoEditPage(Scene s, SceneFunction fc,Action action)
+
+        public SceneFunctionInfoEditPage(Scene s, SceneFunction fc, Action action)
         {
-            bodyView = this; 
-             scene = s;
+
+            bodyView = this;
+            scene = s;
             sceneFunction = fc.localFunction.ConvertSceneFunction();
-            foreach(var ll in sceneFunction.status)
+            foreach (var ll in sceneFunction.status)
             {
                 try
                 {
@@ -118,6 +121,12 @@
                     case "security"://澶у崕鎽勫儚甯冮槻鎾ら槻
                         LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "security"));
                         break;
+                    case FunctionAttributeKey.SetVolume:
+                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetVolume));
+                        break;
+                    case FunctionAttributeKey.Signal:
+                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Signal));
+                        break;
                 }
             }
 
@@ -146,14 +155,15 @@
                 BackgroundColor = CSS_Color.MainColor,
                 TextSize = CSS_FontSize.SubheadingFontSize,
                 IsBold = true,
-                Radius = (uint) Application.GetRealWidth(22),
+                Radius = (uint)Application.GetRealWidth(22),
                 TextID = StringId.Complete
             };
             bottomView.AddChidren(btnConfrim);
 
             btnConfrim.MouseUpEventHandler = (sender, e) =>
             {
-                if (sceneFunction.localFunction.spk == SPK.GroupControl) {
+                if (sceneFunction.localFunction.spk == SPK.GroupControl)
+                {
                     var colorBegin = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.ColorfulBegin);
                     if (colorBegin != null)
                     {
@@ -254,14 +264,14 @@
         void UpdataFunctionRow()
         {
             contentView.RemoveAll();
-            for (var i =0;i< functionRowList.Count; i++)
+            for (var i = 0; i < functionRowList.Count; i++)
             {
                 try
                 {
                     var view = functionRowList[i];
-                    if(view!= null)
+                    if (view != null)
                     {
-                        if(view.GetType() == typeof(FrameLayout))
+                        if (view.GetType() == typeof(FrameLayout))
                         {
                             if (view.Tag != null)
                             {
@@ -276,7 +286,7 @@
                                     {
                                         if (isColorful && sceneFunction.localFunction.spk == SPK.LightRGB)
                                         {
-                                            if(view.Tag.ToString() != FunctionAttributeKey.Colorful)
+                                            if (view.Tag.ToString() != FunctionAttributeKey.Colorful)
                                             {
                                                 view.RemoveFromParent();
                                             }
@@ -301,7 +311,8 @@
                             }
                         }
                     }
-                }catch(Exception ex)
+                }
+                catch (Exception ex)
                 {
                     MainPage.Log($"UpdataFuntionRow error:{ex.Message}");
                 }
@@ -490,8 +501,8 @@
 
                             break;
                         case "angle":
-                        //鍛堢幇鐨勫脊绐�
-                        LoadEditDialog_Angle(sceneStatus, btnFunctionText);
+                            //鍛堢幇鐨勫脊绐�
+                            LoadEditDialog_Angle(sceneStatus, btnFunctionText);
 
                             break;
                         case "cct":
@@ -510,11 +521,28 @@
                         case FunctionAttributeKey.Percent:
                             LoadEditDialog_Percent(sceneStatus, btnFunctionText);
                             break;
+                        case FunctionAttributeKey.SetVolume:
+                            BrightnessView(btnFunctionText.Text, btnFunctionName.Text, (volume, uintStr) =>
+                            {
+                                btnFunctionText.Text = volume;
+                                sceneStatus.value = volume;
+                            });
+                            break;
+                        case FunctionAttributeKey.Signal:
+                            var p = new UI2.Intelligence.Automation.PublicInterface();
+                            var dic = p.GetHisenseSignalSourceDic();
+                            ListView(dic.Keys.ToList(), btnFunctionText.Text, btnFunctionName.Text, (valueStr) =>
+                            {
+                                btnFunctionText.Text = valueStr;
+                                sceneStatus.value = p.GetValue(dic, valueStr);
+                            });
+                            break;
                     }
                 };
 
                 #endregion
-            }catch(Exception ex)
+            }
+            catch (Exception ex)
             {
                 MainPage.Log($"鍦烘櫙鍔犺浇璁惧灞炴�у紓甯革細{ex.Message}");
             }
@@ -672,8 +700,10 @@
             delayRow.AddChidren(btnSceneDelayTitle);
 
 
-            btnSceneDelayTitle.MouseUpEventHandler = (sender, e) => {
-                Action<string> action = (obj) => {
+            btnSceneDelayTitle.MouseUpEventHandler = (sender, e) =>
+            {
+                Action<string> action = (obj) =>
+                {
                     sceneFunction.delay = obj;
                     btnDelayInfo.Text = new Scene() { delay = sceneFunction.delay }.GetDelayText();
                 };
@@ -974,21 +1004,25 @@
 
             dialog.Show();
 
-            pView.MouseUpEventHandler = (sender, e) => {
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
-            btnOn.MouseUpEventHandler = (sender, e) => {
+            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) => {
+            btnOff.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
                 trait.value = "false";
                 sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Security).value = "false";
@@ -1011,7 +1045,7 @@
             trait.value = temp.ToString();
 
             List<string> pickerItems = new List<string>();
-            if(trait == null)
+            if (trait == null)
             {
                 return;
             }
@@ -1026,7 +1060,7 @@
 
             var optionBaseView = new FrameLayout()
             {
-                Y = Application.GetRealHeight(456-60),
+                Y = Application.GetRealHeight(456 - 60),
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(343),
                 Height = Application.GetRealHeight(260),
@@ -1046,7 +1080,7 @@
                 Radius = (uint)Application.GetRealWidth(12),
             };
             optionBaseView.AddChidren(topView);
-            topView.AddChidren(new Button() {Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
+            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
 
             var btnCancel = new Button()
             {
@@ -1088,26 +1122,30 @@
             if (pickerItems.Contains(trait.value + trait.GetUintString()))
             {
                 selectItem = trait.value.ToString() + trait.GetUintString();
-                uIPickerView.setCurrentItems(pickerItems.IndexOf(selectItem),0,0);
+                uIPickerView.setCurrentItems(pickerItems.IndexOf(selectItem), 0, 0);
             }
 
             dialog.Show();
 
-            pView.MouseUpEventHandler = (sender, e) => {
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
-            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
+            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
+            {
                 selectItem = pickerItems[int1];
             };
-            btnConfrim.MouseUpEventHandler = (sender, e) => {
+            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(),"");
+                trait.value = selectItem.Replace(trait.GetUintString(), "");
             };
 
         }
@@ -1117,7 +1155,7 @@
         /// </summary>
         /// <param name="function"></param>
         /// <param name="btn"></param>
-        void LoadEditDialog_Angle (SceneFunctionStatus trait, Button btn)
+        void LoadEditDialog_Angle(SceneFunctionStatus trait, Button btn)
         {
             double temp = trait.min;
             double.TryParse(trait.value, out temp);
@@ -1196,7 +1234,7 @@
             }
             uIPickerView.setNPicker(pickerItems, null, null);
             optionBaseView.AddChidren(uIPickerView);
-            uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()+ "掳"), 0, 0);
+            uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString() + "掳"), 0, 0);
 
             string selectItem = pickerItems[pickerItems.IndexOf(trait.value.ToString() + "掳")];
             if (pickerItems.Contains(trait.value + trait.GetUintString()))
@@ -1206,17 +1244,21 @@
             //uIPickerView.setCurrentItems
             dialog.Show();
 
-            pView.MouseUpEventHandler = (sender, e) => {
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
-            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
+            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
+            {
                 selectItem = pickerItems[int1];
             };
-            btnConfrim.MouseUpEventHandler = (sender, e) => {
+            btnConfrim.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
                 btn.Text = selectItem;
                 //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ;
@@ -1416,7 +1458,7 @@
             }
 
             double temp = trait.min;
-          
+
             double.TryParse(trait.value, out temp);
             trait.value = temp.ToString();
 
@@ -1494,24 +1536,28 @@
             uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()), 4, 5);
 
             string selectItem = pickerItems[0];
-              if (pickerItems.Contains(trait.value + trait.GetUintString()))
+            if (pickerItems.Contains(trait.value + trait.GetUintString()))
             {
                 selectItem = trait.value.ToString() + trait.GetUintString();
             }
 
             dialog.Show();
 
-            pView.MouseUpEventHandler = (sender, e) => {
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
-            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
+            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
+            {
                 selectItem = pickerItems[int1];
             };
-            btnConfrim.MouseUpEventHandler = (sender, e) => {
+            btnConfrim.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
                 btn.Text = selectItem;
                 //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ;
@@ -1574,7 +1620,7 @@
 
             #endregion
 
-            int attrViewHight = Application.GetRealHeight(18 + 22+ 248);
+            int attrViewHight = Application.GetRealHeight(18 + 22 + 248);
             //灞炴�ц缃尯鍩�
             var attrView = new FrameLayout()
             {
@@ -1585,7 +1631,7 @@
             contentView.AddChidren(attrView);
             attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
 
-            
+
 
             #region RGB
             var rgbView = new FrameLayout()
@@ -1642,7 +1688,8 @@
             int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
 
 
-            colorPicker.ColorChaged += (sender2, e2) => {
+            colorPicker.ColorChaged += (sender2, e2) =>
+            {
                 rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
                 //trait.value = rgbString;
                 btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
@@ -1695,7 +1742,8 @@
                 TextID = StringId.Cancel,
             };
             bottomView.AddChidren(btnCancel);
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
@@ -1715,7 +1763,8 @@
             //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
             int mRectCornerID = HDLUtils.RectCornerBottomRight;
             btnComplete.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
-            btnComplete.MouseUpEventHandler = (sender, e) => {
+            btnComplete.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
                 trait.value = rgbString;
                 btn.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
@@ -1745,7 +1794,8 @@
                 return;
             }
 
-            Dialog dialog = new Dialog() {
+            Dialog dialog = new Dialog()
+            {
                 Height = Application.GetRealHeight(647),
             };
 
@@ -1845,7 +1895,8 @@
             int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
 
 
-            colorPicker.ColorChaged += (sender2, e2) => {
+            colorPicker.ColorChaged += (sender2, e2) =>
+            {
                 rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
                 //trait.value = rgbString;
                 btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
@@ -1879,7 +1930,7 @@
             #region 
             var btnCancel = new Button()
             {
-                X  = Application.GetRealWidth(20),
+                X = Application.GetRealWidth(20),
                 Width = Application.GetRealWidth(100),
                 Height = Application.GetRealHeight(44),
                 TextAlignment = TextAlignment.CenterLeft,
@@ -1888,7 +1939,8 @@
                 TextID = StringId.Cancel,
             };
             titleView.AddChidren(btnCancel);
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
@@ -1907,7 +1959,8 @@
             //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
             int mRectCornerID = HDLUtils.RectCornerBottomRight;
             btnComplete.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
-            btnComplete.MouseUpEventHandler = (sender, e) => {
+            btnComplete.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
                 trait.value = rgbString;
                 btn.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
@@ -2102,14 +2155,14 @@
         /// <summary>
         /// 鍔犺浇鍔熻兘灞炴�ф暟鎹�夋嫨寮圭獥
         /// </summary>
-        void LoadEditDialog_FunctionPar(SceneFunctionStatus trait, Button btn,List<string> statusList)
+        void LoadEditDialog_FunctionPar(SceneFunctionStatus trait, Button btn, List<string> statusList)
         {
             Button lastButton = new Button();
             var lastData = trait.value;
             var lastText = btn.Text;
             Dialog dialog = new Dialog();
 
-            if(DB_ResidenceData.Instance.GatewayType == 0)
+            if (DB_ResidenceData.Instance.GatewayType == 0)
             {
                 if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk))
                 {
@@ -2278,7 +2331,8 @@
                 };
                 row.AddChidren(btnPropertyTitle);
 
-                btnPropertyTitle.MouseUpEventHandler = (sender, e) => {
+                btnPropertyTitle.MouseUpEventHandler = (sender, e) =>
+                {
                     btnChoose.IsSelected = true;
                     if (lastButton != null)
                     {
@@ -2295,14 +2349,17 @@
 
             dialog.Show();
 
-            pView.MouseUpEventHandler = (sender, e) => {
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
 
-            btnCancel.MouseUpEventHandler = (sender, e) => {
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
             };
-            btnConfrim.MouseUpEventHandler = (sender, e) => {
+            btnConfrim.MouseUpEventHandler = (sender, e) =>
+            {
                 dialog.Close();
                 trait.value = lastData;
                 //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ;
@@ -2311,6 +2368,34 @@
 
         }
 
+
+        /// <summary>
+        /// 鐧惧垎姣�
+        /// </summary>
+        /// <param name="oldStateValue">鏃х姸鎬佸��</param>
+        /// <param name="titleName">鏍囬</param>
+        ///  <param name="action">鍥炶皟</param>
+        void BrightnessView(string oldStateValue, string titleName, Action<string, string> action)
+        {
+            #region 鐣岄潰
+            var brightness = new UI2.Intelligence.Automation.LogicView.BrightnessView();
+            brightness.FLayoutView(this, titleName, oldStateValue, action);
+            #endregion
+
+        }
+        /// <summary>
+        /// 鍒楄〃鐣岄潰
+        /// </summary>
+        /// <param name="list">鐣岄潰鏄剧ず鏁版嵁婧�</param>
+        /// <param name="oldStateValue">鏃х姸鎬佸��</param>
+        /// <param name="titleName">鏍囬</param>
+        ///  <param name="action">鍥炶皟</param>
+        void ListView(List<string> list, string oldStateValue, string titleName, Action<string> action)
+        {
+            var pif = new UI2.Intelligence.Automation.PublicInterface();
+            pif.SingleSelectionShow(this, list, titleName, oldStateValue, action);
+        }
+
         #endregion
 
     }

--
Gitblit v1.8.0