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