wxr
2021-07-01 43b0d5870d528f23ecd6aeceb6cfd4325188b46f
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
old mode 100755 new mode 100644
@@ -81,7 +81,7 @@
        /// </summary>
        Action refreshFunctionRowAction;
        /// <summary>
        /// 回掉更新
        /// 回调更新
        /// </summary>
        Action backAction;
        public SceneAddPage(Scene s, Action act)
@@ -196,7 +196,7 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.BelongToZone,
                TextID = StringId.LocationManagement,
            };
            belongToZoneRow.AddChidren(btnBelongToTitle);
@@ -217,7 +217,7 @@
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                Text = scene.GetRoomListName() == "" ? Language.StringByID(StringId.WholeHouseScene) : scene.GetRoomListName()
                Text = scene.GetRoomListName() == "" ? Language.StringByID(StringId.WholeZone) : scene.GetRoomListName()
            };
            belongToZoneRow.AddChidren(btnZoneName);
@@ -255,7 +255,7 @@
                    TextAlignment = TextAlignment.CenterRight,
                    TextColor = CSS_Color.PromptingColor1,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    Text = FunctionList.List.GetDelayText(scene.delay.ToString())
                    Text = scene.GetDelayText()
                };
                sceneDelayRow.AddChidren(btnSceneDelayInfo);
@@ -270,14 +270,20 @@
                };
                sceneDelayRow.AddChidren(btnSceneDelayTitle);
                btnSceneDelayTitle.MouseUpEventHandler = (sender, e) =>
                {
                    Action<string> action = (obj) => {
                        scene.delay = obj;
                        btnSceneDelayInfo.Text = FunctionList.List.GetDelayText(obj);
                        btnSceneDelayInfo.Text = scene.GetDelayText();
                    };
                    new PublicAssmebly().SetSceneDelayDialog(action ,scene.delay);
                    Dictionary<string, string> items = new Dictionary<string, string>();
                    items.Add("30", "30s");
                    items.Add("60", "1min");
                    items.Add("120", "2min");
                    items.Add("300", "5min");
                    new PublicAssmebly().SetSceneDelayDialog( action ,scene.delay);
                };
                contentView.AddChidren(new Button()
@@ -312,7 +318,7 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextID = StringId.AddFunction,
                TextID = StringId.FunctionManagement,
                IsBold = true,
            };
            addFunctionRow.AddChidren(btnAddFunctionTitle);
@@ -365,6 +371,8 @@
            LoadEventList();
        }
        /// <summary>
        /// 加载功能列表
        /// </summary>
@@ -423,7 +431,7 @@
                if (Convert.ToInt32(scenefunction.delay) > 0)
                {
                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + FunctionList.List.GetDelayText(scenefunction.delay);
                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText();
                }
                else
                {
@@ -453,20 +461,16 @@
                };
                row.AddChidren(btnFunctionFloorAndRoom);
                btnFunctionName.MouseUpEventHandler = (sender, e) =>
                EventHandler<MouseEventArgs> skipEvent= (sender, e) =>
                {
                    var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction);
                    MainPage.BasePageView.AddChidren(ssf);
                    ssf.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
                btnFunctionFloorAndRoom.MouseUpEventHandler = (sender, e) =>
                {
                    var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction);
                    MainPage.BasePageView.AddChidren(ssf);
                    ssf.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
                btnFunctionName.MouseUpEventHandler = skipEvent;
                btnFunctionFloorAndRoom.MouseUpEventHandler = skipEvent;
                Button btnDelSceneFunction = new Button()
                {
@@ -477,7 +481,6 @@
                row.AddRightView(btnDelSceneFunction);
                btnDelSceneFunction.MouseUpEventHandler = (sender, e) => {
                    scene.functions.Remove(scenefunction);
                    scene.SaveSceneData(true);
                    row.RemoveFromParent();
                    functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
                };
@@ -500,105 +503,35 @@
                }
            }
            if (sceneFunction.status.Count == 0)
            {
                return sceneFunctionInfo += Language.StringByID(StringId.Open);
            }
            sceneFunctionInfo += Language.StringByID(StringId.Open);
            var modeState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode);
            var tempState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp);
            var fanState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed);
            if (modeState != null)
            {
                sceneFunctionInfo += FunctionList.List.GetValueText(modeState.key, modeState.value);
                sceneFunctionInfo += modeState.GetValueText();
            }
            if (tempState != null)
            {
                sceneFunctionInfo += FunctionList.List.GetValueText(tempState.key, tempState.value);
                sceneFunctionInfo += FunctionList.List.GetUintString(tempState.key);
                sceneFunctionInfo += tempState.GetValueText();
                sceneFunctionInfo += tempState.GetUintString();
            }
            if (fanState != null)
            {
                sceneFunctionInfo += FunctionList.List.GetValueText(fanState.key, fanState.value);
                sceneFunctionInfo += tempState.GetValueText();
            }
            var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
            if (briState != null)
            {
                sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
                sceneFunctionInfo += briState.value + "%";
            }
            var perState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
            if (perState != null)
            {
                sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
                sceneFunctionInfo += perState.value + "%";
            }
            //FunctionAttributes perTrait;
            //switch (sceneFunction.localFunction.functionType)
            //{
                //case FunctionType.AC:
                    //var acMode = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode);
                    //var acTemp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp);
                    //var acFan = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed);
                    //if (acMode != null)
                    //{
                    //    sceneFunctionInfo += FunctionList.List.GetValueText(acMode.key, acMode.value);
                    //}
                    //if (acTemp != null)
                    //{
                    //    sceneFunctionInfo += FunctionList.List.GetValueText(acTemp.key, acTemp.value);
                    //    sceneFunctionInfo += FunctionList.List.GetUintString(acTemp.key);
                    //}
                    //if (acFan!=null)
                    //{
                    //    sceneFunctionInfo += FunctionList.List.GetValueText(acFan.key, acFan.value);
                    //}
                //    break;
                //case FunctionType.FloorHeating:
                    //sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
                    //sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
                    //     sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
                    //break;
                //case FunctionType.Dimmer:
                    //perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
                    //if (perTrait != null)
                    //{
                    //    sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
                    //}
                    //else
                    //{
                    //    sceneFunctionInfo += Language.StringByID(StringId.Open);
                    //}
                    //break;
                //case FunctionType.Relay:
                //    sceneFunctionInfo += Language.StringByID(StringId.Open);
                //    break;
                //case FunctionType.RGB:
                //    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
                //    if (perTrait != null)
                //    {
                //        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
                //    }
                //    else
                //    {
                //        sceneFunctionInfo += Language.StringByID(StringId.Open);
                //    }
                //    break;
                //case FunctionType.Curtain:
                //    sceneFunctionInfo += Language.StringByID(StringId.Open);
                //    break;
                //case FunctionType.MotorCurtain:
                //    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
                //    if (perTrait != null)
                //    {
                //        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
                //    }
                //    else
                //    {
                //        sceneFunctionInfo += Language.StringByID(StringId.Open);
                //    }
                //    break;
            //}
            return sceneFunctionInfo;
        }
@@ -836,6 +769,7 @@
                pictureOptionView.Parent.RemoveFromParent();
                Action<string> action = (obj) => {
                    scene.ImagePath = obj;
                    addSceneImageView.ImageBytes = null;//解决有ImageBytes不加载ImagePath
                    addSceneImageView.ImagePath = scene.ImagePath;
                };
@@ -870,6 +804,7 @@
        }
        /// <summary>
        /// 创建场景
        /// 完成按钮点击事件
        /// </summary>
        void LoadEvent_CompleteEvent()
@@ -894,18 +829,40 @@
                        return;
                    }
                }
                string result = "";
                var addScene = FunctionList.List.AddScene(scene,out result);
                if (addScene != null)
                var waitPage = new Loading();
                MainPage.BaseView.AddChidren(waitPage);
                waitPage.Start(Language.StringByID(StringId.PleaseWait));
                new Thread(() =>
                {
                    FunctionList.List.scenes.Add(scene);
                    backAction();
                    this.RemoveFromParent();
                }
                else
                {
                    IMessageCommon.Current.ShowErrorInfoAlter(result);
                }
                    try
                    {
                        var serverScene = new Scene();
                        var result = FunctionList.List.AddScene(scene, out serverScene);
                        Application.RunOnMainThread(() =>
                        {
                            if (result == StateCode.SUCCESS)
                            {
                                scene = serverScene;
                                FunctionList.List.scenes.Add(scene);
                                backAction();
                                RemoveFromParent();
                            }
                            else
                            {
                                IMessageCommon.Current.ShowErrorInfoAlter(result);
                            }
                        });
                    }
                    catch { }
                    finally
                    {
                        Application.RunOnMainThread(() => {
                            waitPage.Hide();
                            waitPage.RemoveFromParent();
                        });
                    }
                })
                { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start();
            };
        }