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;
namespace HDL_ON.UI
{
///
/// 视频门锁的控制界面
///
public class VideoDoorLockPage : FrameLayout
{
#region ■ 变量声明___________________________
///
/// 设备
///
private Function device;
///
/// 上一级界面的设备名字控件
///
private Button btnDeviceName;
///
/// 上一级界面的房间名字控件
///
private Button btnRoomName;
///
/// 头部布局
///
private TopView topView;
///
///收藏图标
///
private Button btnCollectIcon;
///
/// 门锁状态
///
private CustomFrameLayout doorLockFL;
///
/// 实时视频
///
private CustomFrameLayout rtvFL;
///
/// 一键开锁
///
private CustomFrameLayout openFL;
///
/// 临时密码
///
private CustomFrameLayout pswFL;
///
/// 历史记录
///
private CustomFrameLayout recordFL;
///
/// 表示来自那个界面
///
private Comerom Comerom;
#endregion
///
/// 构造函数
///
/// 设备
/// 上一级界面的设备名字控件
/// 上一级界面的房间名字控件
public VideoDoorLockPage(Function function, Button btnDeviceName, Button btnRoomName, Comerom comerom)
{
this.device = function;
this.btnDeviceName = btnDeviceName;
this.btnRoomName = btnRoomName;
this.Comerom = comerom;
}
public void Show()
{
//初始化UI
this.InitUI();
//初始化事件
this.Events();
}
///
/// 初始化界面
///
private void InitUI()
{
#region ---界面布局---
this.BackgroundColor = MusicColor.ViewColor;
this.topView = new TopView();
this.topView.setBtn.Visible = true;
this.topView.topNameBtn.Text = this.device.name;
this.AddChidren(topView.TopFLayoutView());
var middLayout = new FrameLayout
{
Y = topView.fLayout.Bottom,
Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
};
this.AddChidren(middLayout);
btnCollectIcon = new Button
{
X = Application.GetRealWidth(273),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "MusicIcon/collect.png",
SelectedImagePath = "MusicIcon/collectSelected.png",
IsSelected= this.device.collect,
Name = "collect"
};
middLayout.AddChidren(btnCollectIcon);
//门锁状态
doorLockFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
middLayout.AddChidren(doorLockFL);
doorLockFL.X = Application.GetRealWidth(40);
doorLockFL.Y = btnCollectIcon.Bottom + Application.GetRealHeight(20);
doorLockFL.AddImageView();
doorLockFL.AddTextButtonView();
doorLockFL.GetTextButton().TextID = StringId.shishishipin;
//实时视频
rtvFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
middLayout.AddChidren(rtvFL);
rtvFL.X = Application.GetRealWidth(20);
rtvFL.Y = Application.GetRealHeight(300);
rtvFL.AddImageView();
rtvFL.AddTextButtonView();
rtvFL.GetTextButton().TextID = StringId.shishishipin;
//一键开锁
openFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
middLayout.AddChidren(openFL);
openFL.X = rtvFL.Right + Application.GetRealWidth(20);
openFL.Y = Application.GetRealHeight(300);
openFL.AddImageView();
openFL.AddTextButtonView();
openFL.GetTextButton().TextID = StringId.yijiankaisuo;
//临时密码
pswFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
middLayout.AddChidren(pswFL);
pswFL.X = openFL.Right + Application.GetRealWidth(20);
pswFL.Y = Application.GetRealHeight(300);
pswFL.AddImageView();
pswFL.AddTextButtonView();
pswFL.GetTextButton().TextID = StringId.linshimima1;
//历史记录
recordFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
middLayout.AddChidren(recordFL);
recordFL.X = Application.GetRealWidth(20);
recordFL.Y = Application.GetRealHeight(300 + 100);
recordFL.AddImageView();
recordFL.AddTextButtonView();
recordFL.GetTextButton().TextID = StringId.lishijilu;
#endregion
}
///
/// 注册事件
///
private void Events()
{
//返回
this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
RemoveFromParent();
};
//设置
this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
{
//调用秀绕的界面
var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
{
if (this.btnDeviceName == null || this.btnRoomName == null)
{
return;
}
////刷新显示
this.btnDeviceName.Text = this.device.name;
this.btnRoomName.Text = this.device.GetRoomListName();
this.topView.topNameBtn.Text = this.device.name;
////从新计算宽度
//this.btnDeviceName.Text = btnDeviceName.Text;
//this.btnDeviceName.Width = this.btnDeviceName.GetTextWidth();
//this.btnRoomName.Text = btnRoomName.Text;
//this.btnRoomName.Width = this.btnRoomName.GetTextWidth();
////回调事件
//this.SettionFinishEvent?.Invoke();
});
MainPage.BasePageView.AddChidren(infoView);
infoView.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
//收藏
btnCollectIcon.MouseUpEventHandler += (sender, e) =>
{
btnCollectIcon.IsSelected = this.device.collect = !btnCollectIcon.IsSelected;
this.device.CollectFunction();
};
//实时视频
rtvFL.SetClickListener((fl, btnStateImage, btnStateText) => { });
//一键开锁
openFL.SetClickListener((fl, btnStateImage, btnStateText) => { });
//临时密码
pswFL.SetClickListener((fl, btnStateImage, btnStateText) => { });
//历史记录
recordFL.SetClickListener((fl, btnStateImage, btnStateText) => { });
}
}
///
/// 自己弄一个FrameLayout
///
class CustomFrameLayout : FrameLayout
{
public const int widthFrameLayout = 100;
public const int heightFrameLayout = 80;
public const int yFrameLayout = 300;
public const int xFrameLayout = 20;
public const int interval = 20;//行中的列间隔值
public CustomFrameLayout(int width, int height, int x = 0, int y = 0)
{
this.Width = Application.GetRealWidth(width);
this.Height = Application.GetRealHeight(height);
this.X = Application.GetRealWidth(x);
this.Y = Application.GetRealHeight(y);
}
Button btnStateImage = new Button
{
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "MusicIcon/collect.png",
SelectedImagePath = "MusicIcon/collectSelected.png",
Gravity = Gravity.CenterHorizontal,
Name = "btnStateImage",
};
Button btnStateText = new Button
{
Y = Application.GetRealHeight(20),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(20),
TextID = StringId.dangqianmenweiguan,
TextSize = TextSize.Text14,
TextColor = MusicColor.TextColor,
Gravity = Gravity.CenterHorizontal,
Name = "btnStateText"
};
public void AddImageView()
{
this.AddChidren(btnStateImage);
}
public void AddTextButtonView()
{
btnStateText.Y += btnStateImage.Bottom;
this.AddChidren(btnStateText);
}
public Button GetImageButton()
{
//if (!this.AddWithout(this.btnStateImage))
//{
// this.AddImageView();
//}
return this.btnStateImage;
}
public Button GetTextButton()
{
//if (!this.AddWithout(this.btnStateText))
//{
// this.AddTextButtonView();
//}
return this.btnStateText;
}
///
/// 事件监听方法
///
/// 回调(第一个是父类对象;第二个是图标对象;第三个是状态对象
/// 注意:在SetClickListener()前面调用AddImageView()才有效
/// 注意:在SetClickListener()前面调用AddImageView()才有效
public void SetClickListener(Action action)
{
EventHandler click = (sender, e) =>
{
if (action == null)
{
return;
}
action(this, btnStateImage, btnStateText);
};
this.MouseUpEventHandler += click;
btnStateImage.MouseUpEventHandler += click;
btnStateText.MouseUpEventHandler += click;
}
///
/// 在父布局查找子控件是否存在
///
/// 查找对象
/// 存在为true,否则为false
private bool AddWithout(View btn)
{
if (this.ChildrenCount <= 0 || btn == null)
{
return false;
}
for (int i = 0; i < this.ChildrenCount; i++)
{
View view = this.GetChildren(i);
if (view == null)
{
continue;
}
if (view is Button)
{
if (view.Name == btn.Name)
{
return true;
}
}
}
return false;
}
}
///
/// 表示来自那个界面
///
public enum Comerom
{
function,//功能
collect,//收藏
room,//房间
}
}