From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/UI/UI2/2-Classification/RoomPage.cs | 99 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 69 insertions(+), 30 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs index ab78fd4..7bbf394 100644 --- a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs +++ b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs @@ -1,4 +1,6 @@ -锘縰sing System; +锘� +using System; +using System.Collections.Generic; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; @@ -34,6 +36,12 @@ #endregion + public override void RemoveFromParent() + { + base.RemoveFromParent(); + bodyView = null; + } + /// <summary> /// /// </summary> @@ -53,6 +61,7 @@ deleteAction = delAction; this.modifyImageAction = modifyImageAction; } + /// <summary> /// 閲嶈浇鐣岄潰 /// </summary> @@ -60,36 +69,50 @@ { if (bodyView != null) { - bodyView.RemoveAll(); - LoadPage(); + try + { + bodyView.RemoveAll(); + LoadPage(); + } + catch (Exception ex) + { + MainPage.Log($"RoomPage ReloadPage error :\r\n {ex.Message}"); + } } } + public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; - new TopViewDiv(bodyView,room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction); + new TopViewDiv(bodyView, room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction); functionListView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(603-12), + Height = Application.GetRealHeight(603 - 12), }; bodyView.AddChidren(functionListView); - foreach (var function in room.GetRoomFunctions(false)) + var list = room.GetRoomFunctions(false); + + + foreach (var function in list) { - if (MainPage.RoomNotSupportFunctionList.Contains( function.spk)) + if (MainPage.RoomNotSupportFunctionList.Contains(function.spk)) { continue; } +#if DEBUG + //throw new ArgumentNullException(); +#endif functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); - if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) + if (function.spk == SPK.LightRGBW || function.spk == SPK.LightCCT || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) { - var functionDiv = new FunctionControlZone(function) + var functionDiv = new FunctionControlZone(function, null) { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), @@ -105,7 +128,11 @@ } else { - var functionDiv = new FunctionControlZone(function) + + var functionDiv = new FunctionControlZone(function, () => + { + this.ReLoadPage(); //鍒犻櫎璁惧鍚庨噸鏂板埛鏂癠I + }) { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), @@ -120,22 +147,32 @@ functionListView.AddChidren(functionDiv); } } - foreach (var scene in room.GetRoomScenes(false)) + try { - functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); - var sceneRow = new FrameLayout() + foreach (var scene in room.GetRoomScenes(false)) { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(116), - Radius = (uint)Application.GetMinRealAverage(12), - BorderColor = 0x00FFFFFF, - BorderWidth = 1, - BackgroundColor = CSS_Color.MainBackgroundColor, - Tag = "Scene-" + scene.sid - }; - functionListView.AddChidren(sceneRow); - LoadSceneRow(sceneRow, scene); + if (scene == null) + { + continue; + } + functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); + var sceneRow = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(116), + Radius = (uint)Application.GetMinRealAverage(12), + BorderColor = 0x00FFFFFF, + BorderWidth = 1, + BackgroundColor = CSS_Color.MainBackgroundColor, + Tag = "Scene-" + scene.sid + }; + functionListView.AddChidren(sceneRow); + LoadSceneRow(sceneRow, scene); + } + }catch (Exception ex) + { + MainPage.Log($"RoomPage LoadPage Error:{ex.Message}"); } } @@ -147,7 +184,7 @@ /// </summary> public void LoadSceneRow(FrameLayout bodyDiv, Scene scene) { - var btnIcon = new Button() + var btnIcon = new Button() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(15), @@ -214,15 +251,15 @@ btnName.X = Application.GetRealWidth(52 + 16); } //鍔犺浇鍦烘櫙鎺у埗浜嬩欢 - LoadEvent_ControlScene(btnName,btnFromFloor,bodyDiv,scene ); + LoadEvent_ControlScene(btnName, btnFromFloor, bodyDiv, scene); - LoadEvent_FunctionCollection(btnCollectionIcon,scene); + LoadEvent_FunctionCollection(btnCollectionIcon, scene); } /// <summary> /// 鍔犺浇鍔熻兘鏀惰棌鎸夐挳浜嬩欢 /// </summary> - void LoadEvent_FunctionCollection(Button btnCollectionIcon,Scene scene) + void LoadEvent_FunctionCollection(Button btnCollectionIcon, Scene scene) { btnCollectionIcon.MouseUpEventHandler += (sender, e) => { @@ -233,9 +270,10 @@ /// <summary> /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢 /// </summary> - void LoadEvent_ControlScene(Button btnName,Button btnFromFloor,FrameLayout bodyDiv, Scene scene) + void LoadEvent_ControlScene(Button btnName, Button btnFromFloor, FrameLayout bodyDiv, Scene scene) { - EventHandler<MouseEventArgs> upEvent = (sender, e) => { + EventHandler<MouseEventArgs> upEvent = (sender, e) => + { DriverLayer.Control.Ins.ControlScene(scene); string msg = scene.name + Language.StringByID(StringId.AlreadyOpened); new PublicAssmebly().TipMsgAutoClose(msg, false); @@ -245,5 +283,6 @@ bodyDiv.MouseUpEventHandler = upEvent; } + } } -- Gitblit v1.8.0