wxr
2020-09-10 af1cb3ecd0f4b0589e00b28f7f9edccf39e6e12b
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -1,6 +1,7 @@
using 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);
        }
    }
}
}