From 557c8c4f75aafc97533721766272410042440d34 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期六, 21 八月 2021 11:00:29 +0800
Subject: [PATCH] 安防功能

---
 HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmDeploymentSettingPage.cs |  532 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 319 insertions(+), 213 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmDeploymentSettingPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmDeploymentSettingPage.cs
index cb86ac7..5de018c 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmDeploymentSettingPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmDeploymentSettingPage.cs
@@ -9,12 +9,28 @@
     public class ArmDeploymentSettingPage : FrameLayout
     {
         FrameLayout bodyView;
-        SecurityAlarm securityAlarm; 
+        /// <summary>
+        /// 涓婚鐣岄潰
+        /// </summary>
+        VerticalScrolViewLayout contentView;
+        /// <summary>
+        /// 杈撳叆鏉′欢鍒楄〃鍖哄煙鐣岄潰
+        /// </summary>
+        VerticalScrolViewLayout inputTargetView;
+        /// <summary>
+        /// 鍛婅鐩爣鍒楄〃鍖哄煙鐣岄潰
+        /// </summary>
+        VerticalScrolViewLayout outputTargetView;
 
-        public ArmDeploymentSettingPage(SecurityAlarm alarm )
+
+        SecurityAlarm securityAlarm;
+        Action refreshAction;
+
+        public ArmDeploymentSettingPage(SecurityAlarm alarm, Action action)
         {
             bodyView = this;
             securityAlarm = alarm;
+            refreshAction = action;
         }
 
         public void LoadPage()
@@ -23,10 +39,10 @@
 
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
 
-            VerticalScrolViewLayout contentView = new VerticalScrolViewLayout()
+            contentView = new VerticalScrolViewLayout()
             {
                 Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(667 - 64),
+                Height = Application.GetRealHeight(527),
             };
             bodyView.AddChidren(contentView);
 
@@ -86,54 +102,156 @@
             LoadEvent_EditSecurityAlarmName(btnDeploymentName);
             #endregion
 
+            /*
             #region 瑙﹀彂寤舵椂
-            //var delayedRow = new FrameLayout()
-            //{
-            //    Height = Application.GetRealHeight(50),
-            //    BackgroundColor = CSS_Color.MainBackgroundColor,
-            //};
-            //contentView.AddChidren(delayedRow);
+            var delayedRow = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            contentView.AddChidren(delayedRow);
 
-            //var btnDelayedTitle = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Width = Application.GetRealWidth(72),
-            //    TextAlignment = TextAlignment.CenterLeft,
-            //    TextColor = CSS_Color.FirstLevelTitleColor,
-            //    TextSize = CSS_FontSize.TextFontSize,
-            //    TextID = StringId.Name,
-            //};
-            //delayedRow.AddChidren(btnDelayedTitle);
+            var btnDelayedTitle = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Width = Application.GetRealWidth(72),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextID = StringId.TriggerDelay,
+            };
+            delayedRow.AddChidren(btnDelayedTitle);
+            btnDelayedTitle.Text += ":";
 
-            //var btnDelayedText = new Button()
-            //{
-            //    X = Application.GetRealWidth(88),
-            //    Width = Application.GetRealWidth(230),
-            //    TextAlignment = TextAlignment.CenterLeft,
-            //    TextColor = CSS_Color.TextualColor,
-            //    TextSize = CSS_FontSize.TextFontSize,
-            //    Text = securityAlarm.name
-            //};
-            //delayedRow.AddChidren(btnDelayedText);
+            var btnDelayedText = new Button()
+            {
+                X = Application.GetRealWidth(88),
+                Width = Application.GetRealWidth(230),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.TextualColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                Text = securityAlarm.name
+            };
+            delayedRow.AddChidren(btnDelayedText);
 
-            //var btnDelayedRight = new Button()
-            //{
-            //    X = Application.GetRealWidth(343),
-            //    Gravity = Gravity.CenterVertical,
-            //    Width = Application.GetMinRealAverage(16),
-            //    Height = Application.GetMinRealAverage(16),
-            //    UnSelectedImagePath = "Public/RightIcon.png",
-            //};
-            //delayedRow.AddChidren(btnDelayedRight);
+            var btnDelayedRight = new Button()
+            {
+                X = Application.GetRealWidth(343),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/RightIcon.png",
+            };
+            delayedRow.AddChidren(btnDelayedRight);
 
-            ////delayedRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(49), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
-            //LoadEvent_EditSecurityAlarmName(btnDelayedTitle);
+            //delayedRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(49), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
             #endregion
+            */
 
             #endregion
             contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
 
-            #region 甯冮槻鍔熻兘\鎶ヨ鐘舵��
+            //甯冮槻鍔熻兘
+            iniDefenseView();
+            //鍛婅鐩爣
+            iniAlarmView();
+
+            #region 搴曢儴鍖哄煙
+            var bottomView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(591),
+                Height = Application.GetRealHeight(100),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(22),
+            };
+            this.AddChidren(bottomView);
+
+            var btnConfrim = new Button()
+            {
+                X = Application.GetRealWidth(78),
+                Y = Application.GetRealHeight(12),
+                Width = Application.GetRealWidth(220),
+                Height = Application.GetRealWidth(44),
+                Radius = (uint)Application.GetRealWidth(22),
+                BackgroundColor = CSS_Color.MainColor,
+                TextID = StringId.Confirm,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextColor = CSS_Color.MainBackgroundColor,
+                TextAlignment = TextAlignment.Center,
+            };
+            bottomView.AddChidren(btnConfrim);
+
+            btnConfrim.MouseUpEventHandler = (sender, e) =>
+            {
+                if (securityAlarm.input.Count == 0)
+                {
+                    var tip = new Tip()
+                    {
+                        Text = "璇烽�夋嫨甯冮槻鐩爣",
+                        CloseTime = 3,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(MainPage.BaseView);
+                    return;
+                }
+                if (securityAlarm.output.Count == 0)
+                {
+                    var tip = new Tip()
+                    {
+                        Text = "璇烽�夋嫨鍛婅鐩爣",
+                        CloseTime = 3,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(MainPage.BaseView);
+
+                    return;
+                }
+
+                var waitPage = new Loading();
+                waitPage.Start();
+                new System.Threading.Thread(() =>
+                {
+                    try
+                    {
+                        var code = securityAlarm.SaveInfo();
+                        if (code == StateCode.SUCCESS)
+                        {
+                            SecurityCenter.Security.GetSecurityAlarmList();
+                            Application.RunOnMainThread(() =>
+                            {
+                                this.RemoveFromParent();
+                                refreshAction?.Invoke();
+                            });
+                        }
+                        else
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                IMessageCommon.Current.ShowErrorInfoAlter(code);
+                            });
+                        }
+                    }
+                    catch { }
+                    finally
+                    {
+                        Application.RunOnMainThread(() => {
+                            waitPage.Hide();
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            };
+            #endregion
+
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栭儴鍒嗗姛鑳藉尯鍩�
+        /// </summary>
+        private void iniDefenseView()
+        {
+
+            #region 甯冮槻鍔熻兘
             var deploymentFunctionRow = new FrameLayout()
             {
                 Height = Application.GetRealHeight(44),
@@ -161,24 +279,80 @@
                 UnSelectedImagePath = "FunctionIcon/ArmCenter/AddTargetIcon.png",
             };
             deploymentFunctionRow.AddChidren(btnAddTarget);
+            ///娣诲姞杈撳叆鐩爣
+            btnAddTarget.MouseUpEventHandler = (sender, e) => {
+                Action<SecurityAlarm> action = (outTemp) => {
+                    securityAlarm = outTemp;
+                    iniInputTargetView();
+                };
+                var page = new AddInputPage(securityAlarm, action);
+                MainPage.BasePageView.AddChidren(page);
+                page.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
 
             deploymentFunctionRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
 
-            var inputTargetView = new VerticalScrolViewLayout()
+            inputTargetView = new VerticalScrolViewLayout()
             {
                 ScrollEnabled = false,
             };
             contentView.AddChidren(inputTargetView);
-            foreach (var target in securityAlarm.input)
-            {
-                inputTargetView.AddChidren(new InputRow(target.GetFunction().name, target.GetFunction().GetRoomListName()));
-            }
-            inputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.input.Count);
+
+            iniInputTargetView();
 
             #endregion
             contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
 
+        }
 
+        /// <summary>
+        /// 鍒濆鍖栬緭鍏ユ潯浠跺尯鍩熺晫闈�
+        /// </summary>
+        /// <param name=""></param>
+        private void iniInputTargetView()
+        {
+            inputTargetView.RemoveAll();
+            if (securityAlarm.input.Count > 0)
+            {
+                foreach (var target in securityAlarm.input)
+                {
+                    inputTargetView.AddChidren(new InputRow(target.GetFunction().name, target.GetFunction().GetRoomListName(), target.StateText()));
+                }
+                inputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.input.Count);
+                //if (outputTargetView != null)
+                //{
+                //    contentView.AddChidren(outputTargetView);
+                //}
+            }
+            else
+            {
+                inputTargetView.AddChidren(new Button()
+                {
+                    Height = Application.GetRealHeight(65),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextID = StringId.ThereIsNoAssociatedTaskDeploymentStatus,
+                    IsMoreLines = true,
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                });
+
+                inputTargetView.Height = Application.GetRealHeight(68);
+                //if(outputTargetView!= null)
+                //{
+                //    contentView.AddChidren(outputTargetView);
+                //}
+            }
+
+
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧憡璀︾洰鏍囧尯鍩�
+        /// </summary>
+        private void iniAlarmView()
+        {
             #region 鍛婅鐩爣
             var outputRow = new FrameLayout()
             {
@@ -207,22 +381,63 @@
                 UnSelectedImagePath = "FunctionIcon/ArmCenter/AddTargetIcon.png",
             };
             outputRow.AddChidren(btnAddOutTarget);
+
+            btnAddOutTarget.MouseUpEventHandler = (sender, e) => {
+                Action<SecurityAlarm> action = (outTemp) => {
+                    securityAlarm = outTemp;
+                    iniAlarmListView();
+                };
+                var page = new AddOutputPage(securityAlarm, action);
+                MainPage.BasePageView.AddChidren(page);
+                page.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+
             outputRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
 
 
-            var outputTargetView = new VerticalScrolViewLayout()
+            outputTargetView = new VerticalScrolViewLayout()
             {
                 ScrollEnabled = false,
             };
             contentView.AddChidren(outputTargetView);
-            foreach(var outTarget in securityAlarm.output)
-            {
-                inputTargetView.AddChidren(new OutputRow(outTarget.GetFunction().name, outTarget.GetFunction().GetRoomListName(),""));
-            }
-            outputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.output.Count);
+
+            iniAlarmListView();
+
             #endregion
+            contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
 
         }
+
+        /// <summary>
+        /// 鍒濆鍖栧憡璀﹀垪琛ㄥ尯鍩�
+        /// </summary>
+        private void iniAlarmListView()
+        {
+            outputTargetView.RemoveAll();
+            if (securityAlarm.output.Count > 0)
+            {
+                foreach (var outTarget in securityAlarm.output)
+                {
+                    outputTargetView.AddChidren(new OutputRow(outTarget.GetFunction().name, outTarget.GetFunction().GetRoomListName(), "鎵撳紑"));
+                }
+                outputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.output.Count);
+            }
+            else
+            {
+                outputTargetView.AddChidren(new Button()
+                {
+                    Height = Application.GetRealHeight(65),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextID = StringId.ThereIsNoAssociatedTaskDeploymentStatus,
+                    IsMoreLines = true,
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                });
+            }
+        }
+
 
         /// <summary>
         /// 淇敼瀹夐槻鍚嶇О
@@ -233,174 +448,65 @@
             {
                 Action<string> callBack = (str) =>
                 {
-                    var waitPage = new Loading();
-                    bodyView.AddChidren(waitPage);
-                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
-                    new System.Threading.Thread(() =>
+                    //鍚嶇О涓嶈兘涓虹┖
+                    if (string.IsNullOrEmpty(str))
                     {
-                        try
+                        new Tip()
                         {
-                            securityAlarm.name = str;
-                            var responsePack = new HttpServerRequest().EditSecurity(new List<SecurityAlarm>() { securityAlarm});
+                            CloseTime = 1,
+                            Text = Language.StringByID(StringId.NameCannotBeEmpty),
+                            Direction = AMPopTipDirection.None,
+                        }.Show(bodyView);
+                        return;
+                    }
 
-                            if (responsePack.Code == StateCode.SUCCESS)
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    btnDeploymentName.Text = str;
-                                });
-                            }
-                            else
-                            {
-                                IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            MainPage.Log($"update user name error : {ex.Message}");
-                        }
-                        finally
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                if (waitPage != null)
-                                {
-                                    waitPage.RemoveFromParent();
-                                    waitPage = null;
-                                }
-                            });
-                        }
-                    })
-                    { IsBackground = true }.Start();
+
+                    btnDeploymentName.Text = securityAlarm.name = str;
+
+                    //var waitPage = new Loading();
+                    //bodyView.AddChidren(waitPage);
+                    //waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                    //new System.Threading.Thread(() =>
+                    //{
+                    //    try
+                    //    {
+                    //        securityAlarm.name = str;
+                    //        var responsePack = new HttpServerRequest().EditSecurity(new List<SecurityAlarm>() { securityAlarm});
+                    //        if (responsePack.Code == StateCode.SUCCESS)
+                    //        {
+                    //            Application.RunOnMainThread(() =>
+                    //            {
+                    //                btnDeploymentName.Text = str;
+                    //            });
+                    //        }
+                    //        else
+                    //        {
+                    //            IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
+                    //        }
+                    //    }
+                    //    catch (Exception ex)
+                    //    {
+                    //        MainPage.Log($"update user name error : {ex.Message}");
+                    //    }
+                    //    finally
+                    //    {
+                    //        Application.RunOnMainThread(() =>
+                    //        {
+                    //            if (waitPage != null)
+                    //            {
+                    //                waitPage.RemoveFromParent();
+                    //                waitPage = null;
+                    //            }
+                    //        });
+                    //    }
+                    //})
+                    //{ IsBackground = true }.Start();
                 };
                 new PublicAssmebly().LoadDialog_EditParater(StringId.Name, securityAlarm.name, callBack, StringId.NameCannotBeEmpty, 0, new List<string>());
             };
             btnDeploymentName.MouseUpEventHandler = eventHandler;
         }
 
-
     }
 
-    /// <summary>
-    /// 杈撳叆鏉′欢琛屾帶浠�
-    /// </summary>
-    public class InputRow : RowLayout
-    {
-        Button btnTitle;
-
-        Button btnSubTitle;
-
-        public InputRow(string title,string subtitle)
-        {
-            this.LineColor = 0x00000000;
-            this.Height = Application.GetRealHeight(65);
-            this.BackgroundColor = CSS_Color.MainBackgroundColor;
-
-            btnTitle = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealHeight(44),
-                Width = Application.GetRealWidth(320),
-                Text = title,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-            };
-            this.AddChidren(btnTitle);
-
-            btnSubTitle = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealHeight(24),
-                Height = Application.GetRealHeight(44),
-                Width = Application.GetRealWidth(320),
-                Text = subtitle,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            this.AddChidren(btnSubTitle);
-
-        }
-
-        public void SetClickEvent(EventHandler<MouseEventArgs> eventHandler)
-        {
-            this.MouseUpEventHandler = eventHandler;
-            btnTitle.MouseUpEventHandler = eventHandler;
-            btnSubTitle.MouseUpEventHandler = eventHandler;
-        }
-    }
-
-    /// <summary>
-    /// 杈撳嚭鏉′欢鎺т欢
-    /// </summary>
-    public class OutputRow : RowLayout
-    {
-        Button btnTitle;
-
-        Button btnSubTitle;
-
-        Button btnState;
-
-        Button btnRightIcon;
-
-        public OutputRow(string title, string subtitle,string state)
-        {
-            this.LineColor = 0x00000000;
-            this.Height = Application.GetRealHeight(65);
-            this.BackgroundColor = CSS_Color.MainBackgroundColor;
-
-            btnTitle = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealHeight(44),
-                Width = Application.GetRealWidth(320),
-                Text = title,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-            };
-            this.AddChidren(btnTitle);
-
-            btnSubTitle = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealHeight(24),
-                Height = Application.GetRealHeight(44),
-                Width = Application.GetRealWidth(320),
-                Text = subtitle,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            this.AddChidren(btnSubTitle);
-
-            btnState = new Button()
-            {
-                Width = Application.GetRealWidth(323),
-                TextAlignment = TextAlignment.CenterRight,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextColor = CSS_Color.PromptingColor1,
-                Text = state
-            };
-            this.AddChidren(btnState);
-
-            btnRightIcon = new Button()
-            {
-                X = Application.GetRealWidth(339),
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(16),
-                UnSelectedImagePath = "FunctionIcon/ArmCenter/RightIcon.png",
-            };
-            this.AddChidren(btnRightIcon);
-        }
-
-        public void SetClickEvent(EventHandler<MouseEventArgs> eventHandler)
-        {
-            btnState.MouseUpEventHandler = eventHandler;
-            btnTitle.MouseUpEventHandler = eventHandler;
-            btnSubTitle.MouseUpEventHandler = eventHandler;
-        }
-    }
 }

--
Gitblit v1.8.0