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 AddAlarmDeploymentPage : FrameLayout
{
FrameLayout bodyView;
///
/// 主题界面
///
VerticalScrolViewLayout contentView;
///
/// 输入条件列表区域界面
///
VerticalScrolViewLayout inputTargetView;
///
/// 告警目标列表区域界面
///
VerticalScrolViewLayout outputTargetView;
SecurityAlarm securityAlarm;
Action refreshAction;
public AddAlarmDeploymentPage(SecurityAlarm alarm, Action action)
{
bodyView = this;
securityAlarm = alarm;
refreshAction = action;
}
public void LoadPage()
{
new TopViewDiv(bodyView, Language.StringByID(StringId.Setting)).LoadTopView();
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(527),
};
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.TriggerDelay,
};
delayedRow.AddChidren(btnDelayedTitle);
btnDelayedTitle.Text += ":";
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 });
#endregion
*/
#endregion
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
//布防功能
iniDefenseView();
#if DEBUG
//告警目标
iniAlarmView();
#endif
#region 底部区域
var bottomView = new FrameLayout()
{
Y = Application.GetRealHeight(591),
Height = Application.GetRealHeight(100),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealWidth(22),
};
this.AddChidren(bottomView);
var btnConfrim = new Button()
{
X = Application.GetRealWidth(78),
Y = Application.GetRealHeight(12),
Width = Application.GetRealWidth(220),
Height = Application.GetRealWidth(44),
Radius = (uint)Application.GetRealWidth(22),
BackgroundColor = CSS_Color.MainColor,
TextID = StringId.Confirm,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.MainBackgroundColor,
TextAlignment = TextAlignment.Center,
};
bottomView.AddChidren(btnConfrim);
btnConfrim.MouseUpEventHandler = (sender, e) =>
{
if (string.IsNullOrEmpty( securityAlarm.name ))
{
var tip = new Tip()
{
Text = Language.StringByID(StringId.PleaseEnterSecurityName),// = "请输入安防名称",
CloseTime = 3,
Direction = AMPopTipDirection.None
};
tip.Show(MainPage.BaseView);
return;
}
if (securityAlarm.input.Count == 0)
{
var tip = new Tip()
{
Text = Language.StringByID(StringId.PleaseSelectTheDeploymentTarget),// "请选择布防目标",
CloseTime = 3,
Direction = AMPopTipDirection.None
};
tip.Show(MainPage.BaseView);
return;
}
//if (securityAlarm.output.Count == 0)
//{
// var tip = new Tip()
// {
// Text = "请选择告警目标",
// CloseTime = 3,
// Direction = AMPopTipDirection.None
// };
// tip.Show(MainPage.BaseView);
// return;
//}
var waitPage = new Loading();
waitPage.Start();
new System.Threading.Thread(() =>
{
try
{
var code = securityAlarm.SaveInfo();
if (code == StateCode.SUCCESS)
{
Common.ApiUtlis.Ins.GetSecurityList();
Application.RunOnMainThread(() =>
{
this.RemoveFromParent();
refreshAction?.Invoke();
});
}
else
{
Application.RunOnMainThread(() =>
{
IMessageCommon.Current.ShowErrorInfoAlter(code);
});
}
}
catch { }
finally
{
Application.RunOnMainThread(() => {
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
};
#endregion
}
///
/// 初始化部分功能区域
///
private void iniDefenseView()
{
#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);
///添加输入目标
btnAddTarget.MouseUpEventHandler = (sender, e) => {
Action action = (outTemp) => {
securityAlarm = outTemp;
iniInputTargetView();
};
var page = new AddInputPage(securityAlarm, action);
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
deploymentFunctionRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
inputTargetView = new VerticalScrolViewLayout()
{
ScrollEnabled = false,
};
contentView.AddChidren(inputTargetView);
iniInputTargetView();
#endregion
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
}
///
/// 初始化输入条件区域界面
///
///
private void iniInputTargetView()
{
inputTargetView.RemoveAll();
if (securityAlarm.input.Count > 0)
{
foreach (var target in securityAlarm.input)
{
if (target.GetFunction() != null)
{
inputTargetView.AddChidren(new InputRow(target.GetFunction().name, target.GetFunction().GetRoomListName(), target.StateText()));
}
}
inputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.input.Count);
//if (outputTargetView != null)
//{
// contentView.AddChidren(outputTargetView);
//}
}
else
{
inputTargetView.AddChidren(new Button()
{
Height = Application.GetRealHeight(65),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
TextID = StringId.ThereIsNoAssociatedTaskDeploymentStatus,
IsMoreLines = true,
BackgroundColor = CSS_Color.MainBackgroundColor,
});
inputTargetView.Height = Application.GetRealHeight(68);
//if(outputTargetView!= null)
//{
// contentView.AddChidren(outputTargetView);
//}
}
}
///
/// 初始化告警目标区域
///
private void iniAlarmView()
{
#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);
btnAddOutTarget.MouseUpEventHandler = (sender, e) => {
Action action = (outTemp) => {
securityAlarm = outTemp;
iniAlarmListView();
};
var page = new AddOutputPage(securityAlarm, action);
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
outputRow.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
outputTargetView = new VerticalScrolViewLayout()
{
ScrollEnabled = false,
};
contentView.AddChidren(outputTargetView);
iniAlarmListView();
#endregion
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor });
}
///
/// 初始化告警列表区域
///
private void iniAlarmListView()
{
outputTargetView.RemoveAll();
if (securityAlarm.output.Count > 0)
{
foreach (var outTarget in securityAlarm.output)
{
outputTargetView.AddChidren(new OutputRow(outTarget.GetFunction().name, outTarget.GetFunction().GetRoomListName(), "打开"));
}
outputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.output.Count);
}
else
{
outputTargetView.AddChidren(new Button()
{
Height = Application.GetRealHeight(65),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
TextID = StringId.ThereIsNoAssociatedTaskDeploymentStatus,
IsMoreLines = true,
BackgroundColor = CSS_Color.MainBackgroundColor,
});
}
}
///
/// 修改安防名称
///
void LoadEvent_EditSecurityAlarmName(Button btnDeploymentName)
{
EventHandler eventHandler = (sender, e) =>
{
Action callBack = (str) =>
{
//名称不能为空
if (string.IsNullOrEmpty(str))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.NameCannotBeEmpty),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
btnDeploymentName.Text = securityAlarm.name = str;
};
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,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);
Button btnState = new Button()
{
Width = Application.GetRealWidth(360),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = state
};
this.AddChidren(btnState);
}
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.CenterVertical,
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;
}
}
}