From 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 03 十二月 2020 15:35:42 +0800
Subject: [PATCH] 2020-12-03-1

---
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs |  203 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 140 insertions(+), 63 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
index 8cadc49..63fdbd6 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -327,9 +327,7 @@
             };
             contentView.AddChidren(functionListView);
 
-
             LoadFunctionRow(functionListView);
-
 
             Button btnLine1 = new Button()
             {
@@ -339,7 +337,6 @@
             };
             contentView.AddChidren(btnLine1);
 
-
             Button btnLine2 = new Button()
             {
                 //Y = sceneDelayRow.Bottom,
@@ -347,12 +344,11 @@
                 BackgroundColor = CSS_Color.DividingLineColor,
             };
             contentView.AddChidren(btnLine2);
-
             #endregion
 
             Button btnBottomLine = new Button()
             {
-                Y = Application.GetRealHeight(667-50)-1,
+                Y = Application.GetRealHeight(667 - 50) - 1,
                 Height = 1,
                 BackgroundColor = CSS_Color.DividingLineColor,
             };
@@ -379,8 +375,8 @@
         void LoadFunctionRow(VerticalScrolViewLayout functionListView)
         {
             functionListView.RemoveAll();
-            functionListView.Height = Application.GetRealWidth(65 * scene.sceneFunctionList.Count);
-            foreach (var function in scene.sceneFunctionList)
+            functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
+            foreach (var scenefunction in scene.functions)
             {
                 var row = new RowLayout()
                 {
@@ -416,7 +412,7 @@
                     TextAlignment = TextAlignment.BottomRight,
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                    Text = GetFunctionScnenInfo(function),
+                    Text = GetFunctionScnenInfo(scenefunction),
                 };
                 row.AddChidren(btnFunctionInfo);
 
@@ -431,9 +427,9 @@
                 };
                 row.AddChidren(btnFunctionDelayInfo);
 
-                if (function.delay > 0)
+                if (Convert.ToInt32( scenefunction.delay) > 0)
                 {
-                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + function.delayText;
+                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + scenefunction.localFunction.delayText;
                 }
                 else
                 {
@@ -447,7 +443,7 @@
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
-                    Text = function.name,
+                    Text = scenefunction.localFunction.name,
                 };
                 row.AddChidren(btnFunctionName);
 
@@ -459,20 +455,20 @@
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = CSS_Color.PromptingColor1,
                     TextSize = CSS_FontSize.TextFontSize,
-                    Text = function.GetRoomListName(),
+                    Text = scenefunction.localFunction.GetRoomListName(),
                 };
                 row.AddChidren(btnFunctionFloorAndRoom);
 
                 btnFunctionName.MouseUpEventHandler = (sender, e) =>
                 {
-                    var ssf = new SceneFunctionInfoEditPage(scene, function, refreshFunctionRowAction);
+                    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, function, refreshFunctionRowAction);
+                    var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction);
                     MainPage.BasePageView.AddChidren(ssf);
                     ssf.LoadPage();
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -486,10 +482,10 @@
                 };
                 row.AddRightView(btnDelSceneFunction);
                 btnDelSceneFunction.MouseUpEventHandler = (sender, e) => {
-                    scene.sceneFunctionList.Remove(function);
-                    scene.SaveFunctionData();
+                    scene.functions.Remove(scenefunction);
+                    scene.SaveSceneData();
                     row.RemoveFromParent();
-                    functionListView.Height = Application.GetRealWidth(65 * scene.sceneFunctionList.Count);
+                    functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
                     //LoadFunctionRow(functionListView);
                 };
 
@@ -501,32 +497,41 @@
         /// 瑙f瀽鍦烘櫙鍔熻兘鏁版嵁
         /// </summary>
         /// <param name="sceneFunction"></param>
-        string GetFunctionScnenInfo(Function sceneFunction)
+        string GetFunctionScnenInfo(SceneFunction sceneFunction)
         {
-            string sceneFunctionInfo = Language.StringByID(StringId.Close);
-            if (sceneFunction.trait_on_off.curValue.ToString() == "off")
-                return sceneFunctionInfo;
-            sceneFunctionInfo = "";
+            var sceneFunctionInfo = "";
+            foreach (var sfs in sceneFunction.status)
+            {
+                if (sfs.key == FunctionAttributeKey.OnOff)
+                {
+                    if (sfs.value == "off")
+                        return Language.StringByID(StringId.Close);
+                }
+                if (sfs.key == FunctionAttributeKey.Mode)
+                {
+                    
+                }
+            }
             FunctionAttributes perTrait;
 
-            switch (sceneFunction.functionType)
+            switch (sceneFunction.localFunction.functionType)
             {
                 case FunctionType.AC:
-                    sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "mode").GetCurValueText();
-                    sceneFunctionInfo += " " + sceneFunction.function.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
-                         sceneFunction.function.Find((obj) => obj.key == "set_temperature").uintString;
-                    sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "fan").GetCurValueText();
+                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
+                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
+                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString;
+                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
                     break;
                 case FunctionType.FloorHeating:
-                    sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "mode").GetCurValueText();
-                    sceneFunctionInfo += " " + sceneFunction.function.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
-                         sceneFunction.function.Find((obj) => obj.key == "set_temperature").uintString;
+                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
+                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
+                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString;
                     break;
                 case FunctionType.Dimmer:
-                    perTrait = sceneFunction.function.Find((obj) => obj.key == "brightness");
+                    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
                     if (perTrait != null)
                     {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
+                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
                     }
                     else
                     {
@@ -537,10 +542,10 @@
                     sceneFunctionInfo += Language.StringByID(StringId.Open);
                     break;
                 case FunctionType.RGB:
-                    perTrait = sceneFunction.function.Find((obj) => obj.key == "percent");
+                    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
                     if (perTrait != null)
                     {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
+                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
                     }
                     else
                     {
@@ -551,10 +556,10 @@
                     sceneFunctionInfo += Language.StringByID(StringId.Open);
                     break;
                 case FunctionType.MotorCurtain:
-                    perTrait = sceneFunction.function.Find((obj) => obj.key == "percent");
+                    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
                     if (perTrait != null)
                     {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
+                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
                     }
                     else
                     {
@@ -735,20 +740,29 @@
             {
                 btnTakePicture.IsSelected = false;
 
-                var pid = Guid.NewGuid();
+                //var pid = Guid.NewGuid();
+                //CropImage.TakePicture((imagePath) =>
+                //{
+                //    if (imagePath != null)
+                //    {
+                //        addSceneImageView.ImagePath = imagePath.ToString();
+                //        scene.ImagePath = addSceneImageView.ImagePath;
+                //        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+                //    }
+                //}, pid.ToString(), 4, 3);
+
+
+                //var imageName = Guid.NewGuid().ToString();
+                var imageName = scene.sid;
                 CropImage.TakePicture((imagePath) =>
                 {
-                    if (imagePath != null)
-                    {
-                        addSceneImageView.ImagePath = imagePath.ToString();
-                        scene.ImagePath = addSceneImageView.ImagePath;
-                        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
-                    }
-                }, pid.ToString(), 4, 3);
-                if (pageTitleId == StringId.EditScene)
-                {
-                    scene.SaveFunctionData();
-                }
+                    CropImageCallBack(imagePath, imageName);
+                }, imageName, 4, 3);
+
+                //if (pageTitleId == StringId.EditScene)
+                //{
+                //    scene.SaveFunctionData();
+                //}
                 pictureOptionView.Parent.RemoveFromParent();
             };
             btnAlbum.MouseDownEventHandler = (sender, e) => {
@@ -758,20 +772,30 @@
             btnAlbum.MouseUpEventHandler = (sender, e) =>
             {
                 btnAlbum.IsSelected = false;
-                var pid = Guid.NewGuid();
+                //var pid = Guid.NewGuid();
+                //CropImage.SelectPicture((imagePath) =>
+                //{
+                //    if (imagePath != null)
+                //    {
+                //        addSceneImageView.ImagePath = imagePath.ToString();
+                //        scene.ImagePath = addSceneImageView.ImagePath;
+                //        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+                //    }
+                //}, pid.ToString(), 4, 3);
+
+                //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                //var imageName = Guid.NewGuid().ToString();
+                var imageName = scene.sid;
                 CropImage.SelectPicture((imagePath) =>
                 {
-                    if (imagePath != null)
-                    {
-                        addSceneImageView.ImagePath = imagePath.ToString();
-                        scene.ImagePath = addSceneImageView.ImagePath;
-                        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
-                    }
-                }, pid.ToString(), 4, 3);
-                if (pageTitleId == StringId.EditScene)
-                {
-                    scene.SaveFunctionData();
-                }
+                    CropImageCallBack(imagePath, imageName);
+                }, imageName, 4, 3);
+
+
+                //if (pageTitleId == StringId.EditScene)
+                //{
+                //    scene.SaveFunctionData();
+                //}
                 pictureOptionView.Parent.RemoveFromParent();
             };
 
@@ -782,7 +806,7 @@
                     addSceneImageView.ImagePath = scene.ImagePath;
                     if (pageTitleId == StringId.EditScene)
                     {
-                        scene.SaveFunctionData();
+                        scene.SaveSceneData();
                     }
                 };
 
@@ -791,6 +815,58 @@
                 galleryPage.LoadPage(true);
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
+
+        }
+
+        /// <summary>
+        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
+        /// </summary>
+        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
+        /// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param>
+        void CropImageCallBack(string imagePath, string imageName)
+        {
+            if (string.IsNullOrEmpty(imagePath) == true)
+            {
+                return;
+            }
+
+            try
+            {
+                var mPath = imagePath;
+                MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+
+#if __IOS__
+
+
+#else
+                //1.浣跨敤鏂板悕瀛楋紝瑙e喅鐩稿悓璺緞涓嶅埛鏂板浘鐗囬棶棰�
+                imageName = Guid.NewGuid().ToString() + ".png";
+                //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
+                if (!addSceneImageView.ImagePath.Contains("Gallery/scenebg"))
+                {
+                    Utlis.WriteLine("鍒犻櫎: " + addSceneImageView.ImagePath);
+                    System.IO.File.Delete(addSceneImageView.ImagePath);
+                }
+                //1.3濡傛灉鏄畨鍗撻渶瑕佹嫹璐濆洖鏉PP鏍圭洰褰�
+                FileUtils.FileCopyToRootPath(imagePath, imageName);
+                System.IO.File.Delete(imagePath);
+                MainPage.Log("SelectPicture 鏈�缁堣矾寰�: " + imageName);
+                mPath = imageName;
+#endif
+                //娓呯┖鍘熸潵鍥剧墖
+                addSceneImageView.ImagePath = "NULL";
+                addSceneImageView.ImagePath = mPath;
+                scene.ImagePath = mPath;
+
+                if (pageTitleId == StringId.EditScene)
+                {
+                    scene.SaveSceneData();
+                }
+            }
+            catch
+            {
+
+            }
 
         }
 
@@ -821,7 +897,7 @@
                             return;
                         }
                     }
-                    scene.SaveFunctionData();
+                    scene.SaveSceneData();
                     DB_ResidenceData.functionList.scenes.Add(scene);
                     backAction();
                     this.RemoveFromParent();
@@ -862,7 +938,7 @@
                 scene.name = str;
                 if (pageTitleId == StringId.EditScene)
                 {
-                    scene.SaveFunctionData();
+                    scene.SaveSceneData();
                 }
             };
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
@@ -879,5 +955,6 @@
             btnEditSceneNameIcon.MouseUpEventHandler = eventHandler;
         }
 
+
     }
 }

--
Gitblit v1.8.0