mac
2023-11-06 54c202bd4867092fca2bc6f96bec0cfd1056a46a
HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
@@ -12,7 +12,7 @@
        /// <summary>
        /// 当前窗体
        /// </summary>
        static FrameLayout bodyView;
        public static FunctionPage bodyView;
        /// <summary>
        /// 楼层选择下拉图标
        /// </summary>
@@ -28,15 +28,39 @@
        #endregion
        List<Function> functionList;
        int titleId;
        public Action DelAction;
        public FunctionPage()
        {
            bodyView = this;
            functionList = new List<Function>();
        }
        public void LoadPage(int titleId)
        /// <summary>
        /// 重载界面
        /// </summary>
        public void ReLoadPage()
        {
            if (bodyView != null)
            {
                try
                {
                    bodyView.RemoveAll();
                    LoadPage(this.titleId);
                    functionList = new List<Function>();
                }
                catch (Exception ex)
                {
                    MainPage.Log($"FunctionPage ReloadPage error :\r\n {ex.Message}");
                }
            }
        }
        public void LoadPage(int titleId_out)
        {
            this.titleId = titleId_out;
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            if (titleId == StringId.Lights && !DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl)
@@ -141,21 +165,12 @@
            if (titleId == StringId.Lights)
            {
                functionList.AddRange(FunctionList.List.groupControls);
                //functionList.AddRange(FunctionList.List.groupControls);
                functionList.AddRange(FunctionList.List.GetLightList());
                var lightScene = FunctionList.List.scenes.FindAll((obj) => obj.sceneType == SceneType.LightScene);
                foreach (var scene in lightScene)
                {
                    functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
                    var sceneRow = new SceneControlZone(scene);
                    functionListView.AddChidren(sceneRow);
                    sceneRow.LoadView();
                }
            }
            else if(titleId == StringId.HorseRaceLamp)
            {
                functionList.AddRange(FunctionList.List.GetSeries());
            }
            else if (titleId == StringId.AC)
            {
@@ -171,7 +186,9 @@
            }
            else if (titleId == StringId.Electric)
            {
                functionList.AddRange(FunctionList.List.GetElectricals());
            }
            else if (titleId == StringId.EnvironmentalScience)
            {
@@ -185,13 +202,17 @@
            {
                functionList.AddRange(FunctionList.List.GetAirFreshList());
            }
            else if(titleId == StringId.MechanicalArm)
            else if (titleId == StringId.MechanicalArm)
            {
                functionList.AddRange(FunctionList.List.GetMechanicalArmList());
            }
            else if(titleId == StringId.SecurityMonitoring)
            else if (titleId == StringId.SecurityMonitoring)
            {
                functionList.AddRange(FunctionList.List.GetIpCamImouList());
            }
            else if(titleId == StringId.EnergyMonitoring)
            {
                functionList.AddRange(FunctionList.List.GetEnergyList());
            }
            functionList = functionList.OrderByDescending(o => o.controlCounter).ToList();
@@ -200,22 +221,7 @@
            LoadDialog_ChangeFloor();
            #region 加载组合调光场景
            if (titleId == StringId.Lights)
            {
                foreach (var lightScene in FunctionList.List.scenes)
                {
                    if (lightScene.sceneType == SceneType.LightScene)
                        if (lightScene != null)
                        {
                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
                            var sceneRow = new SceneControlZone(lightScene);
                            functionListView.AddChidren(sceneRow);
                            sceneRow.LoadView();
                        }
                }
            }
            #endregion
        }
        /// <summary>
@@ -241,8 +247,24 @@
                        {
                            showCount = -1;
                            functionListView.RemoveAll();
                            #region 加载组合调光场景
                            if (titleId == StringId.Lights)
                            {
                                foreach (var lightScene in FunctionList.List.scenes)
                                {
                                    if (lightScene.sceneType == SceneType.LightScene)
                                        if (lightScene != null)
                                        {
                                            var sceneRow = new SceneControlZone(lightScene);
                                            functionListView.AddChidren(sceneRow);
                                            sceneRow.LoadView();
                                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
                                        }
                                }
                            }
                            #endregion
                        }
                        for(var i = 0;i<50;i++)
                        for (var i = 0;i<50;i++)
                        //foreach (var function in showList)
                        {
                            showCount++;
@@ -256,7 +278,7 @@
                            {
                                continue;
                            }
                            if (function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                            if (function.spk == SPK.LightCCT || function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                            {
                                var functionDiv = new FunctionControlZone(function,null)
                                {
@@ -290,9 +312,38 @@
                                functionListView.AddChidren(functionDiv);
                            }
                            else if (function.spk == SPK.ElectricalTvHisense)
                            {
                                Action deviceDelAction = () =>
                                {
                                    //删除设备成功后更新UI
                                    if (functionListView==null) {
                                        return;
                                    }
                                    functionListView.RemoveAll();
                                    showList.Remove(function);//先移除
                                    ShowFunctionRow(showList,isAppend);
                                    this.DelAction?.Invoke();
                                };
                                var functionDiv = new FunctionControlZone(function, deviceDelAction)
                                {
                                    Gravity = Gravity.CenterHorizontal,
                                    Width = Application.GetRealWidth(343),
                                    Height = Application.GetRealHeight(96),
                                    Radius = (uint)Application.GetMinRealAverage(12),
                                    BorderColor = 0x00FFFFFF,
                                    BorderWidth = 1,
                                    BackgroundColor = CSS_Color.MainBackgroundColor,
                                    Tag = function.spk + function.sid
                                };
                                functionDiv.LoadFunctionDiv();
                                functionDiv.OrderEvent = OrderEvent;
                                functionListView.AddChidren(functionDiv);
                            }
                            else
                            {
                                var functionDiv = new FunctionControlZone(function,null)
                                var functionDiv = new FunctionControlZone(function, null)
                                {
                                    Gravity = Gravity.CenterHorizontal,
                                    Width = Application.GetRealWidth(343),