From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 30 九月 2019 13:22:40 +0800
Subject: [PATCH] 合并了徐梅的按键面板绑定

---
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs |  249 +++++++++++++++++++++++++++++++------------------
 1 files changed, 157 insertions(+), 92 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
index 4b84955..6f72ba9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
@@ -8,12 +8,14 @@
     /// <summary>
     /// 娣诲姞鎶ヨ鐩爣鎸囧畾璁惧绫诲瀷鐨勮澶囧垪琛�
     /// </summary>
-    public class AddDeviceAlarmTargetListForm : UserCenterCommonForm
+    public class AddDeviceAlarmTargetListForm : EditorCommonForm
     {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalScrolViewLayout listView = null;
+        private VerticalListControl listView = null;
         /// <summary>
         /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
         /// </summary>
@@ -23,13 +25,13 @@
         /// </summary>
         private List<uDeviceInfo> listAllDevice = null;
         /// <summary>
-        /// 鐜板瓨鐨勬姤璀︾洰鏍�
-        /// </summary>
-        private Dictionary<string, Safeguard.CatActionResponseObj> dicAlarmDevice = null;
-        /// <summary>
         /// 闇�瑕佹坊鍔犵殑鎶ヨ璁惧
         /// </summary>
         private Dictionary<string, TaskInfoData> dicSaveDevice = new Dictionary<string, TaskInfoData>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
 
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
@@ -45,15 +47,6 @@
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(i_deviceText);
 
-            //瀹屾垚
-            var btnfinish = new TopLayoutFinshView();
-            topFrameLayout.AddChidren(btnfinish);
-            btnfinish.MouseUpEventHandler += (sender, e) =>
-            {
-                //淇濆瓨閫夋嫨鐨勮澶�
-                this.DoSaveSelectDeviceAsync();
-            };
-
             //鍒濆鍖栦腑閮ㄤ俊鎭�
             this.InitMiddleFrame(i_deviceText);
         }
@@ -64,16 +57,37 @@
         /// <param name="titleText">鍒楄〃澶撮儴鍚嶇О</param>
         private void InitMiddleFrame(string titleText)
         {
-            //XXX鍒楄〃
-            var btnTitle = new TitleViewControl();
-            btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
-            btnTitle.Y = Application.GetRealHeight(60);
-            btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList);
-            bodyFrameLayout.AddChidren(btnTitle);
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-            this.listView = new VerticalScrolViewLayout();
-            this.listView.Y = btnTitle.Bottom;
-            this.listView.Height = bodyFrameLayout.Height - btnTitle.Bottom;
+            //瀹屾垚
+            var btnfinish = new BottomClickButton();
+            btnfinish.TextID = R.MyInternationalizationString.uFinish;
+            bodyFrameLayout.AddChidren(btnfinish);
+            btnfinish.ButtonClickEvent += (sender, e) =>
+            {
+                //淇濆瓨閫夋嫨鐨勮澶�
+                this.DoSaveSelectDeviceAsync();
+            };
+
+            //XXX鍒楄〃
+            var frameTemp = new FrameLayout();
+            frameTemp.Height = Application.GetRealHeight(60 + 52);
+            frameTemp.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(frameTemp);
+
+            var btnTitle = new NormalViewControl(850, 60, true);
+            btnTitle.X = ControlCommonResourse.XXLeft;
+            btnTitle.Y = Application.GetRealHeight(52);
+            btnTitle.TextColor = UserCenterColor.Current.TextColor2;
+            btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList);
+            btnTitle.TextSize = 15;
+            frameTemp.AddChidren(btnTitle);
+
+            this.listView = new VerticalListControl(29);
+            listView.Y = frameTemp.Bottom;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            listView.Height = btnfinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace - frameTemp.Bottom;
             bodyFrameLayout.AddChidren(this.listView);
 
             //璁剧疆涓儴淇℃伅
@@ -87,95 +101,142 @@
         {
             new System.Threading.Thread(() =>
             {
-                //鑾峰彇鐜板瓨鐨勬姤璀﹁澶�
-                var listData = Common.LocalSafeguard.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID);
-                dicAlarmDevice = new Dictionary<string, Safeguard.CatActionResponseObj>();
-                foreach (var data in listData)
+                if (this.Parent == null)
                 {
-                    if (data.Type == 1)
-                    {
-                        //涓嶉渶瑕佸満鏅�
-                        continue;
-                    }
-                    string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint);
-                    dicAlarmDevice[mainkeys] = data;
+                    return;
                 }
-
-                foreach (var deviceInfo in listAllDevice)
+                Application.RunOnMainThread(() =>
                 {
-                    //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
-                    if (Common.LocalSafeguard.Current.IsAlarmDeviceExist(this.zoonID, deviceInfo.Device) == true)
+                    int count = listAllDevice.Count - 1;
+                    for (int i = 0; i < listAllDevice.Count; i++)
                     {
-                        continue;
-                    }
-                    Application.RunOnMainThread(() =>
-                    {
+                        //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
+                        if (HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, listAllDevice[i].Device) == true)
+                        {
+                            continue;
+                        }
                         //娣诲姞琛岀洰鏍�
-                        this.AddRowLayout(deviceInfo);
-                    });
-                }
+                        this.AddRowLayout(listAllDevice[i], i != count);
+                    }
+                    if (listView.ChildrenCount > 0)
+                    {
+                        int realHeight = (listView.GetChildren(listView.ChildrenCount - 1).Height) * listView.ChildrenCount + Application.GetRealHeight(23);
+                        if (realHeight < listView.Height)
+                        {
+                            //璋冩暣鐪熷疄楂樺害
+                            listView.Height = realHeight;
+                        }
+                    }
+                });
             })
             { IsBackground = true }.Start();
         }
+
+        #endregion
+
+        #region 鈻� 娣诲姞琛岀洰鏍嘷________________________
 
         /// <summary>
         /// 娣诲姞琛岀洰鏍�
         /// </summary>
         /// <param name="deviceInfo"></param>
-        private void AddRowLayout(uDeviceInfo deviceInfo)
+        /// <param name="addLine"></param>
+        private void AddRowLayout(uDeviceInfo deviceInfo, bool addLine)
         {
-            var row = new DeviceRoomViewRow(this.listView, deviceInfo.Device, deviceInfo.listRoomName);
+            var row = new DeviceRoomControl(deviceInfo.Device, listView.rowSpace / 2);
+            listView.AddChidren(row);
+            row.InitControl();
             //娣诲姞鍚戝彸鐨勫浘鏍�
-            row.AddRightIconControl();
+            row.frameTable.AddRightArrow();
+            //搴曠嚎
+            if (addLine == true)
+            {
+                row.frameTable.AddBottomLine();
+            }
 
             //鐘舵�佹樉绀�
-            var btnStatu = new RowSecondRightTextView();
-            row.AddChidren(btnStatu);
-
+            var btnStatu = row.frameTable.AddMostRightView("", 400);
             string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device);
-            List<Safeguard.TaskListInfo> listTaskinfo = null;
-            if (this.dicAlarmDevice.ContainsKey(mainKeys) == true)
+
+            row.frameTable.ButtonClickEvent += (sender, e) =>
             {
-                //鏄剧ず鐜板瓨鐨勭姸鎬佹枃鏈�
-                listTaskinfo = this.dicAlarmDevice[mainKeys].TaskList;
-                btnStatu.Text = SafeguardLogic.GetLightAlarmStatuText(listTaskinfo);
-                btnStatu.TextColor = UserCenterColor.Current.Green;
+                List<Safeguard.TaskListInfo> listTaskinfo = null;
+                if (dicSaveDevice.ContainsKey(mainKeys) == true)
+                {
+                    //鍙栫紦瀛樹腑杩樻湭淇濆瓨鐨勬暟鎹�
+                    listTaskinfo = dicSaveDevice[mainKeys].listInfos;
+                }
+
+                if (deviceInfo.Device.Type == DeviceType.DimmableLight//璋冨厜鍣�
+                    || deviceInfo.Device.Type == DeviceType.ColorDimmableLight)//褰╃伅
+                {
+                    var form = new LightAlarmSettionForm();
+                    form.AddForm(deviceInfo.Device, listTaskinfo);
+                    form.ActionFormClose += (statuText, listInfo) =>
+                    {
+                        btnStatu.Text = statuText;
+                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+                        this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
+                    };
+                }
+                else if (deviceInfo.Device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
+                {
+                    var form = new CurtainAlarmSettionForm();
+                    form.AddForm(deviceInfo.Device, listTaskinfo);
+                    form.ActionFormClose += (statuText, listInfo) =>
+                    {
+                        btnStatu.Text = statuText;
+                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+                        this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
+                    };
+                }
+                else
+                {
+                    //鍏朵粬鐩存帴褰掍负寮�鍏崇被
+                    var form = new SwitchAlarmSettionForm();
+                    form.AddForm(deviceInfo.Device, listTaskinfo);
+                    form.ActionFormClose += (statuText, listInfo) =>
+                    {
+                        btnStatu.Text = statuText;
+                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+                        this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
+                    };
+                }
+            };
+        }
+
+        /// <summary>
+        /// 灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+        /// </summary>
+        /// <param name="deviceInfo"></param>
+        /// <param name="listInfo"></param>
+        private void AddAlarmSettionDataToMemory(uDeviceInfo deviceInfo, List<Safeguard.TaskListInfo> listInfo)
+        {
+            string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device);
+            if (listInfo == null || listInfo.Count == 0)
+            {
+                //鎸囧畾涓烘棤鍔ㄤ綔妯″紡
+                if (this.dicSaveDevice.ContainsKey(mainKeys) == true)
+                {
+                    this.dicSaveDevice.Remove(mainKeys);
+                }
             }
             else
             {
-                //鏃犲姩浣�
-                btnStatu.TextID = R.MyInternationalizationString.uNotAction;
-            }
-            row.MouseUpEvent += (sender, e) =>
-            {
-                var form = new LightAlarmSettionForm();
-                this.AddForm(form, deviceInfo.Device, listTaskinfo);
-                form.formCloseEvent += (statuText, listInfo) =>
-                {
-                    btnStatu.Text = statuText;
-                    if (listInfo == null)
-                    {
-                        //鎸囧畾涓烘棤鍔ㄤ綔妯″紡
-                        if (this.dicSaveDevice.ContainsKey(mainKeys) == true)
-                        {
-                            this.dicSaveDevice.Remove(mainKeys);
-                        }
-                        btnStatu.TextColor = UserCenterColor.Current.TextColor;
-                    }
-                    else
-                    {
-                        //纭娣诲姞鍔ㄤ綔
-                        var data = new TaskInfoData();
-                        this.dicSaveDevice[mainKeys] = data;
-                        data.MacAddress = deviceInfo.Device.DeviceAddr;
-                        data.Epoint = deviceInfo.Device.DeviceEpoint;
-                        data.listInfos = listInfo;
+                //纭娣诲姞鍔ㄤ綔
+                var data = new TaskInfoData();
+                this.dicSaveDevice[mainKeys] = data;
+                data.MacAddress = deviceInfo.Device.DeviceAddr;
+                data.Epoint = deviceInfo.Device.DeviceEpoint;
+                data.listInfos.AddRange(listInfo);
 
-                        btnStatu.TextColor = UserCenterColor.Current.Green;
-                    }
-                };
-            };
+                listInfo = null;
+            }
         }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨閫夋嫨鐨勮澶嘷______________________
 
         /// <summary>
         /// 淇濆瓨閫夋嫨鐨勮澶�
@@ -205,7 +266,7 @@
             this.ShowProgressBar();
 
             //娣诲姞鎶ヨ鐩爣鍒板畨闃�
-            bool success = await Common.LocalSafeguard.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
+            bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
             //鍏抽棴杩涘害鏉�
             this.CloseProgressBar();
 
@@ -213,13 +274,15 @@
             {
                 Application.RunOnMainThread(() =>
                 {
-                    //鍒锋柊涓�瑙堢敾闈�
-                    this.LoadFormMethodByName("AlarmTargetSettionForm", "SetMiddleInfo");
                     //鍏抽棴鑷韩
                     this.CloseForm();
                 });
             }
         }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰______________________________
 
         /// <summary>
         /// 鎶ヨ鐩爣鏁版嵁
@@ -239,5 +302,7 @@
             /// </summary>
             public List<Safeguard.TaskListInfo> listInfos = new List<Safeguard.TaskListInfo>();
         }
+
+        #endregion
     }
 }

--
Gitblit v1.8.0