using Shared;
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.UI.CSS;
using HDL_ON.Entity;
using HDL_ON.DriverLayer;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.Intelligence.Automation;
using System.Linq;
using HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
///
/// 时序器界面
///
public class SxqPage : FrameLayout
{
///
/// 头部布局
///
private TopView topView;
///
/// 删除设备后需要更新界面的回调
///
public Action action;
public VerticalScrolViewLayout vv;
///
/// 时序器列表
///
private List sequencerList;
///
/// 设备id
///
private string deviceId;
///
///
///
/// 时序器列表
/// 设备id
public SxqPage(List sequencerList, string deviceId)
{
this.sequencerList = sequencerList;
this.deviceId = deviceId;
}
public void Show()
{
//初始化UI
this.InitTop();
this.InitMiddle();
//初始化事件
this.EventListener();
//读取数据
}
///
/// 初始化头部界面
///
private void InitTop()
{
this.BackgroundColor = MusicColor.ViewColor;
this.topView = new TopView();
this.topView.setBtn.Visible = false;
this.topView.topNameBtn.TextID = StringId.shixuqi;
this.AddChidren(topView.TopFLayoutView());
}
///
/// 初始化中部界面
///
private void InitMiddle()
{
vv = new VerticalScrolViewLayout()
{
Y = topView.fLayout.Bottom,
Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
BackgroundColor = MusicColor.WhiteColor,
};
this.AddChidren(vv);
BaseFramLayout fLayout = new BaseFramLayout();
this.vv.AddChidren(fLayout);
int line = 0;
int xCount = 0;
int rowNumber = 4;
var list1 = this.sequencerList.FindAll((o) => o.type == 1);
for (int i = 1; i <= list1.Count; i++)
{
var sequencer = list1[i - 1];
VerticalBoutonFLayout buttonFram = new VerticalBoutonFLayout();
buttonFram.AddView(fLayout);
buttonFram.Tag = sequencer;
buttonFram.Y = Application.GetRealWidth(16) + Application.GetRealHeight((VerticalBoutonFLayout.heightFrameLayout + 8) * line);
buttonFram.X = Application.GetRealWidth(16) + Application.GetRealWidth((VerticalBoutonFLayout.widthFrameLayout + 8) * xCount);
buttonFram.btnName.Text = sequencer.name;
xCount++;
if (i % rowNumber == 0)
{
line++;
xCount = 0;
}
buttonFram.SetONClickListener((fl, btn) =>
{
if (buttonFram.Tag != null && buttonFram.Tag is SequencerEntity)
{
var sequ = (SequencerEntity)buttonFram.Tag;
SequencerControlExecute(sequ.seqId, "on");
}
});
buttonFram.SetOFFClickListener((fl, btn) =>
{
if (buttonFram.Tag != null && buttonFram.Tag is SequencerEntity)
{
var sequ = (SequencerEntity)buttonFram.Tag;
SequencerControlExecute(sequ.seqId, "off");
}
});
}
fLayout.AdjustRealHeight(8);
var list2 = this.sequencerList.FindAll((o) => o.type == 2);
for (int i = 0; i < list2.Count; i++)
{
Button btnName = new Button
{
Y = fLayout.Height,
X = Application.GetRealWidth(16) + Application.GetRealWidth((VerticalBoutonFLayout.widthFrameLayout + 8) * i),
Width = Application.GetRealWidth(80),
Height = Application.GetRealHeight(44),
TextSize = TextSize.Text14,
TextColor = MusicColor.TextColor,
TextAlignment = TextAlignment.Center,
Text = list2[i].name,
BackgroundColor = MusicColor.ViewColor,
SelectedBackgroundColor = MusicColor.MusicTxet14SelectedColor,
Radius = (uint)Application.GetRealHeight(12),
Padding=new Padding(0,5,0,5),
Tag = list2[i]
};
btnName.MouseDownEventHandler += (sen, e) =>
{
btnName.IsSelected = true;
if (btnName.Tag != null && btnName.Tag is SequencerEntity)
{
var sequ = (SequencerEntity)btnName.Tag;
SequencerControlExecute(sequ.seqId, "on");
}
};
btnName.MouseUpEventHandler += (sen, e) =>
{
btnName.IsSelected = false;
//弹起颜色
};
fLayout.AddChidren(btnName);
}
fLayout.AdjustRealHeight(16);
}
///
/// 注册事件
///
private void EventListener()
{
//返回
this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
this.RemoveFromParent();
};
}
///
/// 时序器指令发送
///
/// 时序器id
/// 时序器开关
private void SequencerControlExecute(string seqId, string onOff)
{
CommonMethod.Current.SunThread(() =>
{
SendMethod.Current.SequencerExecute(this.deviceId, seqId, onOff);
});
}
}
}