using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public class ArmDeploymentSettingPage : FrameLayout
{
FrameLayout bodyView;
SecurityAlarm securityAlarm;
public ArmDeploymentSettingPage(SecurityAlarm alarm )
{
bodyView = this;
securityAlarm = alarm;
}
public void LoadPage()
{
new TopViewDiv(bodyView, Language.StringByID(StringId.Setting)).LoadTopView();
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
VerticalScrolViewLayout contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(667 - 64),
};
bodyView.AddChidren(contentView);
#region 布防信息
var deploymentTitleRow = new FrameLayout()
{
Height = Application.GetRealHeight(44),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(deploymentTitleRow);
var btnDeploymentTitle = new Button()
{
X = Application.GetRealWidth(16),
TextColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.DeploymentInformation,
IsBold = true,
};
deploymentTitleRow.AddChidren(btnDeploymentTitle);
deploymentTitleRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
#region 布防名称
var deploymentNameRow = new FrameLayout()
{
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(deploymentNameRow);
var btnDeploymentNameTitle = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(72),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
TextID = StringId.Name,
};
deploymentNameRow.AddChidren(btnDeploymentNameTitle);
btnDeploymentNameTitle.Text += ":";
var btnDeploymentName = new Button()
{
X = Application.GetRealWidth(88),
Width = Application.GetRealWidth(230),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.TextualColor,
TextSize = CSS_FontSize.TextFontSize,
Text = securityAlarm.name
};
deploymentNameRow.AddChidren(btnDeploymentName);
deploymentNameRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(49), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
LoadEvent_EditSecurityAlarmName(btnDeploymentName);
#endregion
#region 触发延时
//var delayedRow = new FrameLayout()
//{
// Height = Application.GetRealHeight(50),
// BackgroundColor = CSS_Color.MainBackgroundColor,
//};
//contentView.AddChidren(delayedRow);
//var btnDelayedTitle = new Button()
//{
// X = Application.GetRealWidth(16),
// Width = Application.GetRealWidth(72),
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.FirstLevelTitleColor,
// TextSize = CSS_FontSize.TextFontSize,
// TextID = StringId.Name,
//};
//delayedRow.AddChidren(btnDelayedTitle);
//var btnDelayedText = new Button()
//{
// X = Application.GetRealWidth(88),
// Width = Application.GetRealWidth(230),
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.TextualColor,
// TextSize = CSS_FontSize.TextFontSize,
// Text = securityAlarm.name
//};
//delayedRow.AddChidren(btnDelayedText);
//var btnDelayedRight = new Button()
//{
// X = Application.GetRealWidth(343),
// Gravity = Gravity.CenterVertical,
// Width = Application.GetMinRealAverage(16),
// Height = Application.GetMinRealAverage(16),
// UnSelectedImagePath = "Public/RightIcon.png",
//};
//delayedRow.AddChidren(btnDelayedRight);
////delayedRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(49), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
//LoadEvent_EditSecurityAlarmName(btnDelayedTitle);
#endregion
#endregion
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
#region 布防功能\报警状态
var deploymentFunctionRow = new FrameLayout()
{
Height = Application.GetRealHeight(44),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(deploymentFunctionRow);
var btnFunctionTitle = new Button()
{
X = Application.GetRealWidth(16),
TextColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.DefenseFunctionArmState,
IsBold = true,
};
deploymentFunctionRow.AddChidren(btnFunctionTitle);
var btnAddTarget = new Button()
{
X = Application.GetRealWidth(337),
Y = Application.GetRealHeight(6),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "FunctionIcon/ArmCenter/AddTargetIcon.png",
};
deploymentFunctionRow.AddChidren(btnAddTarget);
deploymentFunctionRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
var inputTargetView = new VerticalScrolViewLayout()
{
ScrollEnabled = false,
};
contentView.AddChidren(inputTargetView);
foreach (var target in securityAlarm.input)
{
inputTargetView.AddChidren(new InputRow(target.GetFunction().name, target.GetFunction().GetRoomListName()));
}
inputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.input.Count);
#endregion
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
#region 告警目标
var outputRow = new FrameLayout()
{
Height = Application.GetRealHeight(44),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(outputRow);
var btnOutputRowTitle = new Button()
{
X = Application.GetRealWidth(16),
TextColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.AlarmTargetAfterTriggering,
IsBold = true,
};
outputRow.AddChidren(btnOutputRowTitle);
var btnAddOutTarget = new Button()
{
X = Application.GetRealWidth(337),
Y = Application.GetRealHeight(6),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "FunctionIcon/ArmCenter/AddTargetIcon.png",
};
outputRow.AddChidren(btnAddOutTarget);
outputRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
var outputTargetView = new VerticalScrolViewLayout()
{
ScrollEnabled = false,
};
contentView.AddChidren(outputTargetView);
foreach(var outTarget in securityAlarm.output)
{
inputTargetView.AddChidren(new OutputRow(outTarget.GetFunction().name, outTarget.GetFunction().GetRoomListName(),""));
}
outputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.output.Count);
#endregion
}
///
/// 修改安防名称
///
void LoadEvent_EditSecurityAlarmName(Button btnDeploymentName)
{
EventHandler eventHandler = (sender, e) =>
{
Action callBack = (str) =>
{
var waitPage = new Loading();
bodyView.AddChidren(waitPage);
waitPage.Start(Language.StringByID(StringId.PleaseWait));
new System.Threading.Thread(() =>
{
try
{
securityAlarm.name = str;
var responsePack = new HttpServerRequest().EditSecurity(new List() { securityAlarm});
if (responsePack.Code == StateCode.SUCCESS)
{
Application.RunOnMainThread(() =>
{
btnDeploymentName.Text = str;
});
}
else
{
IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
}
}
catch (Exception ex)
{
MainPage.Log($"update user name error : {ex.Message}");
}
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
};
new PublicAssmebly().LoadDialog_EditParater(StringId.Name, securityAlarm.name, callBack, StringId.NameCannotBeEmpty, 0, new List());
};
btnDeploymentName.MouseUpEventHandler = eventHandler;
}
}
///
/// 输入条件行控件
///
public class InputRow : RowLayout
{
Button btnTitle;
Button btnSubTitle;
public InputRow(string title,string subtitle)
{
this.LineColor = 0x00000000;
this.Height = Application.GetRealHeight(65);
this.BackgroundColor = CSS_Color.MainBackgroundColor;
btnTitle = new Button()
{
X = Application.GetRealWidth(16),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(320),
Text = title,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
};
this.AddChidren(btnTitle);
btnSubTitle = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(24),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(320),
Text = subtitle,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
this.AddChidren(btnSubTitle);
}
public void SetClickEvent(EventHandler eventHandler)
{
this.MouseUpEventHandler = eventHandler;
btnTitle.MouseUpEventHandler = eventHandler;
btnSubTitle.MouseUpEventHandler = eventHandler;
}
}
///
/// 输出条件控件
///
public class OutputRow : RowLayout
{
Button btnTitle;
Button btnSubTitle;
Button btnState;
Button btnRightIcon;
public OutputRow(string title, string subtitle,string state)
{
this.LineColor = 0x00000000;
this.Height = Application.GetRealHeight(65);
this.BackgroundColor = CSS_Color.MainBackgroundColor;
btnTitle = new Button()
{
X = Application.GetRealWidth(16),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(320),
Text = title,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
};
this.AddChidren(btnTitle);
btnSubTitle = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(24),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(320),
Text = subtitle,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
this.AddChidren(btnSubTitle);
btnState = new Button()
{
Width = Application.GetRealWidth(323),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
Text = state
};
this.AddChidren(btnState);
btnRightIcon = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(16),
Height = Application.GetRealWidth(16),
UnSelectedImagePath = "FunctionIcon/ArmCenter/RightIcon.png",
};
this.AddChidren(btnRightIcon);
}
public void SetClickEvent(EventHandler eventHandler)
{
btnState.MouseUpEventHandler = eventHandler;
btnTitle.MouseUpEventHandler = eventHandler;
btnSubTitle.MouseUpEventHandler = eventHandler;
}
}
}