using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.GatewayManage
|
{
|
/// <summary>
|
/// 替换网关时,选择网关备份的列表界面
|
/// </summary>
|
public class GatewayReplaceBackUpListForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalListControl listView = null;
|
/// <summary>
|
/// 真实物理网关(新网关)
|
/// </summary>
|
private ZbGateway realGateway = null;
|
/// <summary>
|
/// 被替换的目标网关
|
/// </summary>
|
private string targetGwId = string.Empty;
|
/// <summary>
|
/// 当前选择的备份
|
/// </summary>
|
private BackupListNameInfo nowSelectInfo = null;
|
/// <summary>
|
/// 当前选择的控件
|
/// </summary>
|
private MostRightIconControl nowbtnSelect = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_zbGateway">真实物理网关(新网关)</param>
|
/// <param name="i_zbGateway">被替换的目标网关</param>
|
public void ShowForm(ZbGateway i_realGateway, string i_targetGwId)
|
{
|
this.realGateway = i_realGateway;
|
this.targetGwId = i_targetGwId;
|
|
//设置标题信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSelectUseBackup));
|
|
//初始化中部控件
|
this.InitMiddleFrame();
|
}
|
|
/// <summary>
|
/// 初始化中部控件
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
var frameBack = new FrameLayout();
|
frameBack.Height = Application.GetRealHeight(11);
|
frameBack.BackgroundColor = UserCenterColor.Current.White;
|
bodyFrameLayout.AddChidren(frameBack);
|
|
listView = new VerticalListControl(12);
|
listView.Y = frameBack.Bottom;
|
listView.Height = bodyFrameLayout.Height - frameBack.Height;
|
listView.BackgroundColor = UserCenterColor.Current.White;
|
bodyFrameLayout.AddChidren(listView);
|
|
HdlThreadLogic.Current.RunThread(() =>
|
{
|
//从云端获取数据
|
this.SetBackupInfoToForm();
|
});
|
}
|
|
#endregion
|
|
#region ■ 从云端获取数据_____________________
|
|
/// <summary>
|
/// 从云端获取数据
|
/// </summary>
|
private void SetBackupInfoToForm()
|
{
|
//进度条
|
this.ShowProgressBar();
|
|
//获取自动备份的数据
|
var pageAuto = HdlBackupLogic.Current.GetBackupListNameFromDB(3, this.targetGwId);
|
if (pageAuto == null)
|
{
|
//关闭进度条
|
this.CloseProgressBar(ShowReLoadMode.YES);
|
return;
|
}
|
|
//从云端获取数据
|
var pageData = HdlBackupLogic.Current.GetBackupListNameFromDB(2, this.targetGwId);
|
if (pageData == null)
|
{
|
//关闭进度条
|
this.CloseProgressBar(ShowReLoadMode.YES);
|
return;
|
}
|
//关闭进度条
|
this.CloseProgressBar();
|
|
if (pageAuto.Count == 0 && pageData.Count == 0)
|
{
|
//目标网关检测不到备份数据,无法执行替换操作
|
HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uTaegetGatewayNotHadBackupAndDoNotReplace));
|
return;
|
}
|
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
listView.RemoveAll();
|
listView.RecoverHeight();
|
|
if (pageAuto.Count > 0)
|
{
|
pageAuto[0].IsAutoBack = 1;
|
//添加自动备份行
|
this.AddRowlayout(pageAuto[0], pageData.Count > 0, true);
|
}
|
|
for (int i = 0; i < pageData.Count; i++)
|
{
|
//添加备份行
|
this.AddRowlayout(pageData[i], i != pageData.Count - 1, false);
|
}
|
|
if (pageData.Count > 0 || pageAuto.Count > 0)
|
{
|
//替换
|
var btnDownload = new BottomClickButton();
|
btnDownload.TextID = R.MyInternationalizationString.uReplace;
|
bodyFrameLayout.AddChidren(btnDownload);
|
btnDownload.ButtonClickEvent += (sender, e) =>
|
{
|
if (this.nowSelectInfo == null)
|
{
|
return;
|
}
|
//是否使用备份:{0}?
|
string msg = Language.StringByID(R.MyInternationalizationString.uSelectUseBackupConfirmMsg).Replace("{0}", this.nowbtnSelect.MainKey);
|
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
|
{
|
//执行网关替换操作
|
this.DoReplaceGateway();
|
}, null, 3);
|
};
|
//调整真实高度
|
listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23));
|
}
|
});
|
}
|
|
#endregion
|
|
#region ■ 添加备份行_________________________
|
|
/// <summary>
|
/// 添加备份行
|
/// </summary>
|
/// <param name="fileInfo"></param>
|
/// <param name="addLine"></param>
|
/// <param name="isAuto"></param>
|
private void AddRowlayout(BackupListNameInfo fileInfo, bool addLine, bool isAuto)
|
{
|
var rowLayout = new RowLayoutControl(listView.rowSpace / 2);
|
listView.AddChidren(rowLayout);
|
|
//备份名字
|
var txtText = rowLayout.frameTable.AddTopView(fileInfo.BackupName, 700);
|
if (isAuto == true)
|
{
|
txtText.TextID = R.MyInternationalizationString.uAutoBackup;
|
}
|
|
//时间 2019-11-11T11:31:01
|
var btnTime = rowLayout.frameTable.AddBottomView("", 600);
|
if (fileInfo.CreatedOnUtc.Length >= 19)
|
{
|
btnTime.Text = UserCenterLogic.ConvertUtcTimeToLocalTime(fileInfo.CreatedOnUtc).ToString("yyyy.MM.dd HH:mm:ss");
|
}
|
//底线
|
if (addLine == true)
|
{
|
rowLayout.frameTable.AddBottomLine();
|
}
|
|
//选择
|
var btnSelect = rowLayout.frameTable.AddMostRightEmptyIcon(58, 58);
|
btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png";
|
btnSelect.SelectedImagePath = "Item/ItemSelected.png";
|
rowLayout.frameTable.ButtonClickEvent += (sender, e) =>
|
{
|
btnSelect.IsSelected = !btnSelect.IsSelected;
|
if (btnSelect.IsSelected == true)
|
{
|
this.nowSelectInfo = fileInfo;
|
if (this.nowbtnSelect != null)
|
{
|
nowbtnSelect.IsSelected = false;
|
}
|
nowbtnSelect = btnSelect;
|
nowbtnSelect.MainKey = txtText.Text;
|
}
|
else
|
{
|
this.nowSelectInfo = null;
|
this.nowbtnSelect = null;
|
}
|
};
|
}
|
|
#endregion
|
|
#region ■ 执行网关替换操作___________________
|
|
/// <summary>
|
/// 执行网关替换操作
|
/// </summary>
|
private void DoReplaceGateway()
|
{
|
//执行更换网关
|
HdlGatewayLogic.Current.DoReplaceGateway(this.realGateway, this.targetGwId, this.nowSelectInfo, (div) =>
|
{
|
if (div == 1)
|
{
|
if (GatewayResourse.AppOldSelectGatewayId == this.targetGwId)
|
{
|
//如果被替换的网关是设备列表界面正在显示的网关的话,需要置空
|
GatewayResourse.AppOldSelectGatewayId = string.Empty;
|
}
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
//显示成功的界面
|
this.ShowSuccessMsg();
|
});
|
}
|
});
|
}
|
|
/// <summary>
|
/// 显示成功的界面
|
/// </summary>
|
private void ShowSuccessMsg()
|
{
|
var frameBack = new FrameLayout();
|
frameBack.BackgroundColor = 0x80000000;
|
this.AddChidren(frameBack);
|
|
var frameMsg = new FrameLayout();
|
frameMsg.BackgroundColor = UserCenterColor.Current.White;
|
frameMsg.Width = Application.GetRealWidth(622);
|
frameMsg.Height = Application.GetRealHeight(317);
|
frameMsg.Radius = (uint)Application.GetRealHeight(17);
|
frameMsg.Gravity = Gravity.CenterHorizontal;
|
frameMsg.Y = Application.GetRealHeight(792);
|
frameBack.AddChidren(frameMsg);
|
|
//提示
|
var btnTitle = new NormalViewControl(492, 65, true);
|
btnTitle.Y = Application.GetRealHeight(68);
|
btnTitle.Gravity = Gravity.CenterHorizontal;
|
btnTitle.TextID = R.MyInternationalizationString.NormalTip;
|
btnTitle.TextAlignment = TextAlignment.Center;
|
btnTitle.TextColor = 0xFF333443;
|
frameMsg.AddChidren(btnTitle);
|
|
//替换网关成功
|
var btnSuccess = new NormalViewControl(frameMsg.Width, Application.GetRealHeight(60), false);
|
btnSuccess.Y = Application.GetRealHeight(166);
|
btnSuccess.TextAlignment = TextAlignment.Center;
|
btnSuccess.TextColor = UserCenterColor.Current.TextGrayColor1;
|
btnSuccess.TextID = R.MyInternationalizationString.uReplacegatewaySuccess;
|
frameMsg.AddChidren(btnSuccess);
|
|
HdlThreadLogic.Current.RunThread(() =>
|
{
|
System.Threading.Thread.Sleep(2000);
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
this.CloseForm();
|
//把网关替换一览界面也关了
|
this.CloseFormByFormName("GatewayReplaceListForm");
|
});
|
});
|
}
|
|
#endregion
|
}
|
}
|