From b69d7735274b8d0f741da8a6bb8b8e1347477a5a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 19 三月 2020 17:14:16 +0800
Subject: [PATCH] 20200319

---
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs |  388 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 292 insertions(+), 96 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index bc023c9..e0eb990 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -22,12 +22,16 @@
         /// </summary>
         Button btnFuncTitle;
         #endregion
-
+        /// <summary>
+        /// 鎴块棿/鍔熻兘鍒嗛〉鍖哄煙
+        /// </summary>
+        PageLayout contentPageView;
         #region 鎴块棿鍖哄煙
+        FrameLayout roomPageView;
         /// <summary>
         /// 鎴块棿鍐呭鏄剧ず鍖哄煙
         /// </summary>
-        FrameLayout roomContentView;
+        FrameLayout roomFloorChangeView;
         #region 鎴块棿搴曢儴鍒囨崲鏄剧ず鍖哄煙
         /// <summary>
         /// 鎴块棿鍖哄煙锛岄《閮ㄥ尯鍩�
@@ -54,6 +58,11 @@
         /// 鎴块棿鍖哄煙闆嗗悎
         /// </summary>
         List<FrameLayout> roomViewList;
+        #endregion
+
+        #region 鍔熻兘鍖哄煙
+        VerticalScrolViewLayout functionsPageView;
+
         #endregion
 
 
@@ -99,25 +108,41 @@
                 TextSize = CSS_FontSize.TextFontSize,
                 TextColor = CSS_Color.PromptingColor1,
                 SelectedTextColor = CSS_Color.MainColor,
-                TextID = StringId.Devices,
+                TextID = StringId.Functions,
             };
             topView.AddChidren(btnFuncTitle);
-
             #endregion
 
+            contentPageView = new PageLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(667 - 64-49+20),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                IsShowPoint = false
+            };
+            bodyView.AddChidren(contentPageView);
 
+            LoadRoomPageView();
+            LoadFunctionPageView();
+            LoadEventList();
+        }
 
+        /// <summary>
+        /// 鍔犺浇鎴块棿鍒楄〃鐣岄潰
+        /// </summary>
+        void LoadRoomPageView()
+        {
             #region 鎴块棿鍖哄煙
+            roomPageView = new FrameLayout();
+            contentPageView.AddChidren(roomPageView);
             /// <summary>
             /// 鎴块棿鍐呭鏄剧ず鍖哄煙
             /// </summary>
-            roomContentView = new FrameLayout()
+            roomFloorChangeView = new FrameLayout()
             {
-                Y = Application.GetRealHeight(64),
                 Height = Application.GetRealHeight(52),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
             };
-            bodyView.AddChidren(roomContentView);
+            roomPageView.AddChidren(roomFloorChangeView);
             #region 鎴块棿搴曢儴鍒囨崲鏄剧ず鍖哄煙
             /// <summary>
             /// 鎴块棿鍖哄煙锛岄《閮ㄥ尯鍩�
@@ -126,7 +151,7 @@
             {
                 Height = Application.GetRealHeight(53),
             };
-            roomContentView.AddChidren(roomTopView);
+            roomFloorChangeView.AddChidren(roomTopView);
             /// <summary>
             /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣
             /// </summary>
@@ -138,7 +163,7 @@
                 Y = Application.GetRealHeight(18),
                 UnSelectedImagePath = "Public/DownIcon.png",
             };
-            roomContentView.AddChidren(btnFoorDownIcon);
+            roomFloorChangeView.AddChidren(btnFoorDownIcon);
             /// <summary>
             /// 妤煎眰鏄剧ず
             /// </summary>
@@ -153,7 +178,7 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 Text = UserConfig.Instance.CurFoor,
             };
-            roomContentView.AddChidren(btnFoor);
+            roomFloorChangeView.AddChidren(btnFoor);
             /// <summary>
             /// 鏄剧ず鏂瑰紡鍒囨崲鎸夐挳
             /// </summary>
@@ -166,7 +191,7 @@
                 UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缂╃暐鍥�
                 SelectedImagePath = "Classification/ToggleDisplayLarge.png",
             };
-            roomContentView.AddChidren(btnSwitchDipaly);
+            roomFloorChangeView.AddChidren(btnSwitchDipaly);
             #endregion
 
 
@@ -175,95 +200,15 @@
             /// </summary>
             roomListView = new VerticalScrolViewLayout()
             {
-                Y = roomContentView.Bottom,
-                Height = Application.GetRealHeight(497 + 10+30),
+                Y = roomFloorChangeView.Bottom,
+                Height = Application.GetRealHeight(497 + 10 + 30),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
             };
-            bodyView.AddChidren(roomListView);
+            roomPageView.AddChidren(roomListView);
             /// <summary>
             /// 鎴块棿鍖哄煙闆嗗悎
             /// </summary>
             roomViewList = new List<FrameLayout>();
-
-
-#if DEBUG1
-            var r = new Room() { sid = "0001", name = "Room-1", floor = "1F", backgroundImage = "Classification/Room/Roombg.png" };
-            r.functions.Add(new Function()
-            {
-                sid = "000000000000000000000000000000000001",
-                funcType = FunctionType.AC,
-                name = "绌鸿皟",
-                roomIdList = new List<string>() { "0001" },
-                lastState = "鍒跺喎 涓 18掳C",
-                bus_Data = "{" +
-                        "\"SubnetID\":42" + "," +
-                        "\"DeviceID\":8" + "," +
-                        "\"LoopID\":1" +
-                        "}",
-            });
-            r.functions.Add(new Dimmer()
-            {
-                sid = "0001002019101209000025670400010002",
-                funcType = FunctionType.Light,
-                name = "瀹㈠巺鐏�",
-                roomIdList = new List<string>() { "0001" },
-                lastState = "20%",
-                bus_Data = "{" +
-                        "\"SubnetID\":111" + "," +
-                        "\"DeviceID\":2" + "," +
-                        "\"LoopID\":1" +
-                        "}",
-            });
-            r.functions.Add(new MotorCurtain()
-            {
-                sid = "000000000000000000000000000000000003",
-                funcType = FunctionType.Curtain,
-                name = "绐楀笜",
-                roomIdList = new List<string>() { "0001" },
-                lastState = "20%",
-                bus_Data = "{" +
-                        "\"SubnetID\":42" + "," +
-                        "\"DeviceID\":7" + "," +
-                        "\"LoopID\":1" +
-                        "}",
-            });
-            r.functions.Add(new Function()
-            {
-                sid = "000000000000000000000000000000000004",
-                funcType = FunctionType.FloorHeating,
-                name = "鍦扮儹",
-                roomIdList = new List<string>() { "0001" },
-                lastState = ""
-            });
-            r.functions.Add(new Light()
-            {
-                sid = "0001002019101209000025670400010005",
-                funcType = FunctionType.Light,
-                name = "瀹㈠巺澶х伅",
-                roomIdList = new List<string>() { "0001" },
-                bus_Data = "{" +
-                        "\"SubnetID\":111" + "," +
-                        "\"DeviceID\":6" + "," +
-                        "\"LoopID\":1" +
-                        "}",
-            });
-            r.functions.Add(new RGBLight()
-            {
-                sid = "0001002019101209000025670500010006",
-                funcType = FunctionType.Light,
-                name = "瀹㈠巺RGB鐏�",
-                roomIdList = new List<string>() { "0001" },
-                bus_Data = "{" +
-                        "\"SubnetID\":222" + "," +
-                        "\"DeviceID\":222" + "," +
-                        "\"LoopID\":222" +
-                        "}",
-            });
-
-            DB_ResidenceData.residenceData.rooms.Add(r);
-
-#endif
-
 
             foreach (var room in DB_ResidenceData.residenceData.rooms)
             {
@@ -311,7 +256,7 @@
                     Height = Application.GetRealHeight(32),
                     Tag = "EnvironmentalView",
                 };
-                topView.AddChidren(environmentalView);
+                roomView.AddChidren(environmentalView);
 
                 Button btnTempIcon = new Button()
                 {
@@ -420,5 +365,256 @@
             #endregion
 
         }
+
+        /// <summary>
+        /// 鍔犺浇鍔熻兘鍒楄〃鐣岄潰
+        /// </summary>
+        void LoadFunctionPageView()
+        {
+            #region
+            functionsPageView = new VerticalScrolViewLayout()
+            {
+                BackgroundColor = CSS_Color.BackgroundColor,
+                Height = Application.GetRealHeight(667 - 64 - 49 + 20),
+            };
+            contentPageView.AddChidren(functionsPageView);
+
+            FrameLayout functionContentView;
+            functionContentView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(16),
+                Height = Application.GetRealHeight(667 - 64 - 49 + 20),
+            };
+
+            if (DB_ResidenceData.residenceData.functionTypeList.Count > 4)
+            {
+                functionContentView.Height += Application.GetRealHeight((220  * (DB_ResidenceData.residenceData.functionTypeList.Count - 4 - 2) / 2) + 20);
+            }
+            functionsPageView.AddChidren(functionContentView);
+
+            int index = 0;
+            List<int> specialList = new List<int>() { 1, 2, 5, 6, 9, 10, 13, 14, 17, 18, 21, 22 };
+
+            var s1View = new FrameLayout()
+            {
+                X = Application.GetRealWidth(16),
+                Width = Application.GetRealWidth(164),
+            };
+            functionContentView.AddChidren(s1View);
+
+            var s2View = new FrameLayout()
+            {
+                X = Application.GetRealWidth(196),
+                Width = Application.GetRealWidth(164),
+            };
+            functionContentView.AddChidren(s2View);
+
+            var lastY1 = Application.GetRealWidth(16);
+            var lastY2 = Application.GetRealWidth(16);
+
+            foreach (var item in DB_ResidenceData.residenceData.functionTypeList)
+            {
+                FrameLayout functionView = new FrameLayout()
+                {
+                    Height = Application.GetRealWidth(161),
+                    Radius = (uint)Application.GetRealHeight(6),
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                    Y = index % 2 == 1 ? lastY2 : lastY1
+                };
+                //楂樺害绋嶉珮鐨剉iew
+                if (specialList.Contains(index))
+                {
+                    functionView.Height = Application.GetRealWidth(204);
+                }
+                if (index % 2 == 1)
+                {
+                    lastY2 += functionView.Height + Application.GetRealWidth(16);
+                }
+                else
+                {
+                    lastY1 += functionView.Height + Application.GetRealWidth(16);
+                }
+
+                if (index % 2 == 0)
+                {
+                    s1View.AddChidren(functionView);
+                }
+                else
+                {
+                    s2View.AddChidren(functionView);
+                }
+
+                Button btnFunctionViewBg;
+                btnFunctionViewBg = new Button()
+                {
+                    Height = Application.GetRealWidth(161),
+                    UnSelectedImagePath = "FunctionIcon/FunctionBg/" + item + "FunctionBg.png",
+                };
+                functionView.AddChidren(btnFunctionViewBg);
+
+                Button btnName = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealHeight(14),
+                    Width = Application.GetRealWidth(120),
+                    Height = Application.GetRealHeight(24),
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextAlignment = TextAlignment.CenterLeft,
+                };
+                functionView.AddChidren(btnName);
+
+
+                int functionCount = 0;
+                switch (item)
+                {
+                    case "Light":
+                        #region Light
+                        btnName.TextID = StringId.Lights;
+                        functionCount = DB_ResidenceData.residenceData.functionList.lights.Count;
+                        Button btnLightPower = new Button()
+                        {
+                            X = Application.GetRealWidth(120),
+                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
+                            Width = Application.GetRealWidth(32),
+                            Height = Application.GetRealWidth(32),
+                            SelectedImagePath = "Public/PowerOpen.png",
+                            UnSelectedImagePath = "Public/PowerClose.png",
+                        };
+                        functionView.AddChidren(btnLightPower);
+                        btnLightPower.MouseUpEventHandler = (sender, e) => {
+                            LoadEvent_LightsPower(btnLightPower);
+                        };
+                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) => {
+                            var skipView = new FunctionPage();
+                            MainPage.BasePageView.AddChidren(skipView);
+                            skipView.LoadPage(StringId.Lights);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        };
+                        #endregion
+                        break;
+                    case "AC":
+                        #region AC
+                        btnName.TextID = StringId.AC;
+                        functionCount = DB_ResidenceData.residenceData.functionList.aCs.Count;
+                        Button btnAcPower = new Button()
+                        {
+                            X = Application.GetRealWidth(120),
+                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
+                            Width = Application.GetRealWidth(32),
+                            Height = Application.GetRealWidth(32),
+                            SelectedImagePath = "Public/PowerOpen.png",
+                            UnSelectedImagePath = "Public/PowerClose.png",
+                        };
+                        functionView.AddChidren(btnAcPower);
+                        btnAcPower.MouseUpEventHandler = (sender, e) => {
+                            LoadEvent_LightsPower(btnAcPower);
+                        };
+                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) => {
+                            var skipView = new FunctionPage();
+                            MainPage.BasePageView.AddChidren(skipView);
+                            skipView.LoadPage(StringId.AC);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        };
+                        #endregion
+                        break;
+                    case "Curtain":
+                        #region Curtain
+                        btnName.TextID = StringId.Curtain;
+                        functionCount = DB_ResidenceData.residenceData.functionList.curtains.Count;
+
+                        Button btnClose;
+                        btnClose = new Button()
+                        {
+                            X = Application.GetRealWidth(72),
+                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
+                            Width = Application.GetRealWidth(32),
+                            Height = Application.GetRealWidth(32),
+                            UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
+                            SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
+                        };
+                        functionView.AddChidren(btnClose);
+
+                        Button btnOpen;
+                        btnOpen = new Button()
+                        {
+                            X = Application.GetRealWidth(120),
+                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
+                            Width = Application.GetRealWidth(32),
+                            Height = Application.GetRealWidth(32),
+                            UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
+                            SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
+                        };
+                        functionView.AddChidren(btnOpen);
+                        LoadEvent_CurtainSwitch(btnClose, btnOpen);
+
+                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) => {
+                            var skipView = new FunctionPage();
+                            MainPage.BasePageView.AddChidren(skipView);
+                            skipView.LoadPage(StringId.Curtain);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        };
+                        #endregion
+                        break;
+                    case "FloorHeating":
+                        btnName.TextID = StringId.FloorHeating;
+                        break;
+                    case "DoorLock":
+                        btnName.TextID = StringId.DoorLock;
+                        break;
+                    case "Electric":
+                        btnName.TextID = StringId.Electric;
+                        break;
+                    case "EnergyMonitoring":
+                        btnName.TextID = StringId.EnergyMonitoring;
+                        break;
+                    case "Environmental":
+                        btnName.TextID = StringId.Environmental;
+                        break;
+                    case "FreshAir":
+                        btnName.TextID = StringId.FreshAir;
+                        break;
+                    case "Music":
+                        btnName.TextID = StringId.Music;
+                        break;
+                    case "Panel":
+                        btnName.TextID = StringId.Panel;
+                        break;
+                    case "SecurityMonitoring":
+                        btnName.TextID = StringId.SecurityMonitoring;
+                        break;
+                    case "Sensor":
+                        btnName.TextID = StringId.Sensor;
+                        break;
+                    case "VideoIntercom":
+                        btnName.TextID = StringId.VideoIntercom;
+                        break;
+
+                }
+
+                Button btnFunctionCount = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = btnName.Bottom,
+                    Width = Application.GetRealWidth(120),
+                    Height = Application.GetRealHeight(24),
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    Text = "0/" + functionCount.ToString()
+                };
+                functionView.AddChidren(btnFunctionCount);
+
+
+
+
+                index++;
+            }
+
+
+
+            #endregion
+
+        }
     }
 }

--
Gitblit v1.8.0