using Shared;
using HDL_ON.UI.CSS;
using HDL_ON.Stan;
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.Entity;
namespace HDL_ON.UI
{
///
/// 门锁常开自动化列表界面
///
public class DoorLockAlwaysOnListPage : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 上部Frame的容器控件
///
private FrameLayout frameTopBack = null;
///
/// 下部Frame的容器控件
///
private FrameLayout frameBottomBack = null;
///
/// 自动化列表控件
///
private VerticalListControl listView = null;
///
/// 门锁信息
///
private DoorLockAlwayOnInfo doorLockInfo = new DoorLockAlwayOnInfo();
///
/// 门锁对象
///
private Function doorDevice = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 门锁对象
public void ShowForm(Function i_doorDevice)
{
this.doorDevice = i_doorDevice;
//常开
base.SetTitleText(Language.StringByID(StringId.AlwaysOn));
//初始化中部信息
this.InitMiddleFrame();
}
///
/// 初始化中部信息
///
private void InitMiddleFrame()
{
//清空bodyFrame
this.ClearBodyFrame();
//初始化上部控件
this.InitTopTopBackControl();
//初始化下部控件
this.InitBottomBackControl();
}
#endregion
#region ■ 初始化上部控件_____________________
///
/// 初始化上部控件
///
private void InitTopTopBackControl()
{
if (this.frameTopBack == null || this.frameTopBack.Parent == null)
{
this.frameTopBack = new FrameLayout();
frameTopBack.BackgroundColor = CSS_Color.MainBackgroundColor;
bodyFrameLayout.AddChidren(frameTopBack);
}
else
{
this.frameTopBack.RemoveAll();
}
//如果不处于常开模式
if (this.doorLockInfo.IsAlwayOpen == false)
{
//锁的图片
var btnPic = new PicViewControl(102, 102);
btnPic.Y = Application.GetRealHeight(28);
btnPic.Gravity = Gravity.CenterHorizontal;
btnPic.UnSelectedImagePath = "FunctionIcon/DoorLock/UnLockPictrue2.png";
this.frameTopBack.AddChidren(btnPic);
btnPic.ButtonClickEvent += (sender, e) =>
{
this.doorLockInfo.IsAlwayOpen = true;
//重新初始化上部控件
this.InitTopTopBackControl();
};
//时效性常开设置
var rowSettion = new FrameRowControl();
rowSettion.Y = btnPic.Bottom + Application.GetRealHeight(32);
this.frameTopBack.AddChidren(rowSettion);
rowSettion.AddLeftCaption(Language.StringByID(StringId.TimelyAlwaysOnSetting), 350);
rowSettion.AddRightArrow();
rowSettion.AddBottomLine();
rowSettion.ButtonClickEvent += (sender, e) =>
{
//设置常开模式后{0}您的门锁将处于打开状态{0}是否继续开启
HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.OpenAlwayOnConfirmMsg), () =>
{
var form = new DoorLockExpireTimeSettionPage();
form.ShowForm();
form.FinishEvent += (hour) =>
{
//已开启
//HdlMessageLogic.Current.ShowMassage(ShowMsgType.ConfirmSuccess, Language.StringByID(StringId.AlreadyOpened), () =>
//{
//});
//常开模式关闭设置失效,请重试
HdlMessageLogic.Current.ShowMassage(ShowMsgType.ConfirmFail, Language.StringByID(StringId.AlwayOnFailTimeSettionFailMsg), () =>
{
});
};
}, Language.StringByID(StringId.ConfirmOpen));
};
//变更容器高度
this.frameTopBack.Height = rowSettion.Bottom + Application.GetRealHeight(12);
}
//如果处于常开模式
else
{
//锁的图片
var btnPic = new PicViewControl(102, 102);
btnPic.Y = Application.GetRealHeight(28);
btnPic.Gravity = Gravity.CenterHorizontal;
btnPic.UnSelectedImagePath = "FunctionIcon/DoorLock/UnLockPictrue1.png";
this.frameTopBack.AddChidren(btnPic);
//关闭按钮
var btnClose = new BottomClickButton(220);
btnClose.Y = btnPic.Bottom + Application.GetRealHeight(28);
btnClose.TextID = StringId.Close;
this.frameTopBack.AddChidren(btnClose);
btnClose.ButtonClickEvent += (sender, e) =>
{
this.doorLockInfo.IsAlwayOpen = false;
//重新初始化上部控件
this.InitTopTopBackControl();
};
//常开模式将于{12.31 14:59}关闭
var listMsg = Language.StringByID(StringId.AlwaysOnWillCloseOnTime).Split(new string[] { "{0}" }, StringSplitOptions.None);
int widthCount = 0;
//常开模式将于
var btnMsg1 = new NormalViewControl(100, 20, true);
btnMsg1.Y = btnClose.Bottom + Application.GetRealHeight(32);
btnMsg1.TextColor = CSS_Color.FirstLevelTitleColor;
btnMsg1.Text = listMsg[0];
btnMsg1.Width = btnMsg1.GetRealWidthByText();
this.frameTopBack.AddChidren(btnMsg1);
widthCount += btnMsg1.Width;
//时间(12.31 14:59)
var startTime = this.doorLockInfo.StartTime.AddHours(this.doorLockInfo.AlwayOpenHour);
var btnMsgTime = new NormalViewControl(100, 20, true);
btnMsgTime.Y = btnMsg1.Y;
btnMsgTime.TextColor = CSS_Color.AuxiliaryColor2;
btnMsgTime.Text = HdlCommonLogic.Current.ConvertDayText(startTime.Month, startTime.Day, startTime.Year) + " " + startTime.ToString("HH:mm");
btnMsgTime.Width = btnMsgTime.GetRealWidthByText();
this.frameTopBack.AddChidren(btnMsgTime);
widthCount += btnMsgTime.Width;
NormalViewControl btnMsg2 = null;
if (listMsg.Length > 1)
{
//关闭
btnMsg2 = new NormalViewControl(100, 20, true);
btnMsg2.Y = btnMsg1.Y;
btnMsg2.TextColor = CSS_Color.FirstLevelTitleColor;
btnMsg2.Text = listMsg[1];
btnMsg2.Width = btnMsg2.GetRealWidthByText();
this.frameTopBack.AddChidren(btnMsg2);
widthCount += btnMsg2.Width;
}
//让这三个东西居中
int defultXX = (this.frameTopBack.Width - widthCount) / 2;
btnMsg1.X = defultXX;
btnMsgTime.X = btnMsg1.Right;
if (btnMsg2 != null)
{
btnMsg2.X = btnMsgTime.Right;
}
//变更容器高度
this.frameTopBack.Height = btnMsgTime.Bottom + Application.GetRealHeight(16);
}
//刷新下部Frame控件的坐标和高度
this.RefreshBottomFrameHeightAndLocation();
}
#endregion
#region ■ 初始化下部控件_____________________
///
/// 初始化下部控件
///
private void InitBottomBackControl()
{
if (this.frameBottomBack == null || this.frameBottomBack.Parent == null)
{
this.frameBottomBack = new FrameLayout();
frameBottomBack.BackgroundColor = CSS_Color.MainBackgroundColor;
bodyFrameLayout.AddChidren(frameBottomBack);
//常开自动化
var rowSettion = new FrameRowControl();
rowSettion.Y = Application.GetRealHeight(6);
frameBottomBack.AddChidren(rowSettion);
var btnCation = rowSettion.AddLeftCaption(Language.StringByID(StringId.AutomationAlwaysOn), 300);
btnCation.TextSize = CSS_FontSize.SubheadingFontSize;
btnCation.TextColor = CSS_Color.FirstLevelTitleColor;
btnCation.IsBold = true;
//添加图标
var btnAddIcon = rowSettion.AddMostRightEmptyIcon(38, 38);
btnAddIcon.UnSelectedImagePath = "Public/AddIcon.png";
btnAddIcon.ButtonClickEvent += (sender, e) =>
{
var form = new DoorLockAlwaysOnManagerPage();
form.AddForm(new object[] { null });
};
//列表控件
this.listView = new VerticalListControl();
frameBottomBack.AddChidren(listView);
}
else
{
this.frameBottomBack.RemoveAll();
this.listView.RemoveAll();
}
//刷新下部Frame控件的坐标和高度
this.RefreshBottomFrameHeightAndLocation();
//测试
for (int i = 0; i < 2; i++)
{
//添加自动化条件控件
this.AddAutomationControl(new AlwayOnAutomationInfo());
}
}
#endregion
#region ■ 添加自动化条件控件_________________
///
/// 添加自动化条件控件
///
/// 自动化信息
private void AddAutomationControl(AlwayOnAutomationInfo i_info)
{
//容器控件
var rowBack = new RowLayout();
rowBack.LineColor = CSS_Color.viewTranslucence;
rowBack.SubViewWidth = Application.GetRealWidth(80);
rowBack.Height = Application.GetRealHeight(100);
this.listView.AddChidren(rowBack);
//消息
var btnMsg = new NormalViewControl(rowBack.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(20), false);
btnMsg.X = HdlControlResourse.XXLeft;
btnMsg.Y = Application.GetRealHeight(10);
btnMsg.TextColor = CSS_Color.FirstLevelTitleColor;
if (i_info.IsOpenAlwayOn == true)
{
//9:00 - 打开常开模式
btnMsg.Text = i_info.Hour + ":" + i_info.Minute.ToString().PadLeft(2, '0') + " - " + Language.StringByID(StringId.OpenAlwaysOnModel);
}
else
{
//9:00 - 关闭常开模式
btnMsg.Text = i_info.Hour + ":" + i_info.Minute.ToString().PadLeft(2, '0') + " - " + Language.StringByID(StringId.CloseAlwaysOnModel);
}
rowBack.AddChidren(btnMsg);
//周期
var btnTimeLoop = new NormalViewControl(rowBack.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(18), false);
btnTimeLoop.X = btnMsg.X;
btnTimeLoop.Y = btnMsg.Bottom + Application.GetRealHeight(4);
btnTimeLoop.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
btnTimeLoop.TextColor = CSS_Color.PromptingColor1;
btnTimeLoop.Text = "周一 - 周五";
rowBack.AddChidren(btnTimeLoop);
//图标行控件
var rowIcon = new FrameRowControl();
rowIcon.Gravity = Gravity.BottomCenter;
rowBack.AddChidren(rowIcon);
//先画底线
rowIcon.AddBottomLine();
//固定的三个图标
var btnIcon1 = rowIcon.AddLeftIcon(28, "Phone/LogicIcon/selectTheTime.png");
var btnIcon2 = rowIcon.AddLeftIcon(20, "Phone/LogicIcon/link.png");
btnIcon2.X = btnIcon1.Right + Application.GetRealWidth(8);
var btnIcon3 = rowIcon.AddLeftIcon(28, "FunctionIcon/DoorLock/NormallyOpenIcon3.png");
btnIcon3.X = btnIcon2.Right + Application.GetRealWidth(8);
//开关
var btnSwitch = rowIcon.AddMostRightSwitchIcon();
btnSwitch.ButtonClickEvent += (sender, e) =>
{
btnSwitch.IsSelected = !btnSwitch.IsSelected;
};
//编辑
var btnEditor = new NormalViewControl(rowBack.SubViewWidth, rowBack.Height, false);
btnEditor.TextAlignment = TextAlignment.Center;
btnEditor.TextSize = CSS_FontSize.SubheadingFontSize;
btnEditor.TextColor = CSS_Color.MainBackgroundColor;
btnEditor.BackgroundColor = CSS_Color.AuxiliaryColor1;
btnEditor.TextID = StringId.Edit;
rowBack.AddRightView(btnEditor);
btnEditor.ButtonClickEvent += (sender, e) =>
{
//还原
rowBack.HideRightMenu();
var form = new DoorLockAlwaysOnManagerPage();
form.AddForm(new object[] { i_info });
};
//删除
var btnDelete = new NormalViewControl(rowBack.SubViewWidth, rowBack.Height, false);
btnDelete.TextAlignment = TextAlignment.Center;
btnDelete.TextSize = CSS_FontSize.SubheadingFontSize;
btnDelete.TextColor = CSS_Color.MainBackgroundColor;
btnDelete.BackgroundColor = CSS_Color.AuxiliaryColor2;
btnDelete.TextID = StringId.Del;
rowBack.AddRightView(btnDelete);
btnDelete.ButtonClickEvent += (sender, e) =>
{
//是否要删除自动化?
HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.delAutomation), () =>
{
rowBack.RemoveFromParent();
});
};
}
#endregion
#region ■ 一般方法___________________________
///
/// 刷新下部Frame控件的坐标和高度
///
private void RefreshBottomFrameHeightAndLocation()
{
if (this.frameBottomBack != null)
{
this.frameBottomBack.Y = this.frameTopBack.Bottom + Application.GetRealHeight(8);
this.frameBottomBack.Height = bodyFrameLayout.Height - this.frameBottomBack.Y;
}
if (this.listView != null)
{
//这个Y轴固定
this.listView.Y = Application.GetRealHeight(58);
this.listView.Height = this.frameBottomBack.Height - this.listView.Y;
}
}
#endregion
#region ■ 界面关闭___________________________
///
/// 界面关闭
///
public override void CloseFormBefore()
{
base.CloseFormBefore();
}
#endregion
}
}