using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.Safety
{
///
/// 晾衣架类的安防报警设置界面
///
public class AlarmTargetStatuSelectHangerForm : DialogCommonForm
{
#region ■ 变量声明___________________________
///
/// 结束选择的事件(key:全部状态的翻译文本)
///
public Action> FinishSelectEvent = null;
///
/// 动作信息
///
private List listTaskinfo = new List();
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
///
///
public void ShowForm(CommonDevice device, List i_listTaskInfo)
{
if (i_listTaskInfo != null)
{
foreach (var data in i_listTaskInfo)
{
//以防万一,剔除不合法数据
if (data.TaskType == 1 || data.TaskType == 6)
{
listTaskinfo.Add(data);
}
}
}
//初始化中部信息
this.InitMiddleFrame(device);
}
///
/// 初始化中部信息
///
private void InitMiddleFrame(CommonDevice device)
{
//头部背景
var frameTopBack = new FrameLayout();
frameTopBack.Y = Application.GetRealHeight(1207);
frameTopBack.Height = Application.GetRealHeight(138);
frameTopBack.BackgroundColor = UserCenterColor.Current.White;
frameTopBack.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
bodyFrameLayout.AddChidren(frameTopBack);
//明细背景
var frameDetailBack = new FrameLayout();
frameDetailBack.Y = frameTopBack.Bottom;
frameDetailBack.Height = bodyFrameLayout.Height - frameTopBack.Bottom;
frameDetailBack.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(frameDetailBack);
//线
var btnLine = new NormalViewControl(bodyFrameLayout.Width, ControlCommonResourse.BottomLineHeight, false);
btnLine.Y = frameTopBack.Bottom;
btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
bodyFrameLayout.AddChidren(btnLine);
var listHeight = new List();
listHeight.Add(Language.StringByID(R.MyInternationalizationString.uNotAction));//无动作
//这里用的是1端点
listHeight.Add(Language.StringByID(R.MyInternationalizationString.uTheHighestPoint));//最高处
listHeight.Add(Language.StringByID(R.MyInternationalizationString.uTheLowestPoint));//最低处
var listDry = new List();
listDry.Add(Language.StringByID(R.MyInternationalizationString.uNotAction));//无动作
//这里用的是3端点
listDry.Add(Language.StringByID(R.MyInternationalizationString.uOpenAirdry));//打开风干
listDry.Add(Language.StringByID(R.MyInternationalizationString.uCloseAirdry));//关闭风干
//这里用的是4端点
listDry.Add(Language.StringByID(R.MyInternationalizationString.uOpenDry));//打开烘干
listDry.Add(Language.StringByID(R.MyInternationalizationString.uCloseDry));//关闭烘干
var pikView1 = new UIPickerView();
pikView1.Y = Application.GetRealHeight(100);
pikView1.Width = bodyFrameLayout.Width / 2;
pikView1.Height = Application.GetRealHeight(280);
pikView1.TextSize = 14;
pikView1.setNPicker(listHeight, listDry, null);
frameDetailBack.AddChidren(pikView1);
var listDisinfect = new List();
listDisinfect.Add(Language.StringByID(R.MyInternationalizationString.uNotAction));//无动作
//这里用的是5端点
listDisinfect.Add(Language.StringByID(R.MyInternationalizationString.uOpenDisinfect));//打开消毒
listDisinfect.Add(Language.StringByID(R.MyInternationalizationString.uCloseDisinfect));//关闭消毒
var listLight = new List();
//这里用的是2端点
listLight.Add(Language.StringByID(R.MyInternationalizationString.uNotAction));//无动作
listLight.Add(Language.StringByID(R.MyInternationalizationString.uOpenLighting));//打开照明
listLight.Add(Language.StringByID(R.MyInternationalizationString.uCloseLighting));//关闭照明
var pikView2 = new UIPickerView();
pikView2.Y = Application.GetRealHeight(100);
pikView2.X = pikView1.Right;
pikView2.TextSize = 14;
pikView2.Height = Application.GetRealHeight(280);
pikView2.Width = bodyFrameLayout.Width / 2;
pikView2.setNPicker(listDisinfect, listLight, null);
frameDetailBack.AddChidren(pikView2);
//设置初始选择
var listDefultSelect = new List { 0, 0, 0, 0 };
this.SetDefultSelect(pikView1, pikView2, ref listDefultSelect);
pikView1.OnSelectChangeEvent = (value1, value2, value3) =>
{
//更改索引
listDefultSelect[0] = value1;
listDefultSelect[1] = value2;
};
pikView2.OnSelectChangeEvent = (value1, value2, value3) =>
{
//更改索引
listDefultSelect[2] = value1;
listDefultSelect[3] = value2;
};
//头部信息
var btnTitle = new NormalViewControl(frameTopBack.Width, Application.GetRealHeight(65), false);
btnTitle.Y = Application.GetRealHeight(34);
btnTitle.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
btnTitle.TextColor = UserCenterColor.Current.TextColor4;
btnTitle.TextSize = 16;
btnTitle.TextAlignment = TextAlignment.Center;
frameTopBack.AddChidren(btnTitle);
//取消
var btnCancel = new NormalViewControl(Application.GetRealWidth(200), frameTopBack.Height, false);
btnCancel.X = Application.GetRealWidth(81);
btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1;
btnCancel.TextID = R.MyInternationalizationString.uCancel;
frameTopBack.AddChidren(btnCancel);
btnCancel.ButtonClickEvent += (sender, e) =>
{
this.CloseForm();
};
//完成
var btnFinish = new NormalViewControl(Application.GetRealWidth(200), frameTopBack.Height, false);
btnFinish.X = frameTopBack.Width - btnCancel.X - Application.GetRealWidth(200);
btnFinish.TextAlignment = TextAlignment.CenterRight;
btnFinish.TextColor = 0xfffb744a;
btnFinish.TextID = R.MyInternationalizationString.uFinish;
frameTopBack.AddChidren(btnFinish);
btnFinish.ButtonClickEvent += (sender, e) =>
{
//创建动作列表信息
var listData = this.CreatTaskListInfo(listDefultSelect);
//获取状态的显示文本
string statuText = HdlSafeguardLogic.Current.GetAdjustTargetStatuText(listData);
this.FinishSelectEvent?.Invoke(statuText, listData);
this.CloseForm();
};
}
#endregion
#region ■ 界面关闭___________________________
///
/// 界面关闭
///
public override void CloseFormBefore()
{
this.FinishSelectEvent = null;
base.CloseFormBefore();
}
#endregion
#region ■ 一般方法___________________________
///
/// 创建动作列表信息
///
///
///
private List CreatTaskListInfo(List i_listSelect)
{
var listData = new List();
//最高最低处
if (i_listSelect[0] != 0)
{
var data = new Safeguard.TaskListInfo();
data.Epoint = 1;
data.TaskType = 6;
data.Data1 = i_listSelect[0] == 1 ? 1 : 0;
listData.Add(data);
}
//风干 烘干
if (i_listSelect[1] != 0)
{
var data = new Safeguard.TaskListInfo();
data.TaskType = 1;
if (i_listSelect[1] == 1)
{
//风干开
data.Epoint = 3;
data.Data1 = 1;
}
else if (i_listSelect[1] == 2)
{
//风干关
data.Epoint = 3;
data.Data1 = 0;
}
else if (i_listSelect[1] == 3)
{
//烘干开
data.Epoint = 4;
data.Data1 = 1;
}
else if (i_listSelect[1] == 4)
{
//烘干关
data.Epoint = 4;
data.Data1 = 0;
}
listData.Add(data);
}
//消毒
if (i_listSelect[2] != 0)
{
var data = new Safeguard.TaskListInfo();
data.Epoint = 5;
data.TaskType = 1;
data.Data1 = i_listSelect[2] == 1 ? 1 : 0;
listData.Add(data);
}
//照明
if (i_listSelect[3] != 0)
{
var data = new Safeguard.TaskListInfo();
data.Epoint = 2;
data.TaskType = 1;
data.Data1 = i_listSelect[3] == 1 ? 1 : 0;
listData.Add(data);
}
return listData;
}
///
/// 设置初始选择
///
///
///
private void SetDefultSelect(UIPickerView pikView1, UIPickerView pikView2, ref List listDefult)
{
foreach (var data in this.listTaskinfo)
{
//最高最低处
if (data.Epoint == 1)
{
listDefult[0] = data.Data1 == 0 ? 1 : 2;
}
//风干
else if (data.Epoint == 3)
{
listDefult[1] = data.Data1 == 1 ? 1 : 2;
}
//烘干
else if (data.Epoint == 4)
{
listDefult[1] = data.Data1 == 1 ? 3 : 4;
}
//消毒
else if (data.Epoint == 5)
{
listDefult[2] = data.Data1 == 1 ? 1 : 2;
}
//照明
else if (data.Epoint == 2)
{
listDefult[3] = data.Data1 == 1 ? 1 : 2;
}
}
//设置默认选择
pikView1.setCurrentItems(listDefult[0], listDefult[1], -1);
pikView2.setCurrentItems(listDefult[2], listDefult[3], -1);
}
#endregion
}
}