From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs | 325 ++++++++++++++++++++---------------------------------- 1 files changed, 121 insertions(+), 204 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs index 0a7ed17..caaeaea 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs @@ -15,7 +15,7 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalListControl listview = null; + private FrameListControl listview = null; /// <summary> /// 褰撳墠閫夋嫨鐨勮澶� /// </summary> @@ -37,9 +37,9 @@ /// </summary> private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>(); /// <summary> - /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘 + /// 淇℃伅缂栬緫鎺т欢 /// </summary> - private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>(); + private InformationEditorControl tableContr = null; #endregion @@ -71,81 +71,53 @@ //娓呯┖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), 708, 1028); + this.tableContr = new InformationEditorControl(); + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028); //鍒濆鍖栬澶囧洖璺浘鏍� - 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(); - //寮�鍚繘搴︽潯 - this.ShowProgressBar(); foreach (var epoint in dicDeviceSaveName.Keys) { - var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint); + var device = HdlDeviceCommonLogic.Current.GetDevice(deviceObj.DeviceAddr, epoint); if (device == null || dicDeviceSaveName[epoint] == string.Empty) { //涓嶈兘鍏佽绌虹櫧鍚嶅瓧 continue; } string newName = dicDeviceSaveName[epoint]; - string oldName = Common.LocalDevice.Current.GetDeviceEpointName(device); + string oldName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device); if (oldName != newName) { //璁惧鍚嶇О淇敼 - var result = await Common.LocalDevice.Current.ReName(device, newName); + var result = HdlDeviceCommonLogic.Current.ReName(device, newName); if (result == false) { - //鍏抽棴 - this.CloseProgressBar(); 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(); //鍏抽棴鑷韩 this.CloseForm(); }; + //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + btnFinish.CanClick = false; + } } /// <summary> @@ -157,37 +129,42 @@ //鍥炶矾澶囨敞 string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote); - string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice); + string nameValue = HdlDeviceCommonLogic.Current.GetDeviceEpointName(nowSelectDevice); if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true) { nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint]; } this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + this.btnDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); - btnDeviceName.txtInput.FinishInputEvent += async () => + //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == false) { - string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice); - if (btnDeviceName.Text.Trim() == string.Empty) + btnDeviceName.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 = HdlDeviceCommonLogic.Current.GetDeviceEpointName(nowSelectDevice); + if (btnDeviceName.Text.Trim() == string.Empty) { - return; + //灏嗗悕瀛楄繕鍘� + btnDeviceName.Text = oldName; } - //鍥炶矾澶囨敞淇敼鎴愬姛! - string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess); - this.ShowMassage(ShowMsgType.Tip, msg); - } - }; + if (oldName != btnDeviceName.Text.Trim()) + { + //璁惧鍚嶇О淇敼 + var result = HdlDeviceCommonLogic.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim()); + if (result == false) + { + return; + } + //鍥炶矾澶囨敞淇敼鎴愬姛! + string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess); + this.ShowMassage(ShowMsgType.Tip, msg); + } + }; + } //鎵�灞炲尯鍩� var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); @@ -198,11 +175,13 @@ rowBeloneArea.SelectRoomEvent += (roomKeys) => { //鍙樻洿鎴块棿 - Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys); + HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys); }; //娣诲姞鍔熻兘绫诲瀷琛� this.AddFunctionTypeRow(); + //鍒濆鍖栨甯冨畬鎴� + tableContr.FinishInitControl(); } #endregion @@ -214,6 +193,12 @@ /// </summary> private void InitTopRightMenu() { + //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘 + if (HdlDeviceCommonLogic.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); @@ -233,12 +218,12 @@ int menuCount = 1; string deviceMenu = string.Empty; //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘 - bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice); - if (canTest == true) - { - menuCount = 2; - } - var frame = new TopRightMenuControl(menuCount); + bool canTest = HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(nowSelectDevice); + //if (canTest == true) + //{ + // menuCount = 2; + //} + var frame = new TopRightMenuControl(menuCount, 1); if (canTest == true) { //瀹氫綅 @@ -246,15 +231,15 @@ frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () => { //鍙戦�佸畾浣嶅姛鑳� - Common.LocalDevice.Current.SetFixedPositionCommand(nowSelectDevice); + HdlDeviceCommonLogic.Current.SetFixedPositionCommand(nowSelectDevice); }); } //鍒犻櫎 - 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 @@ -266,82 +251,14 @@ /// </summary> private void AddFunctionTypeRow() { - //濡傛灉鏄户鐢靛櫒鍜岃皟鍏夊櫒鐨勮瘽 - if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight - || nowSelectDevice.Type == DeviceType.ColorDimmableLight) + //鑷畾涔夊姛鑳界被鍨嬫帶浠� + var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2); + if (rowFunction.CanShowRow == true) { - //鍔熻兘绫诲瀷 - 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 (DfunctionType == DeviceFunctionType.A鐏厜) - { - strType = Language.StringByID(R.MyInternationalizationString.uLight); - nowSelectNo = 1; - } - else if (DfunctionType == DeviceFunctionType.A寮�鍏�) - { - strType = Language.StringByID(R.MyInternationalizationString.uSwitch); - nowSelectNo = 0; - } - else if (DfunctionType == DeviceFunctionType.A鎻掑骇) - { - strType = Language.StringByID(R.MyInternationalizationString.uSocket1); - nowSelectNo = 2; - } - - var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2); - btnFunction.UseClickStatu = false; - listview.AddChidren(btnFunction); - btnFunction.InitControl(); + listview.AddChidren(rowFunction); + rowFunction.InitControl(); //搴曠嚎 - btnFunction.AddBottomLine(); - - //濡傛灉鏄户鐢靛櫒鎵嶈兘澶熸洿鏀硅繖涓姛鑳界被鍨� - if (nowSelectDevice.Type == DeviceType.OnOffOutput) - { - btnFunction.UseClickStatu = true; - //鍙崇澶� - btnFunction.AddRightArrow(); - btnFunction.ButtonClickEvent += (sender, e) => - { - //鏄剧ず鍒楄〃 - var listText = new List<string>(); - listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏� - listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜 - listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇 - //鏍囬:閫夋嫨鍔熻兘绫诲瀷 - var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType); - - var form = new BottomItemSelectForm(); - form.AddForm(title, listText, nowSelectNo); - form.FinishSelectEvent += (selectNo) => - { - btnFunction.Text = listText[selectNo]; - nowSelectNo = selectNo; - //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨� - if (selectNo == 0) - { - dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A寮�鍏�; - } - else if (selectNo == 1) - { - dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鐏厜; - } - else - { - dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鎻掑骇; - } - }; - }; - } + rowFunction.AddBottomLine(); } } @@ -352,10 +269,10 @@ /// <summary> /// 鍒濆鍖栬澶囧洖璺浘鏍� /// </summary> - private void InitDeviceEpointIcon() + private void InitDeviceEpointIcon(VerticalFrameControl listBackControl) { bool hadDevice = false; - var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr); + var listDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceObj.DeviceAddr); var listSort = new List<CommonDevice>(); foreach (var device in listDevice) { @@ -389,12 +306,12 @@ var frameBorder = new FrameLayout(); frameBorder.Y = Application.GetRealHeight(150); frameBorder.Gravity = Gravity.CenterHorizontal; - frameBorder.Width = Application.GetMinRealAverage(426); - frameBorder.Height = Application.GetMinRealAverage(426); - bodyFrameLayout.AddChidren(frameBorder); + frameBorder.Width = this.GetPictrueRealSize(426); + frameBorder.Height = this.GetPictrueRealSize(426); + listBackControl.frameTable.AddChidren(frameBorder); var btnPic = new PicViewControl(frameBorder.Width, frameBorder.Height, false); - btnPic.UnSelectedImagePath = "Device/PanelTable.png"; + btnPic.UnSelectedImagePath = "DeviceItem/PanelTable.png"; frameBorder.AddChidren(btnPic); if (listSort.Count == 4) @@ -420,18 +337,18 @@ /// <param name="frame">鎵╁ぇ鐐瑰嚮鍖哄煙鐨勫鍣�</param> /// <param name="device">璁惧瀵硅薄</param> /// <returns></returns> - private void InitDeviceIcon(FrameLayoutControl frame, CommonDevice device) + private void InitDeviceIcon(FrameLayoutStatuControl frame, CommonDevice device) { //涓嶄娇鐢ㄧ偣鍑荤壒鏁� frame.UseClickStatu = false; - var btnIcon = new NormalViewControl(Application.GetMinRealAverage(52), Application.GetMinRealAverage(52), false); + var btnIcon = new NormalViewControl(this.GetPictrueRealSize(52), this.GetPictrueRealSize(52), false); btnIcon.Name = "btn" + device.DeviceEpoint; btnIcon.Gravity = Gravity.Center; - btnIcon.Radius = 6; + btnIcon.RadiusEx = 16; btnIcon.BorderWidth = 2; btnIcon.BorderColor = 0xff979797; - frame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly); + frame.AddChidren(btnIcon, ChidrenBindMode.BindEvent); //鐐瑰嚮浜嬩欢 frame.ButtonClickEvent += (sender, e) => { @@ -458,20 +375,20 @@ private void InitTwoButtonPanelIcon(FrameLayout frameBack, List<CommonDevice> listDevice) { //鎸夐敭1 - var frame1 = new FrameLayoutControl(); - frame1.Height = Application.GetMinRealAverage(110); - frame1.Width = Application.GetMinRealAverage(110); - frame1.Y = Application.GetMinRealAverage(63); + var frame1 = new FrameLayoutStatuControl(); + frame1.Height = this.GetPictrueRealSize(110); + frame1.Width = this.GetPictrueRealSize(110); + frame1.Y = this.GetPictrueRealSize(63); frame1.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 - var frame2 = new FrameLayoutControl(); - frame2.Height = Application.GetMinRealAverage(110); - frame2.Width = Application.GetMinRealAverage(110); - frame2.Y = Application.GetMinRealAverage(245); + var frame2 = new FrameLayoutStatuControl(); + frame2.Height = this.GetPictrueRealSize(110); + frame2.Width = this.GetPictrueRealSize(110); + frame2.Y = this.GetPictrueRealSize(245); frame2.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� @@ -490,31 +407,31 @@ private void InitThreeButtonPanelIcon(FrameLayout frameBack, List<CommonDevice> listDevice) { //鎸夐敭1 - var frame1 = new FrameLayoutControl(); - frame1.Height = Application.GetMinRealAverage(110); - frame1.Width = Application.GetMinRealAverage(110); - frame1.Y = Application.GetMinRealAverage(63); + var frame1 = new FrameLayoutStatuControl(); + frame1.Height = this.GetPictrueRealSize(110); + frame1.Width = this.GetPictrueRealSize(110); + frame1.Y = this.GetPictrueRealSize(63); frame1.Gravity = Gravity.CenterHorizontal; frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 - var frame2 = new FrameLayoutControl(); - frame2.Height = Application.GetMinRealAverage(110); - frame2.Width = Application.GetMinRealAverage(110); - frame2.X = Application.GetMinRealAverage(63); - frame2.Y = Application.GetMinRealAverage(245); + var frame2 = new FrameLayoutStatuControl(); + frame2.Height = this.GetPictrueRealSize(110); + frame2.Width = this.GetPictrueRealSize(110); + frame2.X = this.GetPictrueRealSize(63); + frame2.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame2, listDevice[1]); //鎸夐敭3 - var frame3 = new FrameLayoutControl(); - frame3.Height = Application.GetMinRealAverage(110); - frame3.Width = Application.GetMinRealAverage(110); - frame3.X = Application.GetMinRealAverage(245); - frame3.Y = Application.GetMinRealAverage(245); + var frame3 = new FrameLayoutStatuControl(); + frame3.Height = this.GetPictrueRealSize(110); + frame3.Width = this.GetPictrueRealSize(110); + frame3.X = this.GetPictrueRealSize(245); + frame3.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame3); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame3, listDevice[2]); @@ -532,41 +449,41 @@ private void InitFourButtonPanelIcon(FrameLayout frameBack, List<CommonDevice> listDevice) { //鎸夐敭1 - var frame1 = new FrameLayoutControl(); - frame1.Height = Application.GetMinRealAverage(110); - frame1.Width = Application.GetMinRealAverage(110); - frame1.X = Application.GetMinRealAverage(63); - frame1.Y = Application.GetMinRealAverage(63); + var frame1 = new FrameLayoutStatuControl(); + frame1.Height = this.GetPictrueRealSize(110); + frame1.Width = this.GetPictrueRealSize(110); + frame1.X = this.GetPictrueRealSize(63); + frame1.Y = this.GetPictrueRealSize(63); frameBack.AddChidren(frame1); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame1, listDevice[0]); //鎸夐敭2 - var frame2 = new FrameLayoutControl(); - frame2.Height = Application.GetMinRealAverage(110); - frame2.Width = Application.GetMinRealAverage(110); - frame2.X = Application.GetMinRealAverage(245); - frame2.Y = Application.GetMinRealAverage(63); + var frame2 = new FrameLayoutStatuControl(); + frame2.Height = this.GetPictrueRealSize(110); + frame2.Width = this.GetPictrueRealSize(110); + frame2.X = this.GetPictrueRealSize(245); + frame2.Y = this.GetPictrueRealSize(63); frameBack.AddChidren(frame2); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame2, listDevice[1]); //鎸夐敭3 - var frame3 = new FrameLayoutControl(); - frame3.Height = Application.GetMinRealAverage(110); - frame3.Width = Application.GetMinRealAverage(110); - frame3.X = Application.GetMinRealAverage(63); - frame3.Y = Application.GetMinRealAverage(245); + var frame3 = new FrameLayoutStatuControl(); + frame3.Height = this.GetPictrueRealSize(110); + frame3.Width = this.GetPictrueRealSize(110); + frame3.X = this.GetPictrueRealSize(63); + frame3.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame3); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame3, listDevice[2]); //鎸夐敭4 - var frame4 = new FrameLayoutControl(); - frame4.Height = Application.GetMinRealAverage(110); - frame4.Width = Application.GetMinRealAverage(110); - frame4.X = Application.GetMinRealAverage(245); - frame4.Y = Application.GetMinRealAverage(245); + var frame4 = new FrameLayoutStatuControl(); + frame4.Height = this.GetPictrueRealSize(110); + frame4.Width = this.GetPictrueRealSize(110); + frame4.X = this.GetPictrueRealSize(245); + frame4.Y = this.GetPictrueRealSize(245); frameBack.AddChidren(frame4); //鍒濆鍖栬澶囧浘鏍� this.InitDeviceIcon(frame4, listDevice[3]); @@ -604,7 +521,7 @@ nowContr.TextColor = UserCenterColor.Current.TextColor1; nowSelectControl = nowContr; - nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty))); + nowSelectDevice = HdlDeviceCommonLogic.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty))); //閲嶆柊鍒濆鍖栬彍鍗曡 this.InitMenuRow(); -- Gitblit v1.8.0