From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 04 十一月 2020 14:58:15 +0800 Subject: [PATCH] 20201104 --- HDL_ON/UI/UI2/1-HomePage/HomePage.cs | 1076 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 722 insertions(+), 354 deletions(-) diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs index 8dce36f..8749ff5 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs @@ -1,6 +1,11 @@ 锘縰sing System; using System.Collections.Generic; +using System.Text; +using HDL_ON.DAL; using HDL_ON.Entity; +using HDL_ON.UI.CSS; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using Shared; namespace HDL_ON.UI @@ -9,11 +14,15 @@ { #region 鎺т欢鍒楄〃 - static FrameLayout bodyView; + static HomePage bodyView; /// <summary> /// 椤堕儴淇℃伅鍖哄煙 /// </summary> FrameLayout topView; + /// <summary> + /// 杩炴帴鐘舵�佹彁绀� + /// </summary> + Button btnLinkStateTip; /// <summary> ///浣忓畢鍚嶇О鏄剧ず /// </summary> @@ -35,329 +44,510 @@ /// </summary> Button btnPm25Values; /// <summary> - /// 鐏厜鍖哄煙闆嗗悎 + /// 鍒囨崲鏄剧ず鍔熻兘绫诲瀷鍖哄煙 /// </summary> - static Dictionary<string, FrameLayout> LightViews; + FrameLayout changeView; /// <summary> - /// 绌鸿皟鍖哄煙闆嗗悎 + /// 鍒囨崲鏄剧ず璁惧鍔熻兘鎸夐挳 /// </summary> - static Dictionary<string, FrameLayout> AcViews; + Button btnChangeFunction; /// <summary> - /// 绐楀笜鍖哄煙闆嗗悎 + /// 鍒囨崲鏄剧ず鍦烘櫙鍔熻兘鎸夐挳 /// </summary> - static Dictionary<string, FrameLayout> CurtainViews; + Button btnChangeScene; + /// <summary> + /// 鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + PageLayout contentView; + /// <summary> + /// 璁惧鍔熻兘鎺у埗鍖哄煙 + /// </summary> + VerticalScrolViewLayout deviceFunctionView; + /// <summary> + /// 鍦烘櫙鍔熻兘鎺у埗鍖哄煙 + /// </summary> + VerticalScrolViewLayout sceneFunctionView; + /// <summary> + /// 鍔熻兘鍖哄煙闆嗗悎 + /// </summary> + List<FrameLayout> functionViews; + #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() { - #region topView - topView = new FrameLayout() + try { - Height = Application.GetRealHeight(216), - BackgroundImagePath = DB_ResidenceData.residenceData.residenceImage, - }; - bodyView.AddChidren(topView); + #region topView + topView = new FrameLayout() + { + Height = Application.GetRealHeight(216), + BackgroundImagePath = DB_ResidenceData.residenceData.residenceImage, + }; + bodyView.AddChidren(topView); - Button btnTop; - btnTop = new Button() { - BackgroundColor = 0x33000000, - }; - topView.AddChidren(btnTop); + Button btnTop; + btnTop = new Button() + { + BackgroundColor = CSS_Color.DialogTransparentColor2, + }; + topView.AddChidren(btnTop); - btnResidenceName = new Button() + btnLinkStateTip = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(46), + Width = Application.GetRealWidth(6), + Height = Application.GetRealWidth(6), + BackgroundColor = CSS_Color.MainColor, + Radius = (uint)Application.GetRealWidth(3), + }; + topView.AddChidren(btnLinkStateTip); + + btnResidenceName = new Button() + { + X = Application.GetRealWidth(26), + Y = Application.GetRealHeight(32), + Width = Application.GetRealWidth(400), + Height = Application.GetRealHeight(33), + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft, + Text = DB_ResidenceData.residenceData.residecenInfo.Name, + IsBold = true + }; + topView.AddChidren(btnResidenceName); + +#if DEBUG + //鎼滅储缃戝叧 + btnResidenceName.MouseUpEventHandler = (sender, e) => + { + System.Threading.Tasks.Task.Run(() => + { + DriverLayer.Control.ins.ChangeCommunicationMode(DriverLayer.CommunicationMode.local_BusUdp); + DriverLayer.Control.ins.myUdp.ReadGatewayIP(); + }); + }; +#endif + + environmentalView = new FrameLayout() + { + Y = Application.GetRealHeight(1) + btnResidenceName.Bottom, + Height = Application.GetRealHeight(32), + }; + topView.AddChidren(environmentalView); + #region 鐜鏁版嵁 + Button btnTempIcon = new Button() + { + X = Application.GetRealWidth(12), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png", + }; + environmentalView.AddChidren(btnTempIcon); + + btnTempValues = new Button() + { + X = btnTempIcon.Right + Application.GetRealWidth(4), + Width = Application.GetRealWidth(30), + Gravity = Gravity.CenterVertical, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = MainPage.cityInfo.temperature + "掳", + TextAlignment = TextAlignment.CenterLeft, + }; + environmentalView.AddChidren(btnTempValues); + + Button btnHumidityIcon = new Button() + { + X = btnTempValues.Right + Application.GetRealWidth(2), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png", + }; + environmentalView.AddChidren(btnHumidityIcon); + + btnHumidityValues = new Button() + { + X = btnHumidityIcon.Right + Application.GetRealWidth(4), + Width = Application.GetRealWidth(30), + Gravity = Gravity.CenterVertical, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = MainPage.cityInfo.humidity + "%", + TextAlignment = TextAlignment.CenterLeft, + }; + environmentalView.AddChidren(btnHumidityValues); + + Button btnPm25Icon = new Button() + { + X = btnHumidityValues.Right + Application.GetRealWidth(2), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png", + }; + environmentalView.AddChidren(btnPm25Icon); + + btnPm25Values = new Button() + { + X = btnPm25Icon.Right + Application.GetRealWidth(4), + Width = Application.GetRealWidth(130), + Gravity = Gravity.CenterVertical, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = MainPage.cityInfo.pm25, + TextAlignment = TextAlignment.CenterLeft, + }; + environmentalView.AddChidren(btnPm25Values); + #endregion + + #region msg + FrameLayout msgView; + msgView = new FrameLayout() + { + Y = Application.GetRealHeight(164), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(28), + }; + topView.AddChidren(msgView); + + var btngb = new Button() + { + BackgroundColor = CSS_Color.MainColor,//0x3F4484F4, + Alpha = 0.4f, + }; + msgView.AddChidren(btngb); + + Button btnMsgIcon; + btnMsgIcon = new Button() + { + X = Application.GetRealWidth(12), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(24), + Height = Application.GetMinRealAverage(24), + UnSelectedImagePath = "Collection/MsgIcon.png", + SelectedImagePath = "Collection/MsgIconTip.png", + }; + msgView.AddChidren(btnMsgIcon); + + Button btnMsg; + btnMsg = new Button() + { + X = Application.GetRealWidth(10) + btnMsgIcon.Right, + Width = Application.GetRealWidth(240), + Text = "鏃�", + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft, + }; + msgView.AddChidren(btnMsg); + + Button btnMsgTime; + btnMsgTime = new Button() + { + X = Application.GetRealWidth(299), + Width = Application.GetRealWidth(44), + Text = "00:00", + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft, + }; + msgView.AddChidren(btnMsgTime); + #endregion + + #endregion + + #region 鍔熻兘鍦烘櫙鍒囨崲 + changeView = new FrameLayout() + { + Y = Application.GetRealHeight(20) + topView.Bottom, + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(230), + Height = Application.GetRealHeight(62), + BackgroundImagePath = "Collection/ChangeViewbg.png", + }; + bodyView.AddChidren(changeView); + + btnChangeFunction = new Button() + { + Width = Application.GetRealWidth(114), + TextID = StringId.Functions, + SelectedTextColor = CSS_Color.MainColor, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.HeadlineFontSize, + TextAlignment = TextAlignment.Center, + IsSelected = true, + IsBold = true + }; + changeView.AddChidren(btnChangeFunction); + + Button btnLine = new Button() + { + X = btnChangeFunction.Right, + Gravity = Gravity.CenterVertical, + Width = Application.GetRealWidth(1), + Height = Application.GetRealHeight(14), + BackgroundColor = CSS_Color.PromptingColor1, + }; + changeView.AddChidren(btnLine); + + btnChangeScene = new Button() + { + X = btnLine.Right, + Width = Application.GetRealWidth(114), + TextID = StringId.Scenes, + SelectedTextColor = CSS_Color.MainColor, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.TextFontSize, + TextAlignment = TextAlignment.Center, + }; + changeView.AddChidren(btnChangeScene); + #endregion + + #region ContextView + contentView = new PageLayout() + { + Y = changeView.Bottom , + Height = Application.GetRealHeight(310 + 30 + 10), //20涓鸿秴鍑洪儴鍒� + }; + bodyView.AddChidren(contentView); + + functionViews = new List<FrameLayout>(); + + deviceFunctionView = new VerticalScrolViewLayout(); + contentView.AddChidren(deviceFunctionView); + LoadDeviceFunctionControlZone(); + sceneFunctionView = new VerticalScrolViewLayout(); + contentView.AddChidren(sceneFunctionView); + LoadSceneFunctionControlZone(); + contentView.PageIndex = 0; + + #endregion + + LoadEvent_ChangeShowedFunctionType(); + } + catch (Exception ex) { - X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(32), - Width = Application.GetRealWidth(200), - Height = Application.GetRealHeight(33), - TextColor = CSS.CSS_Color.MainBackgroundColor, - TextSize = CSS.CSS_FontSize.EmphasisFontSize_FirstLevel, - TextAlignment = TextAlignment.CenterLeft, - Text = DB_ResidenceData.residenceData.residenceName, - IsBold = true - }; - topView.AddChidren(btnResidenceName); + MainPage.Log($"HomePage LoadPage Error : {ex.Message}"); + } + } - environmentalView = new FrameLayout() - { - Y = Application.GetRealHeight(1) + btnResidenceName.Bottom, - Height = Application.GetRealHeight(32), - }; - topView.AddChidren(environmentalView); - #region 鐜鏁版嵁 - Button btnTempIcon = new Button() - { - X = Application.GetRealWidth(12), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(16), - Height = Application.GetMinRealAverage(16), - UnSelectedImagePath = "Public/InfoIcon/TempIcon.png", - }; - environmentalView.AddChidren(btnTempIcon); - - btnTempValues = new Button() - { - X = btnTempIcon.Right + Application.GetRealWidth(4), - Width = Application.GetRealWidth(30), - Gravity = Gravity.CenterVertical, - TextColor = CSS.CSS_Color.MainBackgroundColor, - TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, - Text = "--掳", - TextAlignment = TextAlignment.CenterLeft, - }; - environmentalView.AddChidren(btnTempValues); - - Button btnHumidityIcon = new Button() - { - X = btnTempValues.Right + Application.GetRealWidth(2), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(16), - Height = Application.GetMinRealAverage(16), - UnSelectedImagePath = "Public/InfoIcon/HumidityIcon.png", - }; - environmentalView.AddChidren(btnHumidityIcon); - - btnHumidityValues = new Button() - { - X = btnHumidityIcon.Right + Application.GetRealWidth(4), - Width = Application.GetRealWidth(30), - Gravity = Gravity.CenterVertical, - TextColor = CSS.CSS_Color.MainBackgroundColor, - TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, - Text = "--%", - TextAlignment = TextAlignment.CenterLeft, - }; - environmentalView.AddChidren(btnHumidityValues); - - Button btnPm25Icon = new Button() - { - X = btnHumidityValues.Right + Application.GetRealWidth(2), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(16), - Height = Application.GetMinRealAverage(16), - UnSelectedImagePath = "Public/InfoIcon/Pm25Icon.png", - }; - environmentalView.AddChidren(btnPm25Icon); - - btnPm25Values = new Button() - { - X = btnPm25Icon.Right + Application.GetRealWidth(4), - Width = Application.GetRealWidth(30), - Gravity = Gravity.CenterVertical, - TextColor = CSS.CSS_Color.MainBackgroundColor, - TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, - Text = "--", - TextAlignment = TextAlignment.CenterLeft, - }; - environmentalView.AddChidren(btnPm25Values); - #endregion - - - #region msg - FrameLayout msgView; - msgView = new FrameLayout() - { - Y = Application.GetRealHeight(164), - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(28), - }; - topView.AddChidren(msgView); - - var btngb = new Button() - { - BackgroundColor = CSS.CSS_Color.MainColor,//0x3F4484F4,// - Alpha = 0.4f, - }; - msgView.AddChidren(btngb); - - Button btnMsgIcon; - btnMsgIcon = new Button() - { - X = Application.GetRealWidth(12), - Gravity = Gravity.CenterVertical, - Width = Application.GetMinRealAverage(24), - Height = Application.GetMinRealAverage(24), - UnSelectedImagePath = "Collection/MsgIcon.png", - SelectedImagePath = "Collection/MsgIconTip.png", - }; - msgView.AddChidren(btnMsgIcon); - - Button btnMsg; - btnMsg = new Button() - { - X = Application.GetRealWidth(10) + btnMsgIcon.Right, - Width = Application.GetRealWidth(240), - Text = "鏃�", - TextColor = CSS.CSS_Color.MainBackgroundColor, - TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, - TextAlignment = TextAlignment.CenterLeft, - }; - msgView.AddChidren(btnMsg); - - Button btnMsgTime; - btnMsgTime = new Button() - { - X = Application.GetRealWidth(299), - Width = Application.GetRealWidth(44), - Text = "00:00", - TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, - TextAlignment = TextAlignment.CenterLeft, - }; - msgView.AddChidren(btnMsgTime); - - #endregion - - #endregion - - - #region 鍔熻兘鍦烘櫙鍒囨崲 - - - FrameLayout changeView; - changeView = new FrameLayout() - { - Y = Application.GetRealHeight(20) + topView.Bottom, - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(230), - Height = Application.GetRealHeight(62), - BackgroundImagePath = "Collection/ChangeViewbg.png", - }; - 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, - IsBold = true - }; - changeView.AddChidren(btnChangeFunction); - - Button btnLine = new Button() - { - X = btnChangeFunction.Right, - Gravity = Gravity.CenterVertical, - Width = Application.GetRealWidth(1), - Height = Application.GetRealHeight(14), - BackgroundColor = CSS.CSS_Color.PromptingColor1, - }; - changeView.AddChidren(btnLine); - - Button btnChangeScene; - btnChangeScene = new Button() - { - X = btnLine.Right, - Width = Application.GetRealWidth(114), - TextID = StringId.Scenes, - 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 - - + /// <summary> + /// 鍔犺浇璁惧鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + void LoadDeviceFunctionControlZone() + { #region ContextView - VerticalScrolViewLayout contextView; - contextView = new VerticalScrolViewLayout() - { - Y = changeView.Bottom + Application.GetRealHeight(10), - Height = Application.GetRealHeight(310 + 30), //20涓鸿秴鍑洪儴鍒� - - }; - bodyView.AddChidren(contextView); - - LightViews = new Dictionary<string, FrameLayout>(); - AcViews = new Dictionary<string, FrameLayout>(); - CurtainViews = new Dictionary<string, FrameLayout>(); + deviceFunctionView.RemoveAll(); + functionViews.Clear(); var rowView = new FrameLayout(); try { int index = 0; - foreach (var function in DB_ResidenceData.residenceData.functions.functions) + foreach (var function in DB_ResidenceData.functionList.GetAllDeviceFunctionList()) { - if (!function.collection) - continue; + //闊充箰妯″潡鏈変富浠庡叧绯伙紝闇�瑕佺壒娈婂鐞� + if (function.functionCategory == FunctionCategory.Music) + { + var music = function as Music.A31MusicModel; + if (music.ServerClientType == -1) + { + continue; + } + else if (music.ServerClientType == 1) + { + if (!music.MainPlayCollection) + { + continue; + } + } + else + { + if (!music.collection) + { + continue; + } + } + } + else + { + if (!function.collection) + continue; + //if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず + //{ + // function.collection = false; + // continue; + //} + } if (index % 2 == 0) { rowView = new FrameLayout() { - Height = Application.GetRealHeight(140), + 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.GetRealHeight(140), + Height = Application.GetRealWidth(140), + Radius = (uint)Application.GetRealWidth(12), Tag = function.sid }; rowView.AddChidren(functionView); + var btnbg = new Button() { UnSelectedImagePath = "Collection/Functionbg.png", SelectedImagePath = "Collection/FunctionOnbg.png", + Tag = function.sid }; functionView.AddChidren(btnbg); - switch (function.functionCategory) - { - case FunctionType.Light: - #region 鐏厜 Light - LightViews.Add(function.sid, functionView); - #endregion - break; - case FunctionType.Curtain: - #region 绐楀笜 - CurtainViews.Add(function.sid, functionView); - #endregion - break; - case FunctionType.AC: - #region 绌鸿皟 AC - AcViews.Add(function.sid, functionView); - #endregion - break; - - } - LoadControlView(functionView, function); + functionViews.Add(functionView); + LoadDeviceFunctionDiv(functionView, function); index++; + } + + if (index == 0) + { + var view = new FrameLayout(); + deviceFunctionView.AddChidren(view); + + var btnNoCollectionBg = new Button() + { + Y = Application.GetRealHeight(20), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(180), + Height = Application.GetRealWidth(180), + UnSelectedImagePath = "Collection/NoCollectionBg.png", + }; + view.AddChidren(btnNoCollectionBg); + + var btnNoCollectionTip = new Button() + { + Height = Application.GetRealHeight(42), + Y = btnNoCollectionBg.Bottom, + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.TipNoFunctionCollcetion, + }; + view.AddChidren(btnNoCollectionTip); + } + } + catch (Exception ex) + { + MainPage.Log("homepage error : " + ex.Message); + } + deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); + #endregion + + } + /// <summary> + /// 鍔犺浇鍦烘櫙鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + void LoadSceneFunctionControlZone() + { + sceneFunctionView.RemoveAll(); + var rowView = new FrameLayout(); + try + { + int index = 0; + foreach (var function in DB_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); + + LoadSceneFunctionDiv( functionView, function); + index++; + } + + if (index == 0) + { + var view = new FrameLayout(); + sceneFunctionView.AddChidren(view); + + var btnNoCollectionBg = new Button() + { + Y = Application.GetRealHeight(20), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(180), + Height = Application.GetRealWidth(180), + UnSelectedImagePath = "Collection/NoCollectionBg.png", + }; + view.AddChidren(btnNoCollectionBg); + + var btnNoCollectionTip = new Button() + { + Height = Application.GetRealHeight(42), + Y = btnNoCollectionBg.Bottom, + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.TipNoSceneCollcetion, + }; + view.AddChidren(btnNoCollectionTip); } } catch (Exception ex) { MainPage.Log("homepage erorr : " + ex.Message); } - contextView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); - #endregion + sceneFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); - - DB_ResidenceData.residenceData.RefreshResidenceFunctionStatus(); } + /// <summary> - /// 鍔犺浇鎺у埗鍗$墖 + /// 鍔犺浇鍔熻兘鎺у埗鍗$墖 /// </summary> - void LoadControlView(FrameLayout view,Function function) + void LoadDeviceFunctionDiv(FrameLayout view, Function function) { try { @@ -365,7 +555,7 @@ btnIcon = new Button() { X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(16), + Y = Application.GetRealWidth(16), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), }; @@ -375,12 +565,12 @@ btnName = new Button() { X = Application.GetRealWidth(21), - Y = Application.GetRealHeight(10) + btnIcon.Bottom, + Y = Application.GetRealWidth(10) + btnIcon.Bottom, Text = function.name, IsBold = true, - TextColor = CSS.CSS_Color.FirstLevelTitleColor, - TextSize = CSS.CSS_FontSize.TextFontSize, - Height = Application.GetRealHeight(24), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + Height = Application.GetRealWidth(24), Width = Application.GetRealWidth(140), TextAlignment = TextAlignment.CenterLeft, }; @@ -391,38 +581,26 @@ { X = Application.GetRealWidth(21), Y = btnName.Bottom, - Height = Application.GetRealHeight(18), + Height = Application.GetRealWidth(18), Width = Application.GetRealWidth(113), - TextColor = CSS.CSS_Color.PromptingColor1, - TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextAlignment = TextAlignment.CenterLeft, - SelectedTextColor = CSS.CSS_Color.MainBackgroundColor, + SelectedTextColor = 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() { X = Application.GetRealWidth(21), Y = btnZone.Bottom, - Height = Application.GetRealHeight(18), + Height = Application.GetRealWidth(18), Width = Application.GetRealWidth(113), - SelectedTextColor = CSS.CSS_Color.MainBackgroundColor, + SelectedTextColor = CSS_Color.MainBackgroundColor, TextColor = 0x00000000, - TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextAlignment = TextAlignment.CenterLeft, Tag = "state", Text = function.lastState @@ -433,82 +611,272 @@ btnCollection = new Button() { X = Application.GetRealWidth(130), - Y = Application.GetRealHeight(16), + Y = Application.GetRealWidth(16), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), SelectedImagePath = "Collection/CollectionWhiteIcon.png", UnSelectedImagePath = "Collection/CollectionIcon.png", }; view.AddChidren(btnCollection); - btnCollection.MouseUpEventHandler += (sender, e) => { - //btnCollection.IsSelected = !btnCollection.IsSelected; - }; + LoadEvent_FunctionCollection(btnCollection, function, true); - Button btnSwitch; - btnSwitch = new Button() + if (function.functionCategory == FunctionCategory.Curtain) { - X = Application.GetRealWidth(122), - Y = Application.GetRealHeight(92), - Width = Application.GetMinRealAverage(48), - Height = Application.GetMinRealAverage(36), - UnSelectedImagePath = "Collection/Switch.png", - SelectedImagePath = "Collection/SwitchOn.png", - }; - view.AddChidren(btnSwitch); + btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png"; + Button btnCurtainClose; + btnCurtainClose = new Button() + { + X = Application.GetRealWidth(84), + Y = Application.GetRealWidth(89), + Width = Application.GetRealWidth(44), + Height = Application.GetRealWidth(44), + UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseBlueIcon_Shadow.png", + SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseWhiteIcon_Shadow.png", + }; + view.AddChidren(btnCurtainClose); - switch (function.functionCategory) - { - case FunctionType.Light: - #region 鐏厜 Light - btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png"; - btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png"; - LoadSwitchEvent(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) => - //{ - // var curState = !btnSwitch.IsSelected; - // for (int i = 0; i < view.ChildrenCount; i++) - // { - // if (view.GetChildren(i).GetType() == typeof(Button)) - // { - // var btn = view.GetChildren(i) as Button; - // btn.IsSelected = curState; - // } - // } - // new System.Threading.Thread(() => - // { - // var light = function as Light; - // light.state = btnSwitch.IsSelected ? 1 : 0; - // Control.Send("write", function, 3); - // }) - // { IsBackground = true }.Start(); - //}; - #endregion - break; - case FunctionType.Curtain: - #region 绐楀笜 - btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png"; - btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png"; - #endregion - break; - case FunctionType.AC: - #region 绌鸿皟 AC - btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png"; - btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png"; - #endregion - break; - case FunctionType.FloorHeating: - #region 鍦扮儹 - btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png"; - btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png"; - #endregion - break; + Button btnCurtainOpen; + btnCurtainOpen = new Button() + { + X = btnCurtainClose.Right, + Y = Application.GetRealWidth(89), + Width = Application.GetRealWidth(44), + Height = Application.GetRealWidth(44), + UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenBlueIcon_Shadow.png", + SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenWhiteIcon_Shadow.png", + }; + view.AddChidren(btnCurtainOpen); + + LoadEvent_ControlCurtain(function as Curtain, btnCurtainClose, btnCurtainOpen); } - }catch(Exception ex) + + else if (function.functionType == FunctionType.TV) + { + btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVIcon.png"; + Button btnPower; + btnPower = new Button() + { + X = Application.GetRealWidth(131), + Y = Application.GetRealHeight(86), + Width = Application.GetRealWidth(32), + Height = Application.GetRealWidth(32), + UnSelectedImagePath = "Public/PowerClose.png", + }; + view.AddChidren(btnPower); + LoadEvent_ControlTV(function as TV, btnPower); + } + + else if (function.functionCategory == FunctionCategory.Music) + { + btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/Music/MusicOnIcon.png"; + Button btnPower; + btnPower = new Button() + { + X = Application.GetRealWidth(118), + Y = Application.GetRealWidth(83), + Width = Application.GetRealWidth(44), + Height = Application.GetRealWidth(44), + UnSelectedImagePath = "FunctionIcon/Music/MusicPlayIcon.png", + SelectedImagePath = "FunctionIcon/Music/MusicPlayOnIcon.png", + }; + view.AddChidren(btnPower); + var a31player = (function as UI.Music.A31MusicModel); + btnState.Text = a31player.A31PlayStatus.Title; + + btnState.SelectedTextColor = CSS_Color.MainBackgroundColor; + btnState.TextColor = CSS_Color.MainBackgroundColor;//PromptingColor1 + + //Music.SendMethod.ReadStatus(a31player); + + btnPower.MouseUpEventHandler = (sender, e) => { + if (btnPower.IsSelected) + { + btnPower.IsSelected = false; + Music.SendMethod.Pause(a31player); + a31player.A31PlayStatus.status = "pause"; + a31player.trait_on_off.value = "off"; + } + else + { + btnPower.IsSelected = true; + Music.SendMethod.Play(a31player); + a31player.A31PlayStatus.status = "play"; + a31player.trait_on_off.value = "on"; + } + UpdataFunctionStates(a31player); + }; + } + + else + { + Button btnSwitch; + btnSwitch = new Button() + { + X = Application.GetRealWidth(122), + Y = Application.GetRealWidth(92), + Width = Application.GetMinRealAverage(48), + Height = Application.GetMinRealAverage(36), + UnSelectedImagePath = "Public/Switch.png", + SelectedImagePath = "Public/SwitchOn.png", + }; + view.AddChidren(btnSwitch); + + switch (function.functionCategory) + { + case FunctionCategory.Light: + #region 鐏厜 Light + btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png"; + UpdataFunctionStates(function as Light); + #endregion + break; + case FunctionCategory.Thermostat: + switch (function.functionType) + { + case FunctionType.AC: + #region 绌鸿皟 AC + btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png"; + #endregion + break; + case FunctionType.FloorHeating: + #region 鍦扮儹 + btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png"; + #endregion + break; + } + break; + case FunctionCategory.SwitchDevice: + switch (function.functionType) + { + case FunctionType.Socket: + btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png"; + break; + } + break; + case FunctionCategory.Electrical: + switch (function.functionType) + { + case FunctionType.Fan: + btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png"; + btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png"; + break; + } + break; + } + LoadEvent_SwitchFunction(function, btnSwitch); + } + var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, new Button(), new Button(), new Button()); + view.MouseUpEventHandler = skipControlPageEvent; + btnName.MouseUpEventHandler = skipControlPageEvent; + btnIcon.MouseUpEventHandler = skipControlPageEvent; + btnState.MouseUpEventHandler = skipControlPageEvent; + //鐢佃涓嶉渶瑕佹洿鏂扮姸鎬� + if(function.functionType!= FunctionType.TV) + { + UpdataFunctionStates(function); + } + } + 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", + }; + view.AddChidren(btnCoverd); + + Button btnSettingIcon; + btnSettingIcon = new Button() + { + X = Application.GetRealWidth(4), + Y = Application.GetRealWidth(4), + Height = Application.GetRealWidth(32), + Width = Application.GetRealWidth(32), + //UnSelectedImagePath = "FunctionIcon/Scene/DelayIcon.png", + UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png", + }; + view.AddChidren(btnSettingIcon); + + 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_Color.MainBackgroundColor, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + TextAlignment = TextAlignment.CenterLeft, + SelectedTextColor = 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); + LoadEvent_FunctionCollection(btnCollection, function, false); + + LoadEvent_ControlScene(btnCoverd,btnName,btnZone, function); + + btnSettingIcon.MouseUpEventHandler = (sender, e) => { + Action backAction = () => { + //LoadSceneFunctionControlZone(); + }; + Action refreshAction = () => { + btnName.Text = function.name; + btnZone.Text = function.GetRoomListName(); + view.BackgroundImagePath = (function as Scene).ImagePath; + }; + var aep = new SceneEditPage(function as Scene, backAction); + MainPage.BasePageView.AddChidren(aep); + aep.LoadPage(StringId.EditScene, refreshAction); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + } + catch (Exception ex) + { + MainPage.Log("homepage LoadControlView error : " + ex.Message); + } + } + } -} +} \ No newline at end of file -- Gitblit v1.8.0