using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.HideOption
{
///
/// 隐匿功能的网关文件列表界面
///
public class HideOptionGatewayListFileForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 网关对象
///
private ZbGateway zbGateway = null;
private BottomClickButton btnDelete = null;
private List listDeleteFile = new List();
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
///
public void ShowForm(ZbGateway i_gateway)
{
HdlFileLogic.Current.CreateDirectory(System.IO.Path.Combine(HdlFileNameResourse.LocalMemoryDirectory, "MyTempDir"), true);
this.zbGateway = i_gateway;
//设置标题信息
base.SetTitleText("网关文件列表");
//初始化中部控件
this.InitMiddleFrame();
var btnButton = new NormalViewControl(300, 69, true);
btnButton.Gravity = Gravity.CenterVertical;
btnButton.X = bodyFrameLayout.Width - Application.GetRealWidth(300) - HdlControlResourse.XXLeft;
btnButton.TextColor = UserCenterColor.Current.TopLayoutTitleText;
btnButton.TextAlignment = TextAlignment.CenterRight;
btnButton.TextSize = 17;
btnButton.Text = "一键删除";
topFrameLayout.AddChidren(btnButton);
btnButton.ButtonClickEvent += (sender, e) =>
{
btnDelete.Visible = true;
};
}
///
/// 初始化中部控件
///
private void InitMiddleFrame()
{
//清空bodyFrame
this.ClearBodyFrame();
var listview = new VerticalListControl(29);
listview.Height = bodyFrameLayout.Height;
listview.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(listview);
this.ShowProgressBar();
HdlThreadLogic.Current.RunThread(async () =>
{
var result = await zbGateway.FileTransferLsDirAsync();
this.CloseProgressBar();
if (result == null || result.fileTransferLsDiResponseData == null)
{
this.ShowMassage(ShowMsgType.Tip, "获取列表失败,网关没有回复");
return;
}
if (result.fileTransferLsDiResponseData.Result != 0)
{
this.ShowMassage(ShowMsgType.Tip, "查看失败,好像网关不允许查看这个目录");
return;
}
var listFile = new List();
foreach (var data in result.fileTransferLsDiResponseData.Dir)
{
string[] strArry = data.File.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
listFile.Add(strArry[strArry.Length - 1]);
}
listFile.Sort();
HdlThreadLogic.Current.RunMain(() =>
{
foreach (var fileName in listFile)
{
var rowContr1 = new RowLayoutControl(listview.rowSpace / 2);
listview.AddChidren(rowContr1);
rowContr1.frameTable.AddLeftCaption(fileName, 700);
rowContr1.frameTable.AddBottomLine();
var btnSelect = new IconViewControl(58);
btnSelect.UnSelectedImagePath = "Item/ItemSelected.png";
btnSelect.Gravity = Gravity.Center;
rowContr1.frameTable.AddChidren(btnSelect);
btnSelect.Visible = false;
var btnDelete = rowContr1.AddDeleteControl();
btnDelete.ButtonClickEvent += (sender, e) =>
{
this.ShowMassage(ShowMsgType.Confirm, "是否删除网关的这个文件(需谨慎)", async () =>
{
var result9 = await zbGateway.DelFileOrDirAsync("/etc/hdlDat/" + fileName);
if (result9 == null || result9.delFileOrDirResponseData == null)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,网关没有回复");
return;
}
if (result9.delFileOrDirResponseData.Result == 1)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,网关说这个东西不存在");
return;
}
if (result9.delFileOrDirResponseData.Result == 2)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,网关说这个东西不允许删除");
return;
}
if (result9.delFileOrDirResponseData.Result != 0)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,无法识别的状态码(" + result9.delFileOrDirResponseData.Result + ")");
return;
}
rowContr1.RemoveFromParent();
this.ShowMassage(ShowMsgType.Tip, "删除文件成功");
});
};
}
listview.AdjustRealHeightByBottomButton(Application.GetRealHeight(23));
this.btnDelete = new BottomClickButton();
btnDelete.Text = "删除";
bodyFrameLayout.AddChidren(btnDelete);
btnDelete.Visible = false;
btnDelete.ButtonClickEvent += (sender, e) =>
{
this.ShowMassage(ShowMsgType.Confirm, "确定是否删除这些文件?", async () =>
{
foreach (var listfile in this.listDeleteFile)
{
var result9 = await zbGateway.DelFileOrDirAsync("/etc/hdlDat/" + listfile);
if (result9 == null || result9.delFileOrDirResponseData == null)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,网关没有回复");
this.InitMiddleFrame();
this.listDeleteFile = new List();
return;
}
if (result9.delFileOrDirResponseData.Result == 1)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,网关说这个东西不存在");
this.InitMiddleFrame();
this.listDeleteFile = new List();
return;
}
if (result9.delFileOrDirResponseData.Result == 2)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,网关说这个东西不允许删除");
this.InitMiddleFrame();
this.listDeleteFile = new List();
return;
}
if (result9.delFileOrDirResponseData.Result != 0)
{
this.ShowMassage(ShowMsgType.Tip, "删除文件失败,无法识别的状态码(" + result9.delFileOrDirResponseData.Result + ")");
this.InitMiddleFrame();
this.listDeleteFile = new List();
return;
}
}
this.InitMiddleFrame();
this.listDeleteFile = new List();
});
};
});
});
}
#endregion
#region ■ 界面关闭___________________________
///
/// 界面关闭
///
public override void CloseFormBefore()
{
HdlFileLogic.Current.DeleteDirectory(System.IO.Path.Combine(HdlFileNameResourse.LocalMemoryDirectory, "MyTempDir"));
base.CloseFormBefore();
}
#endregion
}
}