From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs | 441 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 441 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs new file mode 100755 index 0000000..25ec696 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs @@ -0,0 +1,441 @@ +锘縰sing System; +using ZigBee.Device; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Shared.Phone.UserCenter.GatewayManage +{ + /// <summary> + /// 缂栬緫缃戝叧淇℃伅鐨勭敾闈I鈽� + /// </summary> + public class GatewayInfoEditorForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鍒楄〃鎺т欢 + /// </summary> + private FrameListControl listview = null; + /// <summary> + /// 褰撳墠閫夋嫨鐨勭綉鍏� + /// </summary> + private ZbGateway zbGateway = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="i_zbGateway">褰撳墠閫夋嫨鐨勭綉鍏�</param> + public void ShowForm(ZbGateway i_zbGateway) + { + this.zbGateway = i_zbGateway; + + //璁剧疆鏍囬淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion)); + + //鍒濆鍖栧彸涓婅鑿滃崟 + this.InitTopRightMenu(); + + //鍒濆鍖栦腑閮ㄦ帶浠� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄦ帶浠� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + + //鍒濆鍖栨甯� + var tableContr = new InformationEditorControl(); + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1368); + + //鍥剧墖 + var btnPic = new DeviceInfoIconControl(); + btnPic.Y = Application.GetRealHeight(92); + btnPic.Gravity = Gravity.CenterHorizontal; + listBackControl.frameTable.AddChidren(btnPic); + btnPic.InitControl(this.zbGateway); + + //璁惧澶囨敞 + string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); + string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway); + var btnNote = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + listview.AddChidren(btnNote); + btnNote.InitControl(); + //鍒掔嚎 + btnNote.AddBottomLine(); + btnNote.txtInput.FinishInputEvent += () => + { + string oldName = HdlGatewayLogic.Current.GetGatewayName(zbGateway); + if (btnNote.Text == string.Empty) + { + btnNote.Text = oldName; + } + if (oldName != btnNote.Text) + { + //淇敼鍚嶅瓧 + this.SetGatewayName(btnNote.Text, false); + } + }; + + //璁惧绫诲瀷 (鍥哄畾鏅鸿兘缃戝叧) + caption = Language.StringByID(R.MyInternationalizationString.uDeviceType); + var btnType = new FrameCaptionViewControl(caption, Language.StringByID(60004), listview.rowSpace / 2); + btnType.UseClickStatu = false; + listview.AddChidren(btnType); + btnType.InitControl(); + //鍒掔嚎 + btnType.AddBottomLine(); + + //瀹夎浣嶇疆 + var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); + listview.AddChidren(rowBeloneArea); + rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.zbGateway); + //搴曠嚎 + rowBeloneArea.AddBottomLine(); + rowBeloneArea.SelectRoomEvent += (roomKeys) => + { + //鍙樻洿缃戝叧鎴块棿 + HdlGatewayLogic.Current.ChangedGatewayRoom(this.zbGateway, roomKeys); + }; + + //鏁版嵁涓婁紶涓庝笅杞� + var rowData = new RowLayoutControl(listview.rowSpace / 2); + listview.AddChidren(rowData); + rowData.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uDataUploadAndDownLoad), 700); + //鍙冲浘鏍� + rowData.frameTable.AddRightArrow(); + //搴曠嚎 + rowData.frameTable.AddBottomLine(); + rowData.frameTable.ButtonClickEvent += (sender, e) => + { + var form = new GatewayUploadAndDownLoadForm(); + form.AddForm(HdlGatewayLogic.Current.GetGatewayId(this.zbGateway)); + }; + + //閫氱敤淇℃伅 + var btnGeneral = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(btnGeneral); + btnGeneral.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uGeneralInformation), 600); + //鍚戝彸鍥炬爣 + btnGeneral.AddRightArrow(); + //搴曠嚎 + btnGeneral.AddBottomLine(); + btnGeneral.ButtonClickEvent += (sender, e) => + { + var form = new GatewayGeneralInformationForm(); + form.AddForm(zbGateway); + }; + + //鍥轰欢鍗囩骇 + var rowUpDate = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowUpDate); + rowUpDate.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate), 600); + //鍚戝彸鍥炬爣 + rowUpDate.AddRightArrow(); + //搴曠嚎 + rowUpDate.AddBottomLine(); + //鎻愮ず鏈夋柊鐗堟湰 + var btnNewVersion = new PicViewControl(78, 55); + btnNewVersion.UnSelectedImagePath = "Item/NewVersion.png"; + btnNewVersion.Visible = false; + btnNewVersion.X = Application.GetRealWidth(242); + btnNewVersion.Y = Application.GetRealHeight(23); + rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly); + rowUpDate.ButtonClickEvent += (sender, e) => + { + btnNewVersion.Visible = false; + var form = new GatewayUpdate.GatewayFirmwareUpdateForm(); + form.AddForm(zbGateway); + }; + + //鍒濆鍖栨甯冨畬鎴� + tableContr.FinishInitControl(); + tableContr = null; + + //淇濆瓨 + var btnFinish = new BottomClickButton(); + btnFinish.TextID = R.MyInternationalizationString.uSave; + bodyFrameLayout.AddChidren(btnFinish); + btnFinish.ButtonClickEvent += (sender, e) => + { + string oldName = HdlGatewayLogic.Current.GetGatewayName(zbGateway); + if (btnNote.Text == string.Empty) + { + btnNote.Text = oldName; + } + if (oldName != btnNote.Text) + { + //淇敼鍚嶅瓧 + this.SetGatewayName(btnNote.Text, false); + } + else + { + //鍏抽棴鑷韩 + this.CloseForm(); + } + }; + + HdlThreadLogic.Current.RunThread(() => + { + //妫�娴嬫柊鐗堟湰 + this.CheckNewVersion(btnNewVersion); + }); + } + + #endregion + + #region 鈻� 鍙充笂瑙掕彍鍗昣________________________ + + /// <summary> + /// 鍒濆鍖栧彸涓婅鑿滃崟 + /// </summary> + private void InitTopRightMenu() + { + var btnIcon = new MostRightIconControl(69, 69); + btnIcon.UnSelectedImagePath = "Item/More.png"; + topFrameLayout.AddChidren(btnIcon); + btnIcon.InitControl(); + btnIcon.ButtonClickEvent += ((sender, e) => + { + //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈� + this.ShowTopRightMenu(); + }); + } + + /// <summary> + /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈� + /// </summary> + private void ShowTopRightMenu() + { + bool flage = UserCenterResourse.DicActionForm.ContainsKey("NewGateWayMenuSelectForm"); + var frame = new TopRightMenuControl(flage == true ? 1 : 3, 1); + //瀹氫綅 + string MenuName = Language.StringByID(R.MyInternationalizationString.uFixedPosition); + frame.AddRowMenu(MenuName, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () => + { + //鍙戦�佸畾浣嶅姛鑳� + HdlGatewayLogic.Current.SetFixedPositionCommand(zbGateway); + }); + if (flage == true) + { + //鎼滅储缃戝叧鐨勬椂鍊�,涓嶈兘鍒犻櫎,涓嶇粰浠栧垏鎹� + return; + } + + //鍒囨崲 + MenuName = Language.StringByID(R.MyInternationalizationString.uSwitch1); + string strWayId = HdlGatewayLogic.Current.GetGatewayId(zbGateway); + if (strWayId == GatewayResourse.AppOldSelectGatewayId) + { + MenuName = Language.StringByID(R.MyInternationalizationString.uRefresh); + } + frame.AddRowMenu(MenuName, "Item/GwSwitchIcon.png", "Item/GwSwitchIconSelected.png", () => + { + string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway); + //鏄惁鍒囨崲鍒皗0}缃戝叧? + string msg = string.Format(Language.StringByID(R.MyInternationalizationString.uConfirmWantToSwitchTheGateway), "[" + nameValue + "]"); + if (strWayId == GatewayResourse.AppOldSelectGatewayId) + { + //鏄惁閲嶆柊鍒锋柊{0}缃戝叧? + msg = string.Format(Language.StringByID(R.MyInternationalizationString.uConfirmWantToRefreshTheGateway), "[" + nameValue + "]"); + } + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + HdlThreadLogic.Current.RunThread(() => + { + //鎵ц鍒囨崲缃戝叧鎿嶄綔 + this.DoSwitchGateway(); + }); + }); + }); + //鍒犻櫎 + MenuName = Language.StringByID(R.MyInternationalizationString.uDelete); + frame.AddRowMenu(MenuName, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () => + { + //濡傜Щ闄ょ綉鍏筹紝璇ョ綉鍏崇粦瀹氱殑璁惧鍒楄〃{0}灏嗘竻绌猴紝纭缁х画鎵ц璇ユ搷浣滐紵 + string msg = Language.StringByID(R.MyInternationalizationString.uUnBindedMsg); + if (msg.Contains("{0}") == true) + { + msg = string.Format(msg, "\r\n"); + } + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + this.DeleteGateway(strWayId); + }); + }); + } + #endregion + + #region 鈻� 妫�娴嬫柊鐗堟湰_________________________ + + /// <summary> + /// 妫�娴嬫柊鐗堟湰 + /// </summary> + /// <param name="btnNewVersion">鎻愮ず鏈夋柊鐗堟湰鐨勬帶浠�</param> + private async void CheckNewVersion(PicViewControl btnNewVersion) + { + //鑾峰彇缃戝叧鐗堟湰淇℃伅 + var result = await HdlGatewayLogic.Current.GetGatewayAllNewVersion(this.zbGateway); + if (result == null) + { + return; + } + Application.RunOnMainThread(() => + { + if (this.Parent != null) + { + if (result[0] != null || result[1] != null || result[2] != null) + { + //鎻愮ず鏈夋柊鐗堟湰 + btnNewVersion.Visible = true; + } + } + }); + } + + #endregion + + #region 鈻� 瀹屾垚鎸夐挳鎸変笅_______________________ + + /// <summary> + /// 瀹屾垚鎸夐挳鎸変笅 + /// </summary> + /// <param name="gatewayName">缃戝叧鍚�</param> + private void FinishButtonClick(string gatewayName) + { + if (string.IsNullOrEmpty(gatewayName) == true) + { + //璇疯緭鍏ョ綉鍏冲悕绉� + string msg = Language.StringByID(R.MyInternationalizationString.uGatewayNameMastInput); + this.ShowMassage(ShowMsgType.Error, msg); + return; + } + string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway); + if (nameValue == gatewayName) + { + //鍚屽悕涓嶉渶瑕佸鐞� + this.CloseForm(); + return; + } + //淇敼鍚嶅瓧 + this.SetGatewayName(gatewayName, true); + } + + #endregion + + #region 鈻� 淇敼鍚嶅瓧___________________________ + + /// <summary> + /// 璁剧疆缃戝叧鍚嶅瓧 + /// </summary> + /// <param name="gatewayName">缃戝叧鍚嶇О</param> + private async void SetGatewayName(string gatewayName, bool closeForm) + { + //淇敼缃戝叧鍚� + var result = await HdlGatewayLogic.Current.ReName(zbGateway, gatewayName); + //缃戝叧淇敼澶辫触 + if (result == false) + { + return; + } + if (closeForm == true) + { + //鍏抽棴鐣岄潰 + this.CloseForm(); + } + } + #endregion + + #region 鈻� 缃戝叧鍒囨崲___________________________ + + /// <summary> + /// 鎵ц鍒囨崲缃戝叧鎿嶄綔 + /// </summary> + /// <param name="gatewayId"></param> + /// <param name="online"></param> + private async void DoSwitchGateway() + { + string gatewayId = HdlGatewayLogic.Current.GetGatewayId(zbGateway); + var result = await HdlGatewayLogic.Current.DoSwitchGateway(gatewayId); + if (result == false) + { + return; + } + + HdlThreadLogic.Current.RunMain(() => + { + //鍏抽棴鑷韩 + this.CloseForm(); + + //鍏抽棴鎸囧畾鐣岄潰(缃戝叧鎼滅储) + this.CloseFormByFormName("GatewaySearchListForm"); + this.CloseFormByFormName("NewGateWayMenuSelectForm"); + + //鍏抽棴鎸囧畾鐣岄潰(缃戝叧缂栬緫) + this.CloseFormByFormName("GatewayListForm"); + + if (UserCenterResourse.DicActionForm.ContainsKey("DeviceListMainForm") == false) + { + //鍒锋柊涓荤敾闈� + var form = new Device.DeviceListMainForm(); + form.AddForm(); + } + else + { + //鍒锋柊涓荤敾闈�(涓嶉噸鏂拌幏鍙栬澶囩姸鎬�) + this.LoadFormMethodByName("DeviceListMainForm", "InitMiddleFrame", false); + } + }); + } + + #endregion + + #region 鈻� 瑙g粦缃戝叧___________________________ + + /// <summary> + /// 瑙g粦缃戝叧 + /// </summary> + /// <param name="strWayId"></param> + /// <param name="row"></param> + private void DeleteGateway(string strWayId) + { + HdlThreadLogic.Current.RunThread(async () => + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鍒犻櫎浜戠缃戝叧 + bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + if (result == false) + { + return; + } + + if (strWayId == GatewayResourse.AppOldSelectGatewayId) + { + HdlGatewayLogic.Current.SaveGatewayIdToLocation(string.Empty); + } + HdlThreadLogic.Current.RunMain(() => + { + //鍏抽棴鑷韩 + this.CloseForm(); + }); + }); + } + + #endregion + } +} -- Gitblit v1.8.0