From 72e1b4e4626315ebd4b879a68c94e7738fd0473e Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 28 十月 2019 11:00:28 +0800
Subject: [PATCH] 2019-10-28-1
---
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs | 442 +++++++++++++++++++++++++++++++++++-------------------
1 files changed, 283 insertions(+), 159 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
index d2ecb43..6b3fb19 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using ZigBee.Device;
using System.Collections.Generic;
+using System.Threading.Tasks;
namespace Shared.Phone.UserCenter.GatewayManage
{
@@ -12,13 +13,9 @@
#region 鈻� 鍙橀噺澹版槑___________________________
/// <summary>
- /// 缃戝叧鍚嶇О鎺т欢
+ /// 鍒楄〃鎺т欢
/// </summary>
- private FrameCaptionInputControl rowGateway = null;
- /// <summary>
- /// 璁惧鏄庣粏鍒楄〃鎺т欢鐨勬甯�
- /// </summary>
- private DeviceInformationListControl listDeviceControl = null;
+ private VerticalListControl listview = null;
/// <summary>
/// 褰撳墠閫夋嫨鐨勭綉鍏�
/// </summary>
@@ -37,19 +34,10 @@
this.zbGateway = i_zbGateway;
//璁剧疆鏍囬淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorGatewayInformation));
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion));
- //缃戝叧瀹氫綅
- var btnIcon = new MostRightIconControl(69, 69);
- btnIcon.UnSelectedImagePath = "Item/Test.png";
- topFrameLayout.AddChidren(btnIcon);
- btnIcon.InitControl();
-
- btnIcon.ButtonClickEvent += (sender, e) =>
- {
- //娴嬭瘯
- HdlGatewayLogic.Current.SetTestCommand(i_zbGateway);
- };
+ //鍒濆鍖栧彸涓婅鑿滃崟
+ this.InitTopRightMenu();
//鍒濆鍖栦腑閮ㄦ帶浠�
this.InitMiddleFrame();
@@ -63,162 +51,233 @@
//娓呯┖bodyFrame
this.ClearBodyFrame();
- //鍥剧墖涓婁笅鐨勯棿璺�(涓婁笅闂磋窛涓�鑷�)
- int picSpcae = Application.GetRealHeight(100);
- //鍥剧墖
- var btnImage = new PicViewControl(838, 530, true);
- btnImage.Y = picSpcae;
- btnImage.Gravity = Gravity.CenterHorizontal;
- HdlGatewayLogic.Current.SetRealGatewayPictrue(btnImage, zbGateway);
- bodyFrameLayout.AddChidren(btnImage);
+ //鍒濆鍖栨甯�
+ var tableContr = new InformationEditorControl();
+ this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368);
- //瀹屾垚鎸夐挳
- var btnFinish = new BottomClickButton();
- btnFinish.TextID = R.MyInternationalizationString.uFinish;
- bodyFrameLayout.AddChidren(btnFinish);
- btnFinish.MouseUpEventHandler += (sender, e) =>
+ //鍥剧墖
+ var btnPic = new DeviceInfoIconControl();
+ btnPic.Y = Application.GetRealHeight(92);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ bodyFrameLayout.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 += () =>
{
- //瀹屾垚鎸夐挳鎸変笅
- this.FinishButtonClick();
+ string oldName = HdlGatewayLogic.Current.GetGatewayName(zbGateway);
+ if (btnNote.Text == string.Empty)
+ {
+ btnNote.Text = oldName;
+ }
+ if (oldName != btnNote.Text)
+ {
+ //淇敼鍚嶅瓧
+ this.SetGatewayName(btnNote.Text, false);
+ }
};
- //鐧借壊搴曢儴鑳屾櫙
- var frameBottomWhite = new FrameLayout();
- frameBottomWhite.Y = btnFinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace;
- frameBottomWhite.Height = bodyFrameLayout.Height - btnFinish.Y + ControlCommonResourse.BottomButtonAndListViewSpace;
- frameBottomWhite.BackgroundColor = UserCenterColor.Current.White;
- bodyFrameLayout.AddChidren(frameBottomWhite);
- //灏嗗畬鎴愭寜閽疆椤�
- btnFinish.BringToFront();
+ //璁惧绫诲瀷
+ caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
+ var btnType = new FrameCaptionViewControl(caption, nameValue, listview.rowSpace / 2);
+ btnType.UseClickStatu = false;
+ listview.AddChidren(btnType);
+ btnType.InitControl();
+ HdlGatewayLogic.Current.SetGatewayImageText(btnType.txtView, this.zbGateway);
+ //鍒掔嚎
+ btnType.AddBottomLine();
- //鑷畾涔夌殑璁惧鍒楄〃瀹瑰櫒
- this.listDeviceControl = new DeviceInformationListControl();
- //鍒楄〃鎺т欢鏈�澶х殑楂樺害(瀹屾垚鎸夐挳鐨刌杞� - 璁剧疆鐨勯棿闅� - 鍥剧墖Y杞� - 鍥剧墖鐨勪笁鍒嗕箣涓�)
- int listViewMaxHeight = btnFinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace - btnImage.Y - btnImage.Height / 3;
- //鏄庣粏Frame鐨勬渶灏忛珮搴�(搴曢儴frame鐨刌杞� - 鍥剧墖搴曢儴 - 鍥剧墖涓庡姬搴﹀渾鐨勯棿璺� - 寮у害鍦嗛珮搴�)
- int minDetailHeight = frameBottomWhite.Y - btnImage.Bottom - picSpcae - listDeviceControl.halfRoundHeigth;
- //鍒濆鍖栨帶浠�
- listDeviceControl.InitControl(bodyFrameLayout, frameBottomWhite.Height, listViewMaxHeight, minDetailHeight, 4);
+ //鏁版嵁涓婁紶涓庝笅杞�
+ 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 btnTitle = new DetailTitleControl(Application.GetRealWidth(800), listDeviceControl.titleHeight, false);
- btnTitle.TextID = R.MyInternationalizationString.uDeviceEditor;
- listDeviceControl.AddChidren(btnTitle);
-
- //娣诲姞鍏ㄩ儴鑿滃崟琛�
- this.AddAllMenuRow();
- }
-
- #endregion
-
- #region 鈻� 娣诲姞鍏ㄩ儴鑿滃崟琛宊____________________
-
- /// <summary>
- /// 娣诲姞鍏ㄩ儴鑿滃崟琛�
- /// </summary>
- private void AddAllMenuRow()
- {
- //缃戝叧鍚嶇О
- string caption = Language.StringByID(R.MyInternationalizationString.uGatewayName);
- string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway);
- this.rowGateway = new FrameCaptionInputControl(caption, nameValue);
- listDeviceControl.AddChidren(rowGateway);
- rowGateway.InitControl();
- rowGateway.AddBottomLine();
-
- //缃戝叧IP
- caption = Language.StringByID(R.MyInternationalizationString.uGatewayIP);
- nameValue = HdlGatewayLogic.Current.GetGatewayBaseInfoAttribute(zbGateway, "IpAddress").ToString();
- var btnIp = new FrameCaptionViewControl(caption, nameValue);
- listDeviceControl.AddChidren(btnIp);
- btnIp.InitControl();
- btnIp.txtView.TextColor = UserCenterColor.Current.TextGrayColor;
- btnIp.AddBottomLine();
- //涓荤綉鍏虫垨鑰呭瓙缃戝叧鏍囪瘑
- var btnFlage = new RowMostRightTextView();
- btnFlage.TextColor = UserCenterColor.Current.TextGrayColor;
- btnIp.AddChidren(btnFlage, ChidrenBindMode.NotBind);
- int result = HdlGatewayLogic.Current.IsMainGateway(this.zbGateway);
- //涓荤綉鍏�
- if (result == 1) { btnFlage.TextID = R.MyInternationalizationString.uMainGateway; }
- //瀛愮綉鍏�
- else if (result == 0) { btnFlage.TextID = R.MyInternationalizationString.uChidrenGateway; }
-
- //缃戝叧绫诲瀷
- caption = Language.StringByID(R.MyInternationalizationString.uGatewayType);
- nameValue = HdlGatewayLogic.Current.GetGatewayImageText(this.zbGateway);
- var btnObject = new FrameCaptionViewControl(caption, nameValue);
- listDeviceControl.AddChidren(btnObject);
- btnObject.InitControl();
- btnObject.txtView.TextColor = UserCenterColor.Current.TextGrayColor;
- btnObject.AddBottomLine();
-
- //鍥轰欢淇℃伅
- this.AddHardWareInfoRow();
- }
-
- #endregion
-
- #region 鈻� 娣诲姞鍥轰欢淇℃伅琛宊____________________
-
- /// <summary>
- /// 娣诲姞鍥轰欢淇℃伅琛�
- /// </summary>
- private void AddHardWareInfoRow()
- {
- var rowInfo = new RowLayoutControl();
- listDeviceControl.AddChidren(rowInfo);
-
- //鍥轰欢淇℃伅
- //var btnInfo = new RowCenterViewControl(false, 14);
- //btnInfo.TextID = R.MyInternationalizationString.uFirmwareInformation;
- //rowInfo.AddChidren(btnInfo);
-
+ //閫氱敤淇℃伅
+ var btnGeneral = new FrameRowControl(listview.rowSpace / 2);
+ listview.AddChidren(btnGeneral);
+ btnGeneral.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uGeneralInformation), 600);
//鍚戝彸鍥炬爣
- //rowInfo.AddRightArrow();
+ btnGeneral.AddRightArrow();
+ //搴曠嚎
+ btnGeneral.AddBottomLine();
+ btnGeneral.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new GatewayGeneralInformationForm();
+ form.AddForm(zbGateway);
+ };
- //鏂扮増鏈彁绀烘帶浠�
- var btnNewVersion = new RowNewVersionTipView();
+ //鍥轰欢鍗囩骇
+ 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;
- rowInfo.AddChidren(btnNewVersion);
+ btnNewVersion.X = Application.GetRealWidth(242);
+ btnNewVersion.Y = Application.GetRealHeight(23);
+ rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly);
+ rowUpDate.ButtonClickEvent += (sender, e) =>
+ {
+ btnNewVersion.Visible = false;
+ };
- //rowInfo.MouseUpEvent += (sender, e) =>
- //{
- // btnNewVersion.Visible = false;
- // var form = new GatewayFirmwareInfoForm();
- // form.AddForm(zbGateway);
- //};
+ //鍒濆鍖栨甯冨畬鎴�
+ tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+ tableContr = null;
- //妫�娴嬫柊鐗堟湰
- this.CheckNewVersion(btnNewVersion);
+ //淇濆瓨
+ 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, btnType);
+ });
}
+
+ #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);
+ //瀹氫綅
+ 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(RowNewVersionTipView btnNewVersion)
+ /// <param name="btnType">缃戝叧绫诲瀷鎺т欢</param>
+ private async void CheckNewVersion(PicViewControl btnNewVersion, FrameCaptionViewControl btnType)
{
- //鎵撳紑杩涘害鏉�
- this.ShowProgressBar();
-
//鑾峰彇缃戝叧鐗堟湰淇℃伅
var result = await HdlGatewayLogic.Current.GetGatewayAllNewVersion(this.zbGateway);
if (result == null)
{
- //鍏抽棴杩涘害鏉�
- this.CloseProgressBar(ShowReLoadMode.YES);
return;
}
- //鍏抽棴杩涘害鏉�
- this.CloseProgressBar();
-
Application.RunOnMainThread(() =>
{
- if (this.rowGateway != null)
+ if (this.Parent != null)
{
- //璁剧疆缃戝叧鍚嶇О
- this.rowGateway.Text = HdlGatewayLogic.Current.GetGatewayName(zbGateway);
+ HdlGatewayLogic.Current.SetGatewayImageText(btnType.txtView, this.zbGateway);
if (result[0] != null || result[1] != null || result[2] != null)
{
//鎻愮ず鏈夋柊鐗堟湰
@@ -235,25 +294,25 @@
/// <summary>
/// 瀹屾垚鎸夐挳鎸変笅
/// </summary>
- private void FinishButtonClick()
+ /// <param name="gatewayName">缃戝叧鍚�</param>
+ private void FinishButtonClick(string gatewayName)
{
- if (string.IsNullOrEmpty(this.rowGateway.Text) == true)
+ if (string.IsNullOrEmpty(gatewayName) == true)
{
//璇疯緭鍏ョ綉鍏冲悕绉�
- this.rowGateway.Text = string.Empty;
string msg = Language.StringByID(R.MyInternationalizationString.uGatewayNameMastInput);
this.ShowMassage(ShowMsgType.Error, msg);
return;
}
string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway);
- if (nameValue == this.rowGateway.Text)
+ if (nameValue == gatewayName)
{
//鍚屽悕涓嶉渶瑕佸鐞�
this.CloseForm();
return;
}
//淇敼鍚嶅瓧
- this.SetGatewayName(this.rowGateway.Text);
+ this.SetGatewayName(gatewayName, true);
}
#endregion
@@ -264,26 +323,91 @@
/// 璁剧疆缃戝叧鍚嶅瓧
/// </summary>
/// <param name="gatewayName">缃戝叧鍚嶇О</param>
- private async void SetGatewayName(string gatewayName)
+ private async void SetGatewayName(string gatewayName, bool closeForm)
{
- //鎵撳紑杩涘害鏉�
- this.ShowProgressBar();
//淇敼缃戝叧鍚�
var result = await HdlGatewayLogic.Current.ReName(zbGateway, gatewayName);
- //鍏抽棴杩涘害鏉�
- this.CloseProgressBar();
-
//缃戝叧淇敼澶辫触
if (result == false)
{
return;
}
- Application.RunOnMainThread(() =>
+ 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("WiredGatewayListForm");
+ 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 async void DeleteGateway(string strWayId)
+ {
+ //鍒犻櫎浜戠缃戝叧
+ bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId);
+ if (result == false)
+ {
+ return;
+ }
+
+ if (strWayId == GatewayResourse.AppOldSelectGatewayId)
+ {
+ HdlGatewayLogic.Current.SaveGatewayIdToLocation(string.Empty);
+ }
+ //鍏抽棴鑷韩
+ this.CloseForm();
+ }
+
#endregion
}
}
--
Gitblit v1.8.0