From af1cb3ecd0f4b0589e00b28f7f9edccf39e6e12b Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 10 九月 2020 16:15:11 +0800
Subject: [PATCH] 202009101

---
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs |  225 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 159 insertions(+), 66 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index df3bb2f..5fdff81 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
+using HDL_ON.UI.Music;
 using Shared;
 
 namespace HDL_ON.UI
@@ -8,7 +9,7 @@
     public partial class FunctionControlZone : FrameLayout
     {
         #region 鍖哄煙鎺т欢
-        FrameLayout bodyDiv;
+        static FrameLayout bodyDiv;
         /// <summary>
         /// 鍔熻兘/鍦烘櫙icon
         /// </summary>
@@ -29,10 +30,15 @@
 
         #region 鍖哄煙鍙橀噺
         Function function;
+        /// <summary>
+        /// 鏄惁鍦ㄨ皟鍏�
+        /// </summary>
+        bool onDimmerBar;
         #endregion
         public FunctionControlZone(Function func)
         {
             bodyDiv = this;
+            bodyDiv.Tag = func.sid;
             function = func;
         }
 
@@ -54,15 +60,46 @@
             }
             LoadDiv();
 
-
-            if (function.functionCategory != FunctionType.Curtain)//绐楀笜娌℃湁寮�鍏虫寜閽�
+            if (function.functionCategory == FunctionCategory.Curtain || function.functionCategory == FunctionCategory.Music || function.functionCategory == FunctionCategory.Scene)//绐楀笜娌℃湁寮�鍏虫寜閽�
+            {
+                switch (function.functionCategory)
+                {
+                    case FunctionCategory.Curtain:
+                        btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
+                        CurtainFragment();
+                        break;
+                    case FunctionCategory.Music:
+                        btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png";
+                        MusicFragment();
+                        break;
+                    case FunctionCategory.Scene:
+                        btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png";
+                        if ((function as Scene).sceneType == SceneType.MovieScene)
+                        {
+                            var movieIcon = new Button()
+                            {
+                                X = Application.GetRealWidth(52),
+                                Y = Application.GetRealHeight(14),
+                                Width = Application.GetRealWidth(16),
+                                Height = Application.GetRealWidth(16),
+                                UnSelectedImagePath = "FunctionIcon/Scene/MovieMark.png",
+                            };
+                            bodyDiv.AddChidren(movieIcon);
+                            btnName.X = Application.GetRealWidth(52 + 16);
+                        }
+                        //鍔犺浇鍦烘櫙鎺у埗浜嬩欢
+                        LoadEvent_ControlScene();
+                        break;
+                }
+            }
+            else
             {
                 #region 鍔犺浇寮�鍏虫寜閽�
                 /// <summary>
                 /// 寮�鍏虫寜閽�
                 /// </summary>
                 Button btnSwitch;
-                if (function.functionType == "RGB" || function.functionType == "Dimmer")
+                if (function.functionType == FunctionType.RGB || function.functionType == FunctionType.Dimmer)
                 {
                     btnSwitch = new Button()
                     {
@@ -72,7 +109,8 @@
                         Height = Application.GetMinRealAverage(32),
                         UnSelectedImagePath = "Public/PowerClose.png",
                         SelectedImagePath = "Public/PowerOpen.png",
-                        Tag = function.functionType + "_Switch_" + function.sid
+                        IsSelected = function.trait_on_off.value.ToString() == "on",
+                        Tag = function.sid + "_Switch",
                     };
                     bodyDiv.AddChidren(btnSwitch);
                 }
@@ -86,58 +124,64 @@
                         Height = Application.GetMinRealAverage(32),
                         UnSelectedImagePath = "Public/PowerClose.png",
                         SelectedImagePath = "Public/PowerOpen.png",
-                        Tag = function.functionType + "_Switch_" + function.sid
+                        IsSelected = function.trait_on_off.value.ToString() == "on",
+                        Tag = function.sid + "_Switch",
                     };
                     bodyDiv.AddChidren(btnSwitch);
                 }
                 //鍔犺浇寮�鍏虫寜閽簨浠�
-                LoadEvent_LightSwitch(btnSwitch);
+                LoadEvent_SwitchFunction(btnSwitch);
 
                 switch (function.functionCategory)
                 {
-                    case FunctionType.AC:
-                        btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon.png";
-                        AcDiv();
-                        break;
-                    case FunctionType.Light:
-                        btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
-                        btnSwitch.IsSelected = (function as Light).on_off == 1;
-                        LoadLightControl();
-                        break;
-                    case FunctionType.FloorHeating:
-                        btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
-                        FloorHeatingDiv();
-                        break;
-                    case FunctionType.Scene:
-                        btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png";
-                        if ((function as Scene).sceneType == SceneType.MovieScene)
+                    case FunctionCategory.Thermostat:
+                        switch (function.functionType)
                         {
-                            var movieIcon = new Button()
-                            {
-                                X = Application.GetRealWidth(52),
-                                Y = Application.GetRealHeight(14),
-                                Width = Application.GetRealWidth(16),
-                                Height = Application.GetRealWidth(16),
-                                UnSelectedImagePath = "FunctionIcon/Scene/MovieMark.png",
-                            };
-                            bodyDiv.AddChidren(movieIcon);
-
-                            btnName.X = movieIcon.Right;
+                            case FunctionType.AC:
+                                btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
+                                LoadLastStatesButton();
+                                break;
+                            case FunctionType.FloorHeating:
+                                btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
+                                LoadLastStatesButton();
+                                break;
                         }
                         break;
+                    case FunctionCategory.Light:
+                        btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
+                        btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on";
+                        LoadLightControl();
+                        break;
+                    case FunctionCategory.SwitchDevice:
+                        switch (function.functionType)
+                        {
+                            case FunctionType.Socket:
+                                btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
+                                break;
+                        }
+                        btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on";
+                        break;
+                    case FunctionCategory.Electrical:
+                        switch (function.functionType)
+                        {
+                            case FunctionType.Fan:
+                                btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
+                                break;
+                            case FunctionType.TV:
+                                btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
+                                break;
+                        }
+                        btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on";
+                        break;
                 }
-
                 #endregion
             }
-            else
+
+            if (function.functionCategory != FunctionCategory.Scene)
             {
-                btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
-                CurtainFragment();
-
+                LoadEvent_DivSkipEvent();
             }
-
-            LoadEvent_DivSkipEvent();
-            LoadCollectionEvent();
+            LoadEvent_FunctionCollection();
         }
 
         /// <summary>
@@ -149,14 +193,14 @@
             {
                 X = Application.GetRealWidth(10),
                 Y = Application.GetRealHeight(15),
-                Width = Application.GetMinRealAverage(32),
-                Height = Application.GetMinRealAverage(32),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
             };
             bodyDiv.AddChidren(btnIcon);
 
             btnName = new Button()
             {
-                X = btnIcon.Right + Application.GetRealWidth(8),
+                X = Application.GetRealWidth(8 +10 + 32),
                 Y = Application.GetRealHeight(10),
                 Width = Application.GetRealWidth(200),
                 Height = Application.GetRealHeight(24),
@@ -169,8 +213,8 @@
 
             btnFromFloor = new Button()
             {
-                X = btnIcon.Right + Application.GetRealWidth(8),
-                Y = btnName.Bottom,
+                X = Application.GetRealWidth(8 + 10 + 32),
+                Y = Application.GetRealHeight(10 + 24),
                 Width = Application.GetRealWidth(200),
                 Height = Application.GetRealHeight(18),
                 Text = function.GetRoomListName(),
@@ -191,7 +235,6 @@
                 IsSelected = function.collection
             };
             bodyDiv.AddChidren(btnCollectionIcon);
-
         }
 
         /// <summary>
@@ -201,8 +244,8 @@
         {
             switch (function.functionType)
             {
-                case "Dimmer":
-                case "RGB":
+                case FunctionType.Dimmer:
+                case FunctionType.RGB:
                     #region Dimmer
                     var btnDimmerMinValues = new Button()
                     {
@@ -219,25 +262,26 @@
 
                     var dimmerControlBar = new DiyImageSeekBar()
                     {
-                        X = btnDimmerMinValues.Right,
+                        X = Application.GetRealWidth(14 + 22),
                         Y = Application.GetRealHeight(68),//91,璁捐鏁版嵁
                         Width = Application.GetRealWidth(180),
                         Height = Application.GetRealHeight(54),
                         SeekBarViewHeight = Application.GetRealHeight(8),
                         ThumbImagePath = "Public/ThumbImage.png",
                         ThumbImageHeight = Application.GetRealHeight(54),
-                        ProgressBarColor = CSS_Color.AuxiliaryColor1,
+                        ProgressBarColor = function.trait_on_off.value.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.PromptingColor2,
                         ProgressTextColor = CSS_Color.FirstLevelTitleColor,
-                        ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                        ProgressTextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                         MaxValue = 100,
                         Progress = (function as Light).brightness,
-                        Tag = function.functionType + "_DimmerBar_" + function.sid
+                        Tag = function.sid + "_DimmerBar",
+                        SeekBarPadding = Application.GetRealWidth(20),
                     };
                     bodyDiv.AddChidren(dimmerControlBar);
 
                     var btnDimmerMaxValues = new Button()
                     {
-                        X = dimmerControlBar.Right,
+                        X = Application.GetRealWidth(14 + 22+180),
                         Y = Application.GetRealHeight(85),
                         Width = Application.GetRealWidth(35),
                         Height = Application.GetRealHeight(21),
@@ -268,6 +312,7 @@
                 Height = Application.GetMinRealAverage(32),
                 UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
                 SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
+                Tag = function.functionType + "_off_" + function.sid
             };
             bodyDiv.AddChidren(btnCurtainClose);
 
@@ -290,30 +335,78 @@
                 Height = Application.GetMinRealAverage(32),
                 UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
                 SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
+                Tag = function.functionType + "_on_" + function.sid
             };
             bodyDiv.AddChidren(btnCurtainOpen);
-
-
-
+            LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function as Curtain);
             #endregion
         }
 
         /// <summary>
-        /// 鍔犺浇绌鸿皟鍔熻兘鎺у埗鍗$墖
+        /// 鍔犺浇闊充箰鍔熻兘鎺у埗鍗$墖
         /// </summary>
-        void AcDiv()
+        void MusicFragment()
         {
-            #region AC
+            #region Music
+            var btnPrev = new Button()
+            {
+                X = Application.GetRealWidth(163),
+                Y = Application.GetRealHeight(58),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "MusicIcon/prev.png",
+                SelectedImagePath = "MusicIcon/prevSeletced.png",
+            };
+            bodyDiv.AddChidren(btnPrev);
+
+            var btnPlay = new Button()
+            {
+                X = Application.GetRealWidth(233),
+                Y = Application.GetRealHeight(58),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "MusicIcon/pause.png",
+                SelectedImagePath = "MusicIcon/play.png",
+                IsSelected = (function as A31MusicModel).A31PlayStatus.status == "play" ,
+                Tag = function.functionType + "_State_" + function.sid
+            };
+            bodyDiv.AddChidren(btnPlay);
+
+            var btnNext = new Button()
+            {
+                X = Application.GetRealWidth(303),
+                Y = Application.GetRealHeight(58),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "MusicIcon/next.png",
+                SelectedImagePath = "MusicIcon/nextSelected.png",
+            };
+            bodyDiv.AddChidren(btnNext);
+            LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function as A31MusicModel);
             #endregion
         }
 
+
         /// <summary>
-        /// 鍔犺浇鍦扮儹鍔熻兘鎺у埗鍗$墖
+        /// 鍔犺浇鍔熻兘鐘舵�佷俊鎭寜閽�
         /// </summary>
-        void FloorHeatingDiv()
+        void LoadLastStatesButton()
         {
-            #region 鍦扮儹
-            #endregion
+            var btnLastStates = new Button()
+            {
+                X = Application.GetRealWidth(10 + 32 + 8),
+                Y = Application.GetRealHeight(10 + 24 + 18),
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(18),
+                Text = function.lastState,
+                TextAlignment = TextAlignment.CenterLeft,
+                SelectedTextColor = CSS_Color.PromptingColor1,
+                TextColor = 0x00000000,
+                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+                Tag = function.functionType + "_laststates_" + function.sid,
+                IsSelected = function.trait_on_off.value.ToString() == "on"
+            };
+            bodyDiv.AddChidren(btnLastStates);
         }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0