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