From 944b87b6bcccb095cd73f13f4410fb20faf48f74 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期三, 25 十二月 2019 11:21:06 +0800 Subject: [PATCH] 2019.12.25 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs | 129 ++++++++++++++++++++++++++---------------- 1 files changed, 79 insertions(+), 50 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs index 19e6442..0a7ed17 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs @@ -29,13 +29,17 @@ /// </summary> private FrameCaptionInputControl btnDeviceName = null; /// <summary> - /// 璁惧Mac鍦板潃 + /// 璁惧鐨勬煇涓�鍥炶矾 /// </summary> - private string deviceMac = string.Empty; + private CommonDevice deviceObj = null; /// <summary> /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧 /// </summary> private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>(); + /// <summary> + /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘 + /// </summary> + private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>(); #endregion @@ -44,10 +48,10 @@ /// <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; + this.deviceObj = i_device; //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp)); @@ -70,7 +74,7 @@ //鍒濆鍖栨甯� var tableContr = new InformationEditorControl(); this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1028); - + //鍒濆鍖栬澶囧洖璺浘鏍� this.InitDeviceEpointIcon(); @@ -90,7 +94,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,6 +113,34 @@ return; } } + } + foreach (var epoint in dicDeviceFuncType.Keys) + { + var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint); + if (device == null) + { + continue; + } + //璁剧疆鍔熻兘绫诲瀷 + device.DfunctionType = dicDeviceFuncType[epoint]; + if (device.IsCustomizeImage == true) + { + continue; + } + //閲嶆柊璁剧疆鍥剧墖 + if (device.DfunctionType == DeviceFunctionType.A寮�鍏�) + { + device.IconPath = "Device/Switch.png"; + } + else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇) + { + device.IconPath = "Device/Socket1.png"; + } + else if (device.DfunctionType == DeviceFunctionType.A鐏厜) + { + device.IconPath = "Device/Light.png"; + } + device.ReSave(); } this.CloseProgressBar(); //鍏抽棴鑷韩 @@ -171,18 +203,6 @@ //娣诲姞鍔熻兘绫诲瀷琛� this.AddFunctionTypeRow(); - - //鍊熺敤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; } #endregion @@ -218,7 +238,7 @@ { menuCount = 2; } - var frame = new TopRightMenuControl(this, menuCount); + var frame = new TopRightMenuControl(menuCount); if (canTest == true) { //瀹氫綅 @@ -252,32 +272,31 @@ { //鍔熻兘绫诲瀷 string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType); + var DfunctionType = nowSelectDevice.DfunctionType; + if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true) + { + DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint]; + } //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛� int nowSelectNo = 1; string strType = string.Empty; - if (nowSelectDevice.DfunctionType == DeviceFunctionType.A鐏厜) + if (DfunctionType == DeviceFunctionType.A鐏厜) { strType = Language.StringByID(R.MyInternationalizationString.uLight); nowSelectNo = 1; } - else if (nowSelectDevice.DfunctionType == DeviceFunctionType.A寮�鍏�) + else if (DfunctionType == DeviceFunctionType.A寮�鍏�) { strType = Language.StringByID(R.MyInternationalizationString.uSwitch); nowSelectNo = 0; } - else if (nowSelectDevice.DfunctionType == DeviceFunctionType.A鎻掑骇) + else if (DfunctionType == DeviceFunctionType.A鎻掑骇) { strType = Language.StringByID(R.MyInternationalizationString.uSocket1); nowSelectNo = 2; } - else - { - //榛樿鐏厜 - strType = Language.StringByID(R.MyInternationalizationString.uLight); - nowSelectDevice.DfunctionType = DeviceFunctionType.A鐏厜; - nowSelectDevice.ReSave(); - } + var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2); btnFunction.UseClickStatu = false; listview.AddChidren(btnFunction); @@ -301,25 +320,25 @@ //鏍囬:閫夋嫨鍔熻兘绫诲瀷 var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType); - var form = new BottomDialogSelectForm(); + var form = new BottomItemSelectForm(); form.AddForm(title, listText, nowSelectNo); form.FinishSelectEvent += (selectNo) => { btnFunction.Text = listText[selectNo]; nowSelectNo = selectNo; + //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨� if (selectNo == 0) { - nowSelectDevice.DfunctionType = DeviceFunctionType.A寮�鍏�; + dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A寮�鍏�; } else if (selectNo == 1) { - nowSelectDevice.DfunctionType = DeviceFunctionType.A鐏厜; + dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鐏厜; } else { - nowSelectDevice.DfunctionType = DeviceFunctionType.A鎻掑骇; + dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鎻掑骇; } - nowSelectDevice.ReSave(); }; }; } @@ -335,7 +354,8 @@ /// </summary> private void InitDeviceEpointIcon() { - var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); + bool hadDevice = false; + var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr); var listSort = new List<CommonDevice>(); foreach (var device in listDevice) { @@ -344,6 +364,11 @@ || device.Type == DeviceType.ColorDimmableLight) { listSort.Add(device); + if (device.DeviceEpoint == deviceObj.DeviceEpoint) + { + //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾 + hadDevice = true; + } } } //鎺掑簭 @@ -355,6 +380,11 @@ } return -1; }); + if (hadDevice == false) + { + //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓� + this.deviceObj = listSort[0]; + } var frameBorder = new FrameLayout(); frameBorder.Y = Application.GetRealHeight(150); @@ -389,9 +419,8 @@ /// </summary> /// <param name="frame">鎵╁ぇ鐐瑰嚮鍖哄煙鐨勫鍣�</param> /// <param name="device">璁惧瀵硅薄</param> - /// <param name="isFirst">鏄惁鏄涓�涓�</param> /// <returns></returns> - private void InitDeviceIcon(FrameLayoutControl frame, CommonDevice device, bool isFirst) + private void InitDeviceIcon(FrameLayoutControl frame, CommonDevice device) { //涓嶄娇鐢ㄧ偣鍑荤壒鏁� frame.UseClickStatu = false; @@ -399,7 +428,7 @@ var btnIcon = new NormalViewControl(Application.GetMinRealAverage(52), Application.GetMinRealAverage(52), false); btnIcon.Name = "btn" + device.DeviceEpoint; btnIcon.Gravity = Gravity.Center; - btnIcon.Radius = (uint)Application.GetMinRealAverage(6); + btnIcon.Radius = 6; btnIcon.BorderWidth = 2; btnIcon.BorderColor = 0xff979797; frame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly); @@ -410,7 +439,7 @@ this.DeviceEpointSelectEvent(btnIcon, null); }; - if (isFirst == true) + if (device.DeviceEpoint == deviceObj.DeviceEpoint) { //鍒濆鍖栬彍鍗曡 this.DeviceEpointSelectEvent(btnIcon, null); @@ -436,7 +465,7 @@ frame1.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame1, listDevice[0], true); + this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 var frame2 = new FrameLayoutControl(); @@ -446,7 +475,7 @@ frame2.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame2, listDevice[1], false); + this.InitDeviceIcon(frame2, listDevice[1]); } #endregion @@ -468,7 +497,7 @@ frame1.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame1, listDevice[0], true); + this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 var frame2 = new FrameLayoutControl(); @@ -478,7 +507,7 @@ frame2.Y = Application.GetMinRealAverage(245); frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame2, listDevice[1], false); + this.InitDeviceIcon(frame2, listDevice[1]); //鎸夐敭3 var frame3 = new FrameLayoutControl(); @@ -488,7 +517,7 @@ frame3.Y = Application.GetMinRealAverage(245); frameBack.AddChidren(frame3); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame3, listDevice[2], false); + this.InitDeviceIcon(frame3, listDevice[2]); } #endregion @@ -510,7 +539,7 @@ frame1.Y = Application.GetMinRealAverage(63); frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame1, listDevice[0], true); + this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 var frame2 = new FrameLayoutControl(); @@ -520,7 +549,7 @@ frame2.Y = Application.GetMinRealAverage(63); frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame2, listDevice[1], false); + this.InitDeviceIcon(frame2, listDevice[1]); //鎸夐敭3 var frame3 = new FrameLayoutControl(); @@ -530,7 +559,7 @@ frame3.Y = Application.GetMinRealAverage(245); frameBack.AddChidren(frame3); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame3, listDevice[2], false); + this.InitDeviceIcon(frame3, listDevice[2]); //鎸夐敭4 var frame4 = new FrameLayoutControl(); @@ -540,7 +569,7 @@ frame4.Y = Application.GetMinRealAverage(245); frameBack.AddChidren(frame4); //鍒濆鍖栬澶囧浘鏍� - this.InitDeviceIcon(frame4, listDevice[3], false); + this.InitDeviceIcon(frame4, listDevice[3]); } #endregion @@ -575,7 +604,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