From a448538f9279d76158bd010e696e7012c0696439 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 24 十一月 2021 17:12:04 +0800 Subject: [PATCH] 2021-11-24-02 --- HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs | 778 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 390 insertions(+), 388 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs index 9aac9de..8501b16 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs @@ -7,361 +7,363 @@ namespace HDL_ON.UI { - public class AddOutputPage : FrameLayout + public class AddOutputPage : FrameLayout + { + FrameLayout bodyView; + + FrameLayout showdFunctionTypeRow; + + /// <summary> + /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣 + /// </summary> + Button btnFloorDownIcon; + /// <summary> + /// 妤煎眰鏄剧ず + /// </summary> + Button btnFloor; + + /// <summary> + /// 绛涢�夋枃鏈樉绀� + /// </summary> + Button btnScreenText; + + VerticalScrolViewLayout functionListView; + + SecurityAlarm securityAlarm; + Action<SecurityAlarm> refreshAction; + List<SecurityOutput> outputList = new List<SecurityOutput>(); + + List<Function> allocatedList = new List<Function>(); + + public AddOutputPage(SecurityAlarm function, Action<SecurityAlarm> action) { - FrameLayout bodyView; + bodyView = this; + securityAlarm = function; + refreshAction = action; + } - FrameLayout showdFunctionTypeRow; - /// <summary> - /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣 - /// </summary> - Button btnFloorDownIcon; - /// <summary> - /// 妤煎眰鏄剧ず - /// </summary> - Button btnFloor; + /// <summary> + /// 鍔犺浇鐣岄潰 + /// </summary> + public void LoadPage() + { + bodyView.BackgroundColor = CSS_Color.BackgroundColor; + new TopViewDiv(bodyView, Language.StringByID(StringId.AddFunction)).LoadTopView(); - /// <summary> - /// 绛涢�夋枃鏈樉绀� - /// </summary> - Button btnScreenText; + #region 鏄剧ず鐨勫姛鑳界被鍨嬪垏鎹㈠尯鍩� + showdFunctionTypeRow = new FrameLayout() + { + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(62), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + bodyView.AddChidren(showdFunctionTypeRow); - VerticalScrolViewLayout functionListView; - SecurityAlarm securityAlarm; - Action<SecurityAlarm> refreshAction; - List<SecurityOutput> outputList = new List<SecurityOutput>(); + btnFloorDownIcon = new Button() + { + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(18), + UnSelectedImagePath = "Public/DownIcon.png", + }; + showdFunctionTypeRow.AddChidren(btnFloorDownIcon); - List<Function> allocatedList = new List<Function>(); + btnFloor = new Button() + { + X = btnFloorDownIcon.Right, + Y = Application.GetRealHeight(18), + Width = Application.GetRealWidth(200), + Height = Application.GetMinRealAverage(16), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft, + Text = DB_ResidenceData.Instance.CurFloor.roomName, + }; + showdFunctionTypeRow.AddChidren(btnFloor); - public AddOutputPage(SecurityAlarm function, Action<SecurityAlarm> action) + #endregion + + functionListView = new VerticalScrolViewLayout() + { + Y = showdFunctionTypeRow.Bottom, + Height = Application.GetRealHeight(530 - 100), + BackgroundColor = CSS_Color.BackgroundColor, + }; + bodyView.AddChidren(functionListView); + + + + + + + foreach (var function in FunctionList.List.Functions) + { + if (!MainPage.SceneSupportFunctionList.Contains(function.spk)) { - bodyView = this; - securityAlarm = function; - refreshAction = action; + continue; + } + if (function == null) + { + continue; + } + function.roomIds.Remove(null); + allocatedList.Add(function); + } + + LoadFunctionListRow(null); + + + + + + + + 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) => + { + securityAlarm.output = new List<SecurityOutput>(); + foreach (var output in outputList) + { + if (output.addCondition) + { + securityAlarm.output.Add(output); + } + } + this.RemoveFromParent(); + refreshAction?.Invoke(securityAlarm); + }; + + + + + + + } + + + + + // <summary> + /// 鏄剧ず鍔熻兘Row + /// </summary> + void LoadFunctionListRow(List<Function> functions) + { + functionListView.RemoveAll(); + if (functions == null) + { + functions = allocatedList; + } + foreach (var function in functions) + { + var output = securityAlarm.output.Find((obj) => obj.sid == function.sid); + if (output == null) + { + output = new SecurityOutput(); + output.sid = function.sid; + } + else + { + output.addCondition = true; + } + outputList.Add(output); + + FrameLayout functionRow = new FrameLayout() + { + Height = Application.GetRealHeight(65), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + functionListView.AddChidren(functionRow); + + var btnFunctionName = new Button() + { + X = Application.GetRealWidth(16), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(44), + Text = function.name, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + }; + functionRow.AddChidren(btnFunctionName); + + var btnFunctionFloorName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(24), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(41), + Text = function.GetRoomListName(), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + }; + functionRow.AddChidren(btnFunctionFloorName); + + Button btnState = new Button() + { + Width = Application.GetRealWidth(317), + TextAlignment = TextAlignment.CenterRight, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.PromptingColor1, + }; + functionRow.AddChidren(btnState); + + + Button btnChooseIcon = new Button() + { + X = Application.GetRealWidth(333), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(32), + Height = Application.GetMinRealAverage(32), + UnSelectedImagePath = "Public/ChooseIcon.png", + SelectedImagePath = "Public/ChooseOnIcon.png", + }; + functionRow.AddChidren(btnChooseIcon); + + btnChooseIcon.MouseUpEventHandler = (sender, e) => + { + btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected; + if (btnChooseIcon.IsSelected) + { + output.addCondition = true; + if (output.status.Count == 0) + { + ShowStateDialog(output, btnState, btnChooseIcon); + } + } + else + { + output.addCondition = false; + } + }; + btnState.MouseUpEventHandler = (sender, e) => + { + ShowStateDialog(output, btnState, btnChooseIcon); + }; + + + if (output.addCondition) + { + btnChooseIcon.IsSelected = true; + btnState.Text = output.StateText(); } - /// <summary> - /// 鍔犺浇鐣岄潰 - /// </summary> - public void LoadPage() + functionListView.AddChidren(new Button() { - bodyView.BackgroundColor = CSS_Color.BackgroundColor; - new TopViewDiv(bodyView, Language.StringByID(StringId.AddFunction)).LoadTopView(); - - #region 鏄剧ず鐨勫姛鑳界被鍨嬪垏鎹㈠尯鍩� - showdFunctionTypeRow = new FrameLayout() - { - Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(62), - BackgroundColor = CSS_Color.MainBackgroundColor, - }; - bodyView.AddChidren(showdFunctionTypeRow); + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(1), + BackgroundColor = CSS_Color.DividingLineColor, + }); - btnFloorDownIcon = new Button() - { - Width = Application.GetMinRealAverage(16), - Height = Application.GetMinRealAverage(16), - X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(18), - UnSelectedImagePath = "Public/DownIcon.png", - }; - showdFunctionTypeRow.AddChidren(btnFloorDownIcon); - - btnFloor = new Button() - { - X = btnFloorDownIcon.Right, - Y = Application.GetRealHeight(18), - Width = Application.GetRealWidth(200), - Height = Application.GetMinRealAverage(16), - TextColor = CSS_Color.FirstLevelTitleColor, - TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - TextAlignment = TextAlignment.CenterLeft, - Text = DB_ResidenceData.Instance.CurFloor.roomName, - }; - showdFunctionTypeRow.AddChidren(btnFloor); - - #endregion - - functionListView = new VerticalScrolViewLayout() - { - Y = showdFunctionTypeRow.Bottom, - Height = Application.GetRealHeight(530 -100), - BackgroundColor = CSS_Color.BackgroundColor, - }; - bodyView.AddChidren(functionListView); + } + } + private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null) + { + Dialog dialog = new Dialog(); - - - foreach (var function in FunctionList.List.Functions) - { - if (!MainPage.SceneSupportFunctionList.Contains(function.spk)) - { - continue; - } - if (function == null) - { - continue; - } - function.roomIds.Remove(null); - allocatedList.Add(function); - } - - LoadFunctionListRow(null); - - - - - - - - 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) => - { - securityAlarm.output = new List<SecurityOutput>(); - foreach (var output in outputList) - { - if (output.addCondition) - { - securityAlarm.output.Add(output); - } - } - this.RemoveFromParent(); - refreshAction?.Invoke(securityAlarm); - }; - - - - - - + FrameLayout contentView = new FrameLayout(); + dialog.AddChidren(contentView); + contentView.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + if (output.status.Count == 0) + { + if (btnChoose != null) + { + btnChoose.IsSelected = false; + } } + }; + + VerticalScrolViewLayout optinView = new VerticalScrolViewLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(515), + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(88), + Radius = (uint)Application.GetRealHeight(13), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + contentView.AddChidren(optinView); + + Button btnOpen = new Button() + { + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.On + }; + optinView.AddChidren(btnOpen); + + optinView.AddChidren(new Button() + { + Height = 1, + BackgroundColor = CSS_Color.DividingLineColor + }); + + Button btnClose = new Button() + { + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.PromptingColor1, + TextID = StringId.OFF, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + optinView.AddChidren(btnClose); + Button btnCancel = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = optinView.Bottom + Application.GetRealHeight(8), + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(44), + Radius = (uint)Application.GetRealHeight(13), + BackgroundColor = CSS_Color.MainBackgroundColor, + TextID = StringId.Cancel, + TextColor = CSS_Color.WarningColor, + IsBold = true, + }; + contentView.AddChidren(btnCancel); + dialog.Show(); - // <summary> - /// 鏄剧ず鍔熻兘Row - /// </summary> - void LoadFunctionListRow(List<Function> functions) - { - functionListView.RemoveAll(); - if (functions == null) - { - functions = allocatedList; - } - foreach (var function in functions) - { - var output = securityAlarm.output.Find((obj) => obj.sid == function.sid); - if (output == null) - { - output = new SecurityOutput(); - output.sid = function.sid; - } - else - { - output.addCondition = true; - } - outputList.Add(output); - - FrameLayout functionRow = new FrameLayout() - { - Height = Application.GetRealHeight(65), - BackgroundColor = CSS_Color.MainBackgroundColor, - }; - functionListView.AddChidren(functionRow); - - var btnFunctionName = new Button() - { - X = Application.GetRealWidth(16), - Width = Application.GetRealWidth(200), - Height = Application.GetRealHeight(44), - Text = function.name, - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.FirstLevelTitleColor, - TextSize = CSS_FontSize.TextFontSize, - }; - functionRow.AddChidren(btnFunctionName); - - var btnFunctionFloorName = new Button() - { - X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(24), - Width = Application.GetRealWidth(200), - Height = Application.GetRealHeight(41), - Text = function.GetRoomListName(), - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.PromptingColor1, - TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, - }; - functionRow.AddChidren(btnFunctionFloorName); - - Button btnState = new Button() - { - Width = Application.GetRealWidth(317), - TextAlignment = TextAlignment.CenterRight, - TextSize = CSS_FontSize.TextFontSize, - TextColor = CSS_Color.PromptingColor1, - }; - functionRow.AddChidren(btnState); - - - Button btnChooseIcon = new Button() - { - X = Application.GetRealWidth(333), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(32), - Height = Application.GetMinRealAverage(32), - UnSelectedImagePath = "Public/ChooseIcon.png", - SelectedImagePath = "Public/ChooseOnIcon.png", - }; - functionRow.AddChidren(btnChooseIcon); - - btnChooseIcon.MouseUpEventHandler = (sender, e) => { - btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected; - if (btnChooseIcon.IsSelected) - { - output.addCondition = true; - if (output.status.Count == 0) - { - ShowStateDialog(output, btnState,btnChooseIcon); - } - } - else - { - output.addCondition = false; - } - }; - btnState.MouseUpEventHandler = (sender, e) => - { - ShowStateDialog(output, btnState, btnChooseIcon); - }; - - - if (output.addCondition) - { - btnChooseIcon.IsSelected = true; - btnState.Text = output.StateText(); - } - - - functionListView.AddChidren(new Button() - { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealWidth(1), - BackgroundColor = CSS_Color.DividingLineColor, - }); - - - } - } - - - - private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null) - { - Dialog dialog = new Dialog(); - - FrameLayout contentView = new FrameLayout(); - dialog.AddChidren(contentView); - contentView.MouseUpEventHandler = (sender, e) => - { - dialog.Close(); - if (output.status.Count == 0) - { - if (btnChoose != null) - { - btnChoose.IsSelected = false; - } - } - }; - - VerticalScrolViewLayout optinView = new VerticalScrolViewLayout() - { - Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(515), - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(88), - Radius = (uint)Application.GetRealHeight(13), - BackgroundColor = CSS_Color.MainBackgroundColor, - }; - contentView.AddChidren(optinView); - - Button btnOpen = new Button() - { - Height = Application.GetRealHeight(44), - TextAlignment = TextAlignment.Center, - TextColor = CSS_Color.MainColor, - TextSize = CSS_FontSize.SubheadingFontSize, - TextID = StringId.On - }; - optinView.AddChidren(btnOpen); - - optinView.AddChidren(new Button() - { - Height = 1, - BackgroundColor = CSS_Color.DividingLineColor - }); - - Button btnClose = new Button() - { - Height = Application.GetRealHeight(44), - TextAlignment = TextAlignment.Center, - TextColor = CSS_Color.PromptingColor1, - TextID = StringId.OFF, - TextSize = CSS_FontSize.SubheadingFontSize, - }; - optinView.AddChidren(btnClose); - - - Button btnCancel = new Button() - { - Gravity = Gravity.CenterHorizontal, - Y = optinView.Bottom + Application.GetRealHeight(8), - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(44), - Radius = (uint)Application.GetRealHeight(13), - BackgroundColor = CSS_Color.MainBackgroundColor, - TextID = StringId.Cancel, - TextColor = CSS_Color.WarningColor, - IsBold = true, - }; - contentView.AddChidren(btnCancel); - - dialog.Show(); - - btnOpen.MouseUpEventHandler = (sender, e) => { - btnState.Text = btnOpen.Text; - output.status = new List<SecurityOutputStatus>() + btnOpen.MouseUpEventHandler = (sender, e) => + { + btnState.Text = btnOpen.Text; + output.status = new List<SecurityOutputStatus>() { new SecurityOutputStatus() { @@ -369,73 +371,73 @@ value = "on", } }; - output.addCondition = true; - if (btnChoose != null) - { - btnChoose.IsSelected = true; - } - dialog.Close(); - }; + output.addCondition = true; + if (btnChoose != null) + { + btnChoose.IsSelected = true; + } + dialog.Close(); + }; - btnClose.MouseUpEventHandler = (sender, e) => - { - btnState.Text = btnClose.Text; - output.status = new List<SecurityOutputStatus>() - { + btnClose.MouseUpEventHandler = (sender, e) => + { + btnState.Text = btnClose.Text; + output.status = new List<SecurityOutputStatus>() + { new SecurityOutputStatus() { key = FunctionAttributeKey.OnOff, value = "off", } - }; - output.addCondition = true; - if (btnChoose != null) - { - btnChoose.IsSelected = true; - } - dialog.Close(); - }; - - btnCancel.MouseUpEventHandler = (sender, e) => - { - dialog.Close(); - if (output.status.Count == 0) - { - if (btnChoose != null) - { - btnChoose.IsSelected = false; - } - } - - }; - - } - - - - - /// <summary> - /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢 - /// </summary> - void LoadDialog_ChangeFloor() + }; + output.addCondition = true; + if (btnChoose != null) { - string nowSelectId = null; - btnFloor.MouseUpEventHandler += (sender, e) => - { - var listAllFun = new List<Function>(); - listAllFun.AddRange(allocatedList); + btnChoose.IsSelected = true; + } + dialog.Close(); + }; - //鏄剧ず涓嬫媺鐣岄潰 - var form = new FloorRoomSelectPopupView(); - form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) => - { - nowSelectId = selectId; - //閲嶆柊鍒锋柊璁惧鍒楄〃 - this.LoadFunctionListRow(listFun); - }, nowSelectId); - }; + btnCancel.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + if (output.status.Count == 0) + { + if (btnChoose != null) + { + btnChoose.IsSelected = false; + } } + }; } + + + + + /// <summary> + /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢 + /// </summary> + void LoadDialog_ChangeFloor() + { + string nowSelectId = null; + btnFloor.MouseUpEventHandler += (sender, e) => + { + var listAllFun = new List<Function>(); + listAllFun.AddRange(allocatedList); + + //鏄剧ず涓嬫媺鐣岄潰 + var form = new FloorRoomSelectPopupView(); + form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) => + { + nowSelectId = selectId; + //閲嶆柊鍒锋柊璁惧鍒楄〃 + this.LoadFunctionListRow(listFun); + }, nowSelectId); + }; + } + + + } } -- Gitblit v1.8.0