From 5c5461b7c46aff66d24efe80062c235342e77d4c Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 16 十二月 2020 09:07:53 +0800
Subject: [PATCH] Merge branch 'CJL' into NewFilePath

---
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs |  192 +++++++++++++++++++++++++++++++----------------
 1 files changed, 127 insertions(+), 65 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
index cb146e7..ff038fd 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -93,7 +93,7 @@
 
 
             refreshFunctionRowAction = () => {
-                LoadFunctionRow(functionListView);
+                LoadFunctionRow();
             };
         }
 
@@ -270,7 +270,7 @@
                     TextAlignment = TextAlignment.CenterRight,
                     TextColor = CSS_Color.PromptingColor1,
                     TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                    Text = scene.delayText
+                    Text = FunctionList.List.GetDelayText( scene.delay)
                 };
                 sceneDelayRow.AddChidren(btnSceneDelayInfo);
 
@@ -288,7 +288,11 @@
 
                 btnSceneDelayTitle.MouseUpEventHandler = (sender, e) =>
                 {
-                    new PublicAssmebly().SetSceneDelayDialog(scene, btnSceneDelayInfo);
+                    Action<string> action = (obj) => {
+                        scene.delay = obj;
+                        btnSceneDelayInfo.Text = FunctionList.List.GetDelayText(obj);
+                    };
+                    new PublicAssmebly().SetSceneDelayDialog(action,scene.delay);
                 };
 
                 contentView.AddChidren(new Button()
@@ -333,7 +337,7 @@
             };
             contentView.AddChidren(functionListView);
 
-            LoadFunctionRow(functionListView);
+            LoadFunctionRow();
 
             Button btnLine1 = new Button()
             {
@@ -374,11 +378,43 @@
             bodyView.AddChidren(btnComplete);
 
             LoadEventList();
+
+            var waitPage = new Loading();
+            new Thread(() => {
+                Application.RunOnMainThread(() => {
+                    bodyView.AddChidren(waitPage);
+                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                });
+                var pm = new HttpServerRequest();
+                var pack = pm.GetSceneInfo(scene.userSceneId);
+                if (pack.Code == StateCode.SUCCESS)
+                {
+                    var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString());
+                    var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId);
+                    if(tempScene!= null)
+                    {
+                        scene.functions = tempScene.functions;
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        LoadFunctionRow();
+                        waitPage.Hide();
+                    });
+                }
+                else
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        waitPage.Hide();
+                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+                    });
+                }
+            }).Start();
         }
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃
         /// </summary>
-        void LoadFunctionRow(VerticalScrolViewLayout functionListView)
+        void LoadFunctionRow()
         {
             functionListView.RemoveAll();
             functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
@@ -409,8 +445,6 @@
                 };
                 row.AddChidren(btnRight);
 
-                
-
                 var btnFunctionInfo = new Button()
                 {
                     Width = Application.GetRealWidth(327),
@@ -435,7 +469,7 @@
 
                 if (Convert.ToInt32( scenefunction.delay) > 0)
                 {
-                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + scenefunction.localFunction.delayText;
+                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + FunctionList.List.GetDelayText(scenefunction.delay);
                 }
                 else
                 {
@@ -513,66 +547,94 @@
                     if (sfs.value == "off")
                         return Language.StringByID(StringId.Close);
                 }
-                if (sfs.key == FunctionAttributeKey.Mode)
-                {
-                    
-                }
             }
-            FunctionAttributes perTrait;
 
-            switch (sceneFunction.localFunction.functionType)
+            if (sceneFunction.status.Count == 0)
             {
-                case FunctionType.AC:
-                    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;
-                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
-                    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 += 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);
+            }
+            if (tempState != null)
+            {
+                sceneFunctionInfo += FunctionList.List.GetValueText(tempState.key, tempState.value);
+                sceneFunctionInfo += FunctionList.List.GetUintString(tempState.key);
+            }
+            if (fanState != null)
+            {
+                sceneFunctionInfo += FunctionList.List.GetValueText(fanState.key, fanState.value);
+            }
+            var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
+            if (briState != null)
+            {
+                sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + briState.value + "%";
+            }
+            var perState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
+            if (perState != null)
+            {
+                sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + perState.value + "%";
+            }
+            //FunctionAttributes perTrait;
+
+            //switch (sceneFunction.localFunction.functionType)
+            //{
+            //    case FunctionType.AC:
+            //        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;
+            //        sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
+            //        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;
         }
 
@@ -704,7 +766,7 @@
         void LoadEvent_ChangeFunctionList()
         {
             btnAddFunctionTitle.MouseUpEventHandler = (sender, e) => {
-                var sefp =new SceneFunctionListEditPage(scene,refreshFunctionRowAction);
+                var sefp =new SceneFunctionListChoosePage(scene,refreshFunctionRowAction);
                 MainPage.BasePageView.AddChidren(sefp);
                 sefp.LoadPage();
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;

--
Gitblit v1.8.0