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; /// /// 主题界面 /// VerticalScrolViewLayout contentView; /// /// 输入条件列表区域界面 /// VerticalScrolViewLayout inputTargetView; /// /// 告警目标列表区域界面 /// VerticalScrolViewLayout outputTargetView; SecurityAlarm securityAlarm; Action refreshAction; public ArmDeploymentSettingPage(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(); //告警目标 iniAlarmView(); #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 (securityAlarm.input.Count == 0) { var tip = new Tip() { Text = "请选择布防目标", 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) { 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; //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; } } }