From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs | 235 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 141 insertions(+), 94 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs index 513b50d..f65d1cc 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> @@ -28,11 +29,11 @@ /// <summary> /// 璁惧澶囨敞鐨勬帶浠� /// </summary> - private FrameCaptionInputControl btnDeviceName = null; + private FrameCaptionInputControl frameDeviceName = 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,30 +80,30 @@ //娓呯┖bodyFrame this.ClearBodyFrame(); + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + //鍒濆鍖栨甯� - var tableContr = new InformationEditorControl(); - this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 562, 1175); + this.tableContr = new InformationEditorControl(); + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1175); //鍒濆鍖栬澶囧洖璺浘鏍� - this.InitDeviceEpointIcon(); - - //鍒濆鍖栨甯冨畬鎴� - tableContr.FinishInitControl(bodyFrameLayout, this.listview); - tableContr = null; + this.InitDeviceEpointIcon(listBackControl); //淇濆瓨 var btnFinish = new BottomClickButton(); btnFinish.TextID = R.MyInternationalizationString.uSave; bodyFrameLayout.AddChidren(btnFinish); - btnFinish.ButtonClickEvent += async (sender, e) => + btnFinish.ButtonClickEvent += (sender, e) => { //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧 - dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim(); + dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim(); //寮�鍚繘搴︽潯 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) { //鍏抽棴 @@ -122,12 +127,17 @@ //鍏抽棴鑷韩 this.CloseForm(); }; + //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + btnFinish.CanClick = false; + } } /// <summary> /// 鍒濆鍖栬彍鍗曡 /// </summary> - private async void InitMenuRow() + private void InitMenuRow() { this.listview.RemoveAll(); @@ -139,31 +149,36 @@ nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint]; } - this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); - listview.AddChidren(btnDeviceName); - btnDeviceName.InitControl(); - btnDeviceName.AddBottomLine(); - btnDeviceName.txtInput.FinishInputEvent += async () => + this.frameDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + this.frameDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� + listview.AddChidren(frameDeviceName); + frameDeviceName.InitControl(); + frameDeviceName.AddBottomLine(); + //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == false) { - string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice); - if (btnDeviceName.Text.Trim() == string.Empty) + frameDeviceName.txtInput.FinishInputEvent += () => { - //灏嗗悕瀛楄繕鍘� - btnDeviceName.Text = oldName; - } - if (oldName != btnDeviceName.Text.Trim()) - { - //璁惧鍚嶇О淇敼 - var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim()); - if (result == false) + string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice); + if (frameDeviceName.Text.Trim() == string.Empty) { - return; + //灏嗗悕瀛楄繕鍘� + frameDeviceName.Text = oldName; } - //骞叉帴鐐瑰娉ㄤ慨鏀规垚鍔�! - string msg = Language.StringByID(R.MyInternationalizationString.uDryContactReNoteSuccess); - this.ShowMassage(ShowMsgType.Tip, msg); - } - }; + if (oldName != frameDeviceName.Text.Trim()) + { + //璁惧鍚嶇О淇敼 + var result = Common.LocalDevice.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim()); + if (result == false) + { + return; + } + //骞叉帴鐐瑰娉ㄤ慨鏀规垚鍔�! + string msg = Language.StringByID(R.MyInternationalizationString.uDryContactReNoteSuccess); + this.ShowMassage(ShowMsgType.Tip, msg); + } + }; + } //鎵�灞炲尯鍩� var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); @@ -174,7 +189,7 @@ rowBeloneArea.SelectRoomEvent += (roomKeys) => { //鍙樻洿鎴块棿 - Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys); + HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys); }; //3璺户鐢靛櫒鎴栬��1璺皟鍏夊櫒绗竷鍥炶矾鐨勯厤缃俊鎭� @@ -185,13 +200,15 @@ if (isHdlDevice == true) { //濡傛灉鏄�3璺户鐢靛櫒鎴栬��1璺皟鍏夊櫒,骞朵笖鏄涓冨洖璺殑鏃跺��,瀹冨ソ鍍忓彲浠ユ敼鍙樼被鍨� + //濡傛灉鏄�7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡,骞朵笖鏄涓冨洖璺殑鏃跺��,瀹冨ソ鍍忓彲浠ユ敼鍙樼被鍨� if ((deviceEnumInfo.ConcreteType == DeviceConcreteType.Relay_ThreeLoad && nowSelectDevice.DeviceEpoint == 10) - || (deviceEnumInfo.ConcreteType == DeviceConcreteType.DimmableLight_OneLoad && nowSelectDevice.DeviceEpoint == 7)) + || (deviceEnumInfo.ConcreteType == DeviceConcreteType.DimmableLight_OneLoad && nowSelectDevice.DeviceEpoint == 7) + || (deviceEnumInfo.ConcreteType == DeviceConcreteType.Relay_SevenLoadInOutPutDryContact && nowSelectDevice.DeviceEpoint == 7)) { //杩欓噷鍏堝幓鑾峰彇瀹冪殑骞叉帴鐐圭被鍨� this.ShowProgressBar(); //鑾峰彇绗竷鍥炶矾鐨勯厤缃俊鎭� - listRelayInfo7 = await HdlPanelLogic.Current.GetDryContactConfigureInfo(nowSelectDevice); + listRelayInfo7 = HdlDevicePanelLogic.Current.GetDryContactConfigureInfo(nowSelectDevice); if (listRelayInfo7 == null) { //鍏抽棴杩涘害鏉� @@ -209,18 +226,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 @@ -232,6 +239,12 @@ /// </summary> private void InitTopRightMenu() { + //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘 + if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false + || Common.Config.Instance.Home.IsShowTemplate == true) + { + return; + } var btnIcon = new MostRightIconControl(69, 69); btnIcon.UnSelectedImagePath = "Item/More.png"; topFrameLayout.AddChidren(btnIcon); @@ -252,11 +265,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) { //瀹氫綅 @@ -269,10 +282,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 @@ -323,9 +336,9 @@ //鏍囬:閫夋嫨骞叉帴鐐瑰姛鑳� var title = Language.StringByID(R.MyInternationalizationString.uSelectDryContactFunction); - var form = new BottomDialogSelectForm(); - form.AddForm(title, listText, nowSelectNo); - form.FinishSelectEvent += async (selectNo) => + var form = new BottomItemSelectForm(); + form.AddForm(title, listText, null, nowSelectNo); + form.FinishSelectEvent += (selectNo) => { if (selectNo == nowSelectNo) { @@ -339,7 +352,7 @@ //閫夋嫨鐨勬槸浼犳劅鍣ㄨ緭鍏� value = 65535; } - var result = await HdlPanelLogic.Current.EditorDryContactFunction((Panel)nowSelectDevice, value); + var result = HdlDevicePanelLogic.Current.EditorDryContactThirdFunction((Panel)nowSelectDevice, value); if (result == true) { //閲嶆柊鍒濆鍖栬彍鍗曡,闅愯棌鎴栬�呭紑鏀剧粦瀹氱洰鏍囪彍鍗� @@ -347,6 +360,11 @@ } }; }; + //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + btnFunction.CanClick = false; + } } } @@ -386,6 +404,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(); }; } } @@ -400,11 +423,14 @@ 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); + //娆ф爣2璺�5A娌℃湁鑳屽厜鐏� if (myType.ConcreteType == DeviceConcreteType.Relay_ThreeLoad - || myType.ConcreteType == DeviceConcreteType.DimmableLight_OneLoad) + || myType.ConcreteType == DeviceConcreteType.DimmableLight_OneLoad + || myType.ConcreteType == DeviceConcreteType.Relay_NationalThreeLoadTenA + || myType.ConcreteType == DeviceConcreteType.Relay_SevenLoadInOutPutDryContact) { //鑳屽厜鐏� string caption = Language.StringByID(R.MyInternationalizationString.uBackLight); @@ -417,8 +443,19 @@ btnLight.AddRightArrow(); btnLight.ButtonClickEvent += (sender, e) => { - var form = new RelayThreeLoadBackLightSettionForm(); - form.AddForm(deviceMac); + if (myType.ConcreteType == DeviceConcreteType.Relay_NationalThreeLoadTenA + || myType.ConcreteType == DeviceConcreteType.Relay_SevenLoadInOutPutDryContact) + { + //鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 鎴栬�� 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 + var form = new DeviceRelay.RelayNationalBackLightSettionForm(); + form.AddForm(deviceObj.DeviceAddr); + } + else + { + //涓夎矾缁х數鍣�,鎴栬�呬竴璺皟鍏夊櫒 + var form = new DeviceRelay.RelayThreeLoadBackLightSettionForm(); + form.AddForm(deviceObj.DeviceAddr); + } }; } } @@ -430,7 +467,7 @@ /// <summary> /// 鍒濆鍖栬澶囧洖璺浘鏍� /// </summary> - private void InitDeviceEpointIcon() + private void InitDeviceEpointIcon(VerticalFrameControl listBackControl) { //鑾峰彇鎸夌粍鍒嗛厤鐨勮澶� var listIcon = this.GetAllDeviceGroup(); @@ -440,9 +477,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; @@ -452,7 +488,7 @@ //闇�瑕佹粦鍔ㄦ帶浠� var listControl = new VerticalScrolViewLayout(); listControl.Height = frameBorder.Height; - bodyFrameLayout.AddChidren(listControl); + listBackControl.frameTable.AddChidren(listControl); listControl.AddChidren(frameBack); } @@ -466,11 +502,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) { @@ -478,14 +514,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) { //鍙樻洿楂樺害 @@ -499,14 +535,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++) { @@ -515,7 +550,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; @@ -525,12 +560,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); @@ -543,7 +578,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) { @@ -551,6 +587,11 @@ { //鍙骞叉帴鐐� listRelay.Add(device); + if (device.DeviceEpoint == deviceObj.DeviceEpoint) + { + //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾 + hadDevice = true; + } } } //鎺掑簭 @@ -562,6 +603,12 @@ } return -1; }); + if (hadDevice == false) + { + //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓� + this.deviceObj = listRelay[0]; + } + //浠庝笅寰�涓�4涓负涓�缁� var listIcon = new List<List<CommonDevice>>(); var listTemp = new List<CommonDevice>(); @@ -605,7 +652,7 @@ nowSelectControl.TextSize = 13; nowSelectControl.TextColor = UserCenterColor.Current.TextGrayColor3; //璁板綍瀹冪殑鍚嶅瓧 - dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim(); + dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim(); } //閫夋嫨鐘舵�� nowContr.BorderColor = 0xfffb744a; @@ -613,7 +660,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