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; } } }