From 171bf03f3664226eeff2b20ee9bd2e914b63a17d Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 13 三月 2020 09:18:50 +0800 Subject: [PATCH] 20200313 --- HDL_ON/UI/UI2/1-HomePage/HomePage.cs | 266 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 224 insertions(+), 42 deletions(-) diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs index 2f4519b..19c8cea 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using HDL_ON.Entity; +using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI @@ -35,6 +36,30 @@ /// </summary> Button btnPm25Values; /// <summary> + /// 鍒囨崲鏄剧ず鍔熻兘绫诲瀷鍖哄煙 + /// </summary> + FrameLayout changeView; + /// <summary> + /// 鍒囨崲鏄剧ず璁惧鍔熻兘鎸夐挳 + /// </summary> + Button btnChangeFunction; + /// <summary> + /// 鍒囨崲鏄剧ず鍦烘櫙鍔熻兘鎸夐挳 + /// </summary> + Button btnChangeScene; + /// <summary> + /// 鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + PageLayout contentView; + /// <summary> + /// 璁惧鍔熻兘鎺у埗鍖哄煙 + /// </summary> + VerticalScrolViewLayout deviceFunctionView; + /// <summary> + /// 鍦烘櫙鍔熻兘鎺у埗鍖哄煙 + /// </summary> + VerticalScrolViewLayout sceneFunctionView; + /// <summary> /// 鐏厜鍖哄煙闆嗗悎 /// </summary> static Dictionary<string, FrameLayout> LightViews; @@ -48,10 +73,17 @@ static Dictionary<string, FrameLayout> CurtainViews; #endregion + #region 鍖哄煙鍙橀噺 + /// <summary> + /// 褰撳墠鏄剧ず瀵规帶鍒剁被鍨嬫槸鍚︽槸璁惧鍔熻兘鎺у埗 + /// </summary> + bool CurShowTypeIsFunction = true; + #endregion + public HomePage() { bodyView = this; - bodyView.BackgroundColor = CSS.CSS_Color.BackgroundColor; + bodyView.BackgroundColor = CSS_Color.BackgroundColor; } public void LoadPage() @@ -65,8 +97,9 @@ bodyView.AddChidren(topView); Button btnTop; - btnTop = new Button() { - BackgroundColor = 0x33000000, + btnTop = new Button() + { + BackgroundColor = CSS_Color.DialogTransparentColor2, }; topView.AddChidren(btnTop); @@ -218,9 +251,6 @@ #region 鍔熻兘鍦烘櫙鍒囨崲 - - - FrameLayout changeView; changeView = new FrameLayout() { Y = Application.GetRealHeight(20) + topView.Bottom, @@ -231,14 +261,12 @@ }; bodyView.AddChidren(changeView); - Button btnChangeFunction; btnChangeFunction = new Button() { Width = Application.GetRealWidth(114), TextID = StringId.Functions, SelectedTextColor = CSS.CSS_Color.MainColor, TextColor = CSS.CSS_Color.PromptingColor1, - //TextSize = CSS.CSS_FontSize.TextFontSize, TextSize = CSS.CSS_FontSize.HeadlineFontSize, TextAlignment = TextAlignment.Center, IsSelected = true, @@ -256,7 +284,6 @@ }; changeView.AddChidren(btnLine); - Button btnChangeScene; btnChangeScene = new Button() { X = btnLine.Right, @@ -265,53 +292,81 @@ SelectedTextColor = CSS.CSS_Color.MainColor, TextColor = CSS.CSS_Color.PromptingColor1, TextSize = CSS.CSS_FontSize.TextFontSize, - //TextSize = CSS.CSS_FontSize.HeadlineFontSize, TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeScene); #endregion - #region ContextView - VerticalScrolViewLayout contextView; - contextView = new VerticalScrolViewLayout() + contentView = new PageLayout() { Y = changeView.Bottom + Application.GetRealHeight(10), Height = Application.GetRealHeight(310 + 30), //20涓鸿秴鍑洪儴鍒� - }; - bodyView.AddChidren(contextView); + bodyView.AddChidren(contentView); LightViews = new Dictionary<string, FrameLayout>(); AcViews = new Dictionary<string, FrameLayout>(); CurtainViews = new Dictionary<string, FrameLayout>(); + + deviceFunctionView = new VerticalScrolViewLayout(); + contentView.AddChidren(deviceFunctionView); + LoadDeviceFunctionControlZone(); + sceneFunctionView = new VerticalScrolViewLayout(); + contentView.AddChidren(sceneFunctionView); + LoadSceneFunctionControlZone(); + contentView.PageIndex = 0; + + #endregion + + LoadEvent_ChangeShowedFunctionType(); + //鍒锋柊鍔熻兘鐘舵�� + DB_ResidenceData.residenceData.RefreshResidenceFunctionStatus(); + } + + /// <summary> + /// 鍔犺浇璁惧鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + void LoadDeviceFunctionControlZone() + { + #region ContextView + deviceFunctionView.RemoveAll(); + LightViews.Clear(); + AcViews.Clear(); + CurtainViews.Clear(); var rowView = new FrameLayout(); try { int index = 0; - foreach (var function in DB_ResidenceData.residenceData.functions.functions) + foreach (var function in DB_ResidenceData.residenceData.functionList.GetAllDeviceFunctionList()) { if (!function.collection) continue; + if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず + { + function.collection = false; + continue; + } if (index % 2 == 0) { rowView = new FrameLayout() { Height = Application.GetRealWidth(140), }; - contextView.AddChidren(rowView); + deviceFunctionView.AddChidren(rowView); } var functionView_X = Application.GetRealWidth((182 + 7) * (index % 2)); if (index % 2 == 0) { - functionView_X += 7; + functionView_X += Application.GetRealWidth(7); } var functionView = new FrameLayout() { X = functionView_X, Width = Application.GetRealWidth(182), Height = Application.GetRealWidth(140), + Radius = (uint)Application.GetRealWidth(12), Tag = function.sid }; rowView.AddChidren(functionView); @@ -338,9 +393,8 @@ AcViews.Add(function.sid, functionView); #endregion break; - } - LoadControlView(functionView, function); + LoadDeviceFunctionDiv(functionView, function); index++; } } @@ -348,16 +402,71 @@ { MainPage.Log("homepage erorr : " + ex.Message); } - contextView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); + deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); #endregion - - DB_ResidenceData.residenceData.RefreshResidenceFunctionStatus(); } + /// <summary> + /// 鍔犺浇鍦烘櫙鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + void LoadSceneFunctionControlZone() + { + sceneFunctionView.RemoveAll(); + var rowView = new FrameLayout(); + try + { + int index = 0; + foreach (var function in DB_ResidenceData.residenceData.functionList.scenes) + { + if (!function.collection) + continue; + if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず + { + function.collection = false; + continue; + } + if (index % 2 == 0) + { + sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); + rowView = new FrameLayout() + { + Height = Application.GetRealWidth(122), + }; + sceneFunctionView.AddChidren(rowView); + sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); + } + var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) +16); + + var functionView = new FrameLayout() + { + X = functionView_X, + Width = Application.GetRealWidth(164), + Height = Application.GetRealWidth(122), + Tag = function.sid, + BackgroundImagePath = (function as Scene).ImagePath, + }; + rowView.AddChidren(functionView); + //functionView.Radius = (uint)Application.GetRealWidth(12); + //functionView.BorderColor = CSS_Color.BackgroundColor; + //functionView.BorderWidth = 1; + + + LoadSceneFunctionDiv(functionView, function); + index++; + } + } + catch (Exception ex) + { + MainPage.Log("homepage erorr : " + ex.Message); + } + sceneFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); + + } + /// <summary> /// 鍔犺浇鎺у埗鍗$墖 /// </summary> - void LoadControlView(FrameLayout view,Function function) + void LoadDeviceFunctionDiv(FrameLayout view, Function function) { try { @@ -397,21 +506,9 @@ TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel, TextAlignment = TextAlignment.CenterLeft, SelectedTextColor = CSS.CSS_Color.MainBackgroundColor, + Text = function.GetRoomListName() }; view.AddChidren(btnZone); - - foreach (var roomId in function.roomIdList) - { - var room = DB_ResidenceData.residenceData.rooms.Find((obj) => obj.sid == roomId); - if (room != null) - { - btnZone.Text = room.floor + " " + room.name; - } - else - { - btnZone.Text = ""; - } - } Button btnState; btnState = new Button() @@ -440,9 +537,6 @@ UnSelectedImagePath = "Collection/CollectionIcon.png", }; view.AddChidren(btnCollection); - btnCollection.MouseUpEventHandler += (sender, e) => { - //btnCollection.IsSelected = !btnCollection.IsSelected; - }; Button btnSwitch; btnSwitch = new Button() @@ -462,7 +556,7 @@ #region 鐏厜 Light btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png"; btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png"; - LoadSwitchEvent(function, btnSwitch, view); + LoadRelaySwitchEvent(function, btnSwitch, view); //btnCollection.IsSelected = btnIcon.IsSelected = btnName.IsSelected = btnZone.IsSelected = btnSwitch.IsSelected = (function as Light).state == 1; UpdataLightView(function as Light); //btnSwitch.MouseUpEventHandler += (sender, e) => @@ -505,10 +599,98 @@ #endregion break; } - }catch(Exception ex) + } + catch (Exception ex) { MainPage.Log("homepage LoadControlView error : " + ex.Message); } } + + + /// <summary> + /// 鍔犺浇鎺у埗鍗$墖 + /// </summary> + void LoadSceneFunctionDiv(FrameLayout view, Function function) + { + try + { + Button btnCoverd = new Button() + { + UnSelectedImagePath = "Collection/SceneCovered.png", + SelectedImagePath = "Collection/SceneCoveredOn.png", + //Width = Application.GetRealWidth(165), + }; + view.AddChidren(btnCoverd); + btnCoverd.MouseDownEventHandler = (sender, e) => { + btnCoverd.IsSelected = true; + }; + btnCoverd.MouseUpEventHandler = (sender, e) => { + new System.Threading.Thread(() => { + System.Threading.Thread.Sleep(200); + Application.RunOnMainThread(() => { + btnCoverd.IsSelected = false; + }); + }) { IsBackground = true }.Start(); + }; + + Button btnDelayIcon; + btnDelayIcon = new Button() + { + X = Application.GetRealWidth(12), + Y = Application.GetRealWidth(12), + Height = Application.GetRealWidth(24), + Width = Application.GetRealWidth(24), + UnSelectedImagePath = "FunctionIcon/Scene/DelayIcon.png" + }; + view.AddChidren(btnDelayIcon); + + Button btnName; + btnName = new Button() + { + X = Application.GetRealWidth(12), + Y = Application.GetRealWidth(68), + Width = Application.GetRealWidth(150), + Height = Application.GetRealHeight(24), + Text = function.name, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.MainBackgroundColor, + TextAlignment = TextAlignment.CenterLeft, + }; + view.AddChidren(btnName); + + Button btnZone; + btnZone = new Button() + { + X = Application.GetRealWidth(12), + Y = btnName.Bottom, + Height = Application.GetRealWidth(18), + Width = Application.GetRealWidth(113), + TextColor = CSS.CSS_Color.MainBackgroundColor, + TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel, + TextAlignment = TextAlignment.CenterLeft, + SelectedTextColor = CSS.CSS_Color.MainBackgroundColor, + Text = function.GetRoomListName(), + }; + view.AddChidren(btnZone); + + Button btnCollection; + btnCollection = new Button() + { + X = Application.GetRealWidth(116), + Y = Application.GetRealWidth(8), + Width = Application.GetMinRealAverage(32), + Height = Application.GetMinRealAverage(32), + SelectedImagePath = "Collection/CollectionWhiteIcon.png", + UnSelectedImagePath = "Collection/CollectionIcon.png", + }; + view.AddChidren(btnCollection); + + } + catch (Exception ex) + { + MainPage.Log("homepage LoadControlView error : " + ex.Message); + } + } + } } -- Gitblit v1.8.0