From 01b8b5bde8a58060bdd03b78a32747c5aa551976 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 01 十二月 2021 09:32:54 +0800
Subject: [PATCH] 111

---
 HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs |  127 ++++++++++++++++++++++++------------------
 1 files changed, 73 insertions(+), 54 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
index 167b453..3558ece 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
@@ -14,13 +14,11 @@
 
         Action<SecurityAlarm> refreshAction;
 
-        SecurityAlarm securityAlarm;
-        List<SecurityInput> inputList = new List<SecurityInput>();
-
-        public AddInputPage(SecurityAlarm alarm,Action<SecurityAlarm> action)
+        SecurityAlarm alarm;
+        public AddInputPage(SecurityAlarm inAlarm,Action<SecurityAlarm> action)
         {
             bodyView = this;
-            securityAlarm = alarm;
+            alarm = inAlarm;
             refreshAction = action;
         }
 
@@ -65,14 +63,17 @@
                 Text = DB_ResidenceData.Instance.CurFloor.roomName,
             };
             showdFunctionTypeRow.AddChidren(btnFloor);
-            btnFloor.MouseUpEventHandler += (sender, e) =>
+            btnFloor.MouseUpEventHandler = (sender, e) =>
             {
                 string nowSelectId = null;
-                var listAllFun = FunctionList.List.GetArmSensorList();
+                var list = FunctionList.List.GetArmSensorList();
 
+#if DEBUG
+                list.AddRange(FunctionList.List.GetLightList());
+#endif
                 //鏄剧ず涓嬫媺鐣岄潰
                 var form = new FloorRoomSelectPopupView();
-                form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) =>
+                form.ShowDeviceFunctionView(btnFloor, list, (selectId, listFun) =>
                 {
                     nowSelectId = selectId;
                     //閲嶆柊鍒锋柊璁惧鍒楄〃
@@ -92,8 +93,12 @@
             bodyView.AddChidren(functionListView);
 
 
+            var listAllFun = FunctionList.List.GetArmSensorList();
+#if DEBUG
+            listAllFun.AddRange(FunctionList.List.GetLightList());
+#endif
 
-            LoadFunctionListRow(FunctionList.List.GetArmSensorList());
+            LoadFunctionListRow(listAllFun);
 
 
 
@@ -122,16 +127,8 @@
             bottomView.AddChidren(btnConfrim);
             btnConfrim.MouseUpEventHandler = (sender, e) =>
             {
-                securityAlarm.input = new List<SecurityInput>();
-                foreach (var input in inputList)
-                {
-                    if (input.addCondition)
-                    {
-                        securityAlarm.input.Add(input);
-                    }
-                }
                 this.RemoveFromParent();
-                refreshAction?.Invoke(securityAlarm);
+                refreshAction?.Invoke(alarm);
             };
 
             
@@ -151,13 +148,10 @@
                 functions = FunctionList.List.GetArmSensorList();
             }
 
-#if DEBUG
-            functions.AddRange(FunctionList.List.GetLightList());
-#endif
 
             foreach (var function in functions)
             {
-                var input = securityAlarm.input.Find((obj) => obj.sid == function.sid);
+                var input = alarm.input.Find((obj) => obj.sid == function.sid);
                 if (input == null)
                 {
                     input = new SecurityInput();
@@ -188,32 +182,32 @@
                             break;
                     }
                     input.condition = new List<SecurityInputCondition>()
-                {
-                    new SecurityInputCondition()
                     {
-                        key = inKey,
-                        value = inValue,
-                    }
-                };
+                        new SecurityInputCondition()
+                        {
+                            key = inKey,
+                            value = inValue,
+                        }
+                    };
 
                     if (function.spk == SPK.LightSwitch || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                     {
                         input.condition = new List<SecurityInputCondition>()
-                    {
-                        new SecurityInputCondition()
                         {
-                            key = FunctionAttributeKey.OnOff,
-                            value = "off",
-                        }
-                    };
+                            new SecurityInputCondition()
+                            {
+                                key = FunctionAttributeKey.OnOff,
+                                value = "off",
+                            }
+                        };
                     }
 
                 }
-                else
-                {
-                    input.addCondition = true;
-                }
-                inputList.Add(input);
+                //else
+                //{
+                //    //input.addCondition = true;
+                //    alarm.input.Add(input);
+                //}
 
                 FrameLayout functionRow = new FrameLayout()
                 {
@@ -268,37 +262,53 @@
                 };
                 functionRow.AddChidren(btnChooseIcon);
 
-                btnChooseIcon.MouseUpEventHandler = (sender, e) => {
+                btnChooseIcon.MouseUpEventHandler = (sender, e) =>
+                {
                     btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected;
-                    if(btnChooseIcon.IsSelected)
+                    var tempLocal = alarm.input.Find((obj) =>
+                        obj.sid == input.sid
+                    );
+                    if (btnChooseIcon.IsSelected)
                     {
-                        input.addCondition = true;
-                        //if (input.condition.Count==0)
-                        //{
-                        //    ShowStateDialog(input, btnState,btnChooseIcon,function.spk);
-                        //}
+                        //input.addCondition = true;
+                        if (tempLocal == null)
+                            alarm.input.Add(input);
                     }
                     else
                     {
-                        input.addCondition = false;
+                        //input.addCondition = false;
+                        if (tempLocal != null)
+                        {
+                            alarm.input.Remove(input);
+                        }
                     }
                 };
                 btnState.MouseUpEventHandler = (sender, e) =>
                 {
-                    //ShowStateDialog(input, btnState, btnChooseIcon, function.spk);
                     btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected;
+                    var tempLocal = alarm.input.Find((obj) =>
+                        obj.sid == input.sid
+                    );
                     if (btnChooseIcon.IsSelected)
                     {
-                        input.addCondition = true;
+                        //input.addCondition = true;
+                        if (tempLocal == null)
+                            alarm.input.Add(input);
                     }
                     else
                     {
-                        input.addCondition = false;
+                        //input.addCondition = false;
+                        if (tempLocal != null)
+                        {
+                            alarm.input.Remove(input);
+                        }
                     }
                 };
 
-
-                if (input.addCondition)
+                var localInput = alarm.input.Find((obj) =>
+                           obj.sid == input.sid
+                       );
+                if (localInput!=null)
                 {
                     btnChooseIcon.IsSelected = true;
                     btnState.Text = input.StateText();
@@ -414,8 +424,12 @@
                 }
 
 
+                var localInput = alarm.input.Find((obj) =>
+                        obj.sid == input.sid
+                    );
+                if (localInput == null)
+                    alarm.input.Add(input);
 
-                input.addCondition = true;
                 if (btnChoose != null)
                 {
                     btnChoose.IsSelected = true;
@@ -448,7 +462,12 @@
                 }
 
 
-                input.addCondition = true;
+                var localInput = alarm.input.Find((obj) =>
+                        obj.sid == input.sid
+                    );
+                if (localInput == null)
+                    alarm.input.Add(input);
+
                 if (btnChoose != null)
                 {
                     btnChoose.IsSelected = true;

--
Gitblit v1.8.0