From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 10 七月 2020 10:52:13 +0800
Subject: [PATCH] 2020-07-10-01

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs |  217 ++++++++++++++++++++++-------------------------------
 1 files changed, 90 insertions(+), 127 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs
index c1221c9..3f9f949 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs
@@ -1,10 +1,11 @@
-锘縰sing System;
+锘縰sing Shared.Common;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using ZigBee.Device;
 
-namespace Shared.Phone.UserCenter.DeviceRelay
+namespace Shared.Phone.UserCenter.Device
 {
     /// <summary>
     /// 璁惧骞叉帴鐐归厤缃�
@@ -16,7 +17,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalListControl listview = null;
+        private FrameListControl listview = null;
         /// <summary>
         /// 褰撳墠閫夋嫨鐨勮澶�
         /// </summary>
@@ -30,9 +31,9 @@
         /// </summary>
         private FrameCaptionInputControl btnDeviceName = null;
         /// <summary>
-        /// 璁惧Mac鍦板潃
+        /// 璁惧鐨勬煇涓�鍥炶矾
         /// </summary>
-        private string deviceMac = string.Empty;
+        private CommonDevice deviceObj = null;
         /// <summary>
         /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
         /// </summary>
@@ -41,6 +42,10 @@
         /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭�
         /// </summary>
         private DeviceEnumInfo deviceEnumInfo = null;
+        /// <summary>
+        /// 淇℃伅缂栬緫鎺т欢
+        /// </summary>
+        private InformationEditorControl tableContr = null;
 
         #endregion
 
@@ -49,11 +54,11 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        /// <param name="i_deviceMac">璁惧Mac鍦板潃</param>
-        public void ShowForm(string i_deviceMac)
+        /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
+        public void ShowForm(CommonDevice i_device)
         {
-            this.deviceMac = i_deviceMac;
-            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+            this.deviceObj = i_device;
+            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
             //鑾峰彇杩欎竴鍫嗚澶囨椂灞炰簬浠�涔堢被鍨嬬殑
             this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
 
@@ -75,22 +80,22 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            var listBackControl = new VerticalFrameControl();
+            listBackControl.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackControl);
+
             //鍒濆鍖栨甯�
-            this.InitFrameTable();
+            this.tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1175);
+
             //鍒濆鍖栬澶囧洖璺浘鏍�
-            this.InitDeviceEpointIcon();
+            this.InitDeviceEpointIcon(listBackControl);
 
             //淇濆瓨
             var btnFinish = new BottomClickButton();
-            //鍊熺敤Y杞村潗鏍�(璁╄繖涓尯鍩熶笉鑳界偣鍑昏彍鍗�)
-            var frameBack = new FrameLayout();
-            frameBack.Y = btnFinish.Yaxis;
-            frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis;
-            bodyFrameLayout.AddChidren(frameBack);
-
             btnFinish.TextID = R.MyInternationalizationString.uSave;
             bodyFrameLayout.AddChidren(btnFinish);
-            btnFinish.ButtonClickEvent += async (sender, e) =>
+            btnFinish.ButtonClickEvent += (sender, e) =>
             {
                 //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
                 dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
@@ -98,7 +103,7 @@
                 this.ShowProgressBar();
                 foreach (var epoint in dicDeviceSaveName.Keys)
                 {
-                    var device = Common.LocalDevice.Current.GetDevice(deviceMac, epoint);
+                    var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
                     if (device == null || dicDeviceSaveName[epoint] == string.Empty)
                     {
                         //涓嶈兘鍏佽绌虹櫧鍚嶅瓧
@@ -109,7 +114,7 @@
                     if (oldName != newName)
                     {
                         //璁惧鍚嶇О淇敼
-                        var result = await Common.LocalDevice.Current.ReName(device, newName);
+                        var result = Common.LocalDevice.Current.ReName(device, newName);
                         if (result == false)
                         {
                             //鍏抽棴
@@ -143,7 +148,7 @@
             listview.AddChidren(btnDeviceName);
             btnDeviceName.InitControl();
             btnDeviceName.AddBottomLine();
-            btnDeviceName.txtInput.FinishInputEvent += async () =>
+            btnDeviceName.txtInput.FinishInputEvent += () =>
             {
                 string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
                 if (btnDeviceName.Text.Trim() == string.Empty)
@@ -154,7 +159,7 @@
                 if (oldName != btnDeviceName.Text.Trim())
                 {
                     //璁惧鍚嶇О淇敼
-                    var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
+                    var result = Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
                     if (result == false)
                     {
                         return;
@@ -166,29 +171,15 @@
             };
 
             //鎵�灞炲尯鍩�
-            List<string> listRoomName = Common.Room.CurrentRoom.GetRoomListNameByDevice(nowSelectDevice);
-            caption = Language.StringByID(R.MyInternationalizationString.uBelongArea);
-            nameValue = Common.Room.CurrentRoom.GetRoomName(listRoomName);
-            var btnBeloneArea = new FrameCaptionViewControl(caption, nameValue, listview.rowSpace / 2);
-            listview.AddChidren(btnBeloneArea);
-            btnBeloneArea.InitControl();
+            var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+            listview.AddChidren(rowBeloneArea);
+            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), nowSelectDevice);
             //搴曠嚎
-            btnBeloneArea.AddBottomLine();
-            //鍙崇澶�
-            btnBeloneArea.AddRightArrow();
-            btnBeloneArea.ButtonClickEvent += (sender, e) =>
+            rowBeloneArea.AddBottomLine();
+            rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
-                var form = new SelectRoomForm();
-                form.AddForm(listRoomName);
-                form.ActionSelectRoom = (list) =>
-                {
-                    //鍙樻洿鎴块棿
-                    Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, list);
-
-                    btnBeloneArea.Text = Common.Room.CurrentRoom.GetRoomName(list);
-                    listRoomName.Clear();
-                    listRoomName.AddRange(list);
-                };
+                //鍙樻洿鎴块棿
+                HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
             };
 
             //3璺户鐢靛櫒鎴栬��1璺皟鍏夊櫒绗竷鍥炶矾鐨勯厤缃俊鎭�
@@ -205,7 +196,7 @@
                     //杩欓噷鍏堝幓鑾峰彇瀹冪殑骞叉帴鐐圭被鍨�
                     this.ShowProgressBar();
                     //鑾峰彇绗竷鍥炶矾鐨勯厤缃俊鎭�
-                    listRelayInfo7 = await HdlPanelLogic.Current.GetDryContactConfigureInfo(nowSelectDevice);
+                    listRelayInfo7 = await HdlDevicePanelLogic.Current.GetDryContactConfigureInfo(nowSelectDevice);
                     if (listRelayInfo7 == null)
                     {
                         //鍏抽棴杩涘害鏉�
@@ -223,18 +214,8 @@
             this.AddBindRow(listRelayInfo7);
             //娣诲姞鑳屽厜鐏
             this.AddBackLightRow();
-
-            //鍊熺敤Y杞村潗鏍�
-            var btnTemp = new BottomClickButton();
-            var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount;
-            if (bodyFrameLayout.Height - btnTemp.Yaxis + realHeight > listview.Height)
-            {
-                //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
-                var frameTemp = new FrameLayout();
-                frameTemp.Height = bodyFrameLayout.Height - btnTemp.Yaxis + Application.GetRealHeight(115);
-                listview.AddChidren(frameTemp);
-            }
-            btnTemp = null;
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl();
         }
 
         #endregion
@@ -246,6 +227,11 @@
         /// </summary>
         private void InitTopRightMenu()
         {
+            //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
+            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
+            {
+                return;
+            }
             var btnIcon = new MostRightIconControl(69, 69);
             btnIcon.UnSelectedImagePath = "Item/More.png";
             topFrameLayout.AddChidren(btnIcon);
@@ -266,11 +252,11 @@
             string deviceMenu = string.Empty;
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
-            if (canTest == true)
-            {
-                menuCount = 2;
-            }
-            var frame = new TopRightMenuControl(this, menuCount);
+            //if (canTest == true)
+            //{
+            //    menuCount = 2;
+            //}
+            var frame = new TopRightMenuControl(menuCount, 1);
             if (canTest == true)
             {
                 //瀹氫綅
@@ -283,10 +269,10 @@
             }
 
             //鍒犻櫎
-            deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
-            frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
-            {
-            });
+            //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
+            //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+            //{
+            //});
         }
 
         #endregion
@@ -337,9 +323,9 @@
                     //鏍囬:閫夋嫨骞叉帴鐐瑰姛鑳�
                     var title = Language.StringByID(R.MyInternationalizationString.uSelectDryContactFunction);
 
-                    var form = new BottomDialogSelectForm();
+                    var form = new BottomItemSelectForm();
                     form.AddForm(title, listText, nowSelectNo);
-                    form.FinishSelectEvent += async (selectNo) =>
+                    form.FinishSelectEvent += (selectNo) =>
                     {
                         if (selectNo == nowSelectNo)
                         {
@@ -353,7 +339,7 @@
                             //閫夋嫨鐨勬槸浼犳劅鍣ㄨ緭鍏�
                             value = 65535;
                         }
-                        var result = await HdlPanelLogic.Current.EditorDryContactFunction((Panel)nowSelectDevice, value);
+                        var result = HdlDevicePanelLogic.Current.EditorDryContactThirdFunction((Panel)nowSelectDevice, value);
                         if (result == true)
                         {
                             //閲嶆柊鍒濆鍖栬彍鍗曡,闅愯棌鎴栬�呭紑鏀剧粦瀹氱洰鏍囪彍鍗�
@@ -400,6 +386,11 @@
                 btnBind.AddRightArrow();
                 btnBind.ButtonClickEvent += (sender, e) =>
                 {
+                    var panel = nowSelectDevice as ZigBee.Device.Panel;
+                    var bindTargetsPage = new Shared.Phone.UserCenter.DeviceBind.BindTargetsPage(panel);
+                    Shared.Phone.UserView.HomePage.Instance.AddChidren(bindTargetsPage);
+                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                    bindTargetsPage.Show();
                 };
             }
         }
@@ -414,7 +405,7 @@
         private void AddBackLightRow()
         {
             //涓夎矾缁х數鍣�,鎴栬�呬竴璺皟鍏夊櫒 鐨勬椂鍊欐墠鑳藉紑鍚閫夐」
-            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
             var myType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
 
             if (myType.ConcreteType == DeviceConcreteType.Relay_ThreeLoad
@@ -431,8 +422,8 @@
                 btnLight.AddRightArrow();
                 btnLight.ButtonClickEvent += (sender, e) =>
                 {
-                    var form = new RelayThreeLoadBackLightSettionForm();
-                    form.AddForm(deviceMac);
+                    var form = new DeviceRelay.RelayThreeLoadBackLightSettionForm();
+                    form.AddForm(deviceObj.DeviceAddr);
                 };
             }
         }
@@ -444,7 +435,7 @@
         /// <summary>
         /// 鍒濆鍖栬澶囧洖璺浘鏍�
         /// </summary>
-        private void InitDeviceEpointIcon()
+        private void InitDeviceEpointIcon(VerticalFrameControl listBackControl)
         {
             //鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
             var listIcon = this.GetAllDeviceGroup();
@@ -454,9 +445,8 @@
             frameBorder.Gravity = Gravity.CenterHorizontal;
             frameBorder.Width = Application.GetRealWidth(887);
             frameBorder.Height = Application.GetRealHeight(423);
-            frameBorder.BorderWidth = (uint)Application.GetMinRealAverage(3);
-            frameBorder.BorderColor = 0xffd0d0d0;
-            bodyFrameLayout.AddChidren(frameBorder);
+            frameBorder.Radius = (uint)Application.GetRealHeight(6);
+            listBackControl.frameTable.AddChidren(frameBorder);
 
             var frameBack = new FrameLayout();
             frameBack.Height = frameBorder.Height;
@@ -466,7 +456,7 @@
                 //闇�瑕佹粦鍔ㄦ帶浠�
                 var listControl = new VerticalScrolViewLayout();
                 listControl.Height = frameBorder.Height;
-                bodyFrameLayout.AddChidren(listControl);
+                listBackControl.frameTable.AddChidren(listControl);
 
                 listControl.AddChidren(frameBack);
             }
@@ -480,11 +470,11 @@
             for (int i = 0; i < listIcon.Count; i++)
             {
                 var frame = new FrameLayout();
-                frame.Width = Application.GetMinRealAverage(887);
-                frame.Height = Application.GetMinRealAverage(124);
+                frame.Width = this.GetPictrueRealSize(887);
+                frame.Height = this.GetPictrueRealSize(124);
                 frameBack.AddChidren(frame);
                 //鍒濆鍖栦竴琛岃澶囧浘鏍�
-                this.InitDeviceIconFrame(frame, listIcon[i], i == 0, ref index);
+                this.InitDeviceIconFrame(frame, listIcon[i], ref index);
 
                 if (listIcon.Count == 1)
                 {
@@ -492,14 +482,14 @@
                 }
                 else
                 {
-                    frame.Y = Application.GetMinRealAverage(58) + (frameBack.ChildrenCount - 1) * (frame.Height + Application.GetMinRealAverage(60));
+                    frame.Y = this.GetPictrueRealSize(58) + (frameBack.ChildrenCount - 1) * (frame.Height + this.GetPictrueRealSize(60));
                 }
             }
 
             if (listIcon.Count > 2)
             {
                 //璁$畻鐪熷疄楂樺害
-                int realHeight = Application.GetMinRealAverage(58 + 58) + (frameBack.ChildrenCount - 1) * Application.GetMinRealAverage(124 + 60);
+                int realHeight = this.GetPictrueRealSize(58 + 58) + (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(124 + 60);
                 if (realHeight > frameBack.Height)
                 {
                     //鍙樻洿楂樺害
@@ -513,14 +503,13 @@
         /// </summary>
         /// <param name="frame"></param>
         /// <param name="listDevice"></param>
-        /// <param name="isFirstRow"></param>
         /// <param name="index"></param>
         /// <returns></returns>
-        private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, bool isFirstRow, ref int index)
+        private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, ref int index)
         {
             NormalViewControl btnTemp = null;
             //闂磋窛
-            int space = Application.GetMinRealAverage(84);
+            int space = this.GetPictrueRealSize(84);
             int defultXX = (frame.Width - frame.Height * listDevice.Count - (listDevice.Count - 1) * space) / 2;
             for (int i = 0; i < listDevice.Count; i++)
             {
@@ -529,7 +518,7 @@
                 btnIcon.Name = "btn" + listDevice[i].DeviceEpoint;
                 btnIcon.X = defultXX + i * (frame.Height + space);
                 btnIcon.Radius = (uint)frame.Height / 2;
-                btnIcon.BorderWidth = (uint)Application.GetMinRealAverage(6);
+                btnIcon.BorderWidth = 2;
                 btnIcon.BorderColor = 0xff979797;
                 btnIcon.TextAlignment = TextAlignment.Center;
                 btnIcon.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -539,12 +528,12 @@
                 //鐐瑰嚮浜嬩欢
                 btnIcon.ButtonClickEvent += this.DeviceEpointSelectEvent;
 
-                if (i == 0 && isFirstRow == true)
+                if (listDevice[i].DeviceEpoint == deviceObj.DeviceEpoint)
                 {
                     btnTemp = btnIcon;
                 }
             }
-            if (isFirstRow == true)
+            if (btnTemp != null)
             {
                 //鍒濆鍖栬彍鍗曡
                 this.DeviceEpointSelectEvent(btnTemp, null);
@@ -557,7 +546,8 @@
         /// <returns></returns>
         private List<List<CommonDevice>> GetAllDeviceGroup()
         {
-            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+            bool hadDevice = false;
+            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
             var listRelay = new List<CommonDevice>();
             foreach (var device in listDevice)
             {
@@ -565,6 +555,11 @@
                 {
                     //鍙骞叉帴鐐�
                     listRelay.Add(device);
+                    if (device.DeviceEpoint == deviceObj.DeviceEpoint)
+                    {
+                        //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾
+                        hadDevice = true;
+                    }
                 }
             }
             //鎺掑簭
@@ -576,6 +571,12 @@
                 }
                 return -1;
             });
+            if (hadDevice == false)
+            {
+                //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓�
+                this.deviceObj = listRelay[0];
+            }
+
             //浠庝笅寰�涓�4涓负涓�缁�
             var listIcon = new List<List<CommonDevice>>();
             var listTemp = new List<CommonDevice>();
@@ -593,44 +594,6 @@
                 listIcon.Insert(0, listTemp);
             }
             return listIcon;
-        }
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖栨甯僟________________________
-
-        /// <summary>
-        /// 鍒濆鍖栨甯�
-        /// </summary>
-        private void InitFrameTable()
-        {
-            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
-            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
-            //寮у害鐨勫渾
-            var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
-            btnRound.Y = Application.GetRealHeight(562);
-            btnRound.BackgroundColor = UserCenterColor.Current.White;
-            btnRound.Radius = (uint)halfRoundHeigth;
-            bodyFrameLayout.AddChidren(btnRound);
-            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�)
-            var detailBackFrame = new FrameLayout();
-            detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
-            detailBackFrame.Height = Application.GetRealHeight(1175);//楂樺害灏辨槸瑕佸畠瓒呰繃
-            detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(detailBackFrame);
-
-            //璁惧缂栬緫
-            var btnTile = new NormalViewControl(800, 60, true);
-            btnTile.X = ControlCommonResourse.XXLeft;
-            btnTile.TextSize = 15;
-            btnTile.TextColor = UserCenterColor.Current.TextColor2;
-            btnTile.TextID = R.MyInternationalizationString.uDeviceEditor;
-            detailBackFrame.AddChidren(btnTile);
-
-            this.listview = new VerticalListControl(12);
-            listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
-            listview.Height = Application.GetRealHeight(1175) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
-            detailBackFrame.AddChidren(listview);
         }
 
         #endregion
@@ -665,7 +628,7 @@
             nowContr.TextColor = UserCenterColor.Current.TextColor1;
 
             nowSelectControl = nowContr;
-            nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceMac, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
+            nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
 
             //閲嶆柊鍒濆鍖栬彍鍗曡
             this.InitMenuRow();

--
Gitblit v1.8.0