From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 27 八月 2021 13:21:21 +0800 Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1 --- HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs | 270 +++++++++++++++++++++-------------------------------- 1 files changed, 108 insertions(+), 162 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs index aa23898..67f47d5 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs @@ -76,7 +76,6 @@ Scene scene; - int pageTitleId; /// <summary> /// 鏇存柊鍔熻兘row /// </summary> @@ -93,21 +92,13 @@ refreshFunctionRowAction = () => { - LoadFunctionRow(functionListView); + LoadFunctionRow(); }; } - public void LoadPage(int titleId,Action backRefresh) + public void LoadPage(Action backRefresh) { - pageTitleId = titleId; - new TopViewDiv(bodyView, Language.StringByID(pageTitleId)).LoadTopView(backRefresh); - initPage(); - } - - public void LoadPage(int titleId) - { - pageTitleId = titleId; - new TopViewDiv(bodyView, Language.StringByID(pageTitleId)).LoadTopView(); + new TopViewDiv(bodyView, Language.StringByID(StringId.EditScene)).LoadTopView(backRefresh); initPage(); } @@ -211,7 +202,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - TextID = StringId.BelongToZone, + TextID = StringId.LocationManagement, }; belongToZoneRow.AddChidren(btnBelongToTitle); @@ -232,7 +223,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); @@ -245,7 +236,7 @@ #endregion #region 鍦烘櫙寤舵椂row - if (DB_ResidenceData.residenceData.GatewayType == 1) + if (DB_ResidenceData.Instance.GatewayType == 1) { FrameLayout sceneDelayRow = new FrameLayout() { @@ -270,7 +261,7 @@ TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = scene.delayText + Text = scene.GetDelayText() }; sceneDelayRow.AddChidren(btnSceneDelayInfo); @@ -288,7 +279,17 @@ btnSceneDelayTitle.MouseUpEventHandler = (sender, e) => { - new PublicAssmebly().SetSceneDelayDialog(scene, btnSceneDelayInfo); + Action<string> action = (obj) => { + scene.delay = obj; + btnSceneDelayInfo.Text = scene.GetDelayText(); + scene.EditScene(); + }; + 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() @@ -323,17 +324,18 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, - TextID = StringId.AddFunction, + TextID = StringId.FunctionManagement, IsBold = true, }; addFunctionRow.AddChidren(btnAddFunctionTitle); functionListView = new VerticalScrolViewLayout() { Height = 0, + ScrollEnabled = false, }; contentView.AddChidren(functionListView); - LoadFunctionRow(functionListView); + LoadFunctionRow(); Button btnLine1 = new Button() { @@ -365,25 +367,76 @@ Y = Application.GetRealHeight(667 - 50), Height = Application.GetRealHeight(50), TextAlignment = TextAlignment.Center, - TextColor = pageTitleId == StringId.NewScene ? CSS_Color.MainColor : CSS_Color.WarningColor, + TextColor = CSS_Color.WarningColor, TextSize = CSS_FontSize.SubheadingFontSize, - TextID = pageTitleId == StringId.NewScene ? StringId.Complete : StringId.Del, + TextID = StringId.Del, BackgroundColor = CSS_Color.MainBackgroundColor, //IsBold = true }; - bodyView.AddChidren(btnComplete); - + if (scene.can_delete) + { + bodyView.AddChidren(btnComplete); + } LoadEventList(); + + var waitPage = new Loading(); + new Thread(() => { + try + { + 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(); + waitPage.RemoveFromParent(); + }); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }).Start(); } /// <summary> /// 鍔犺浇鍔熻兘鍒楄〃 /// </summary> - void LoadFunctionRow(VerticalScrolViewLayout functionListView) + void LoadFunctionRow() { functionListView.RemoveAll(); functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); - foreach (var scenefunction in scene.functions) + for(int i =0;i<scene.functions.Count;) { + var scenefunction = scene.functions[i]; + if (scenefunction.localFunction == null) + { + scene.functions.Remove(scenefunction); + continue; + } + i++; var row = new RowLayout() { Height = Application.GetRealWidth(65), @@ -409,8 +462,6 @@ }; row.AddChidren(btnRight); - - var btnFunctionInfo = new Button() { Width = Application.GetRealWidth(327), @@ -418,7 +469,7 @@ TextAlignment = TextAlignment.BottomRight, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = GetFunctionScnenInfo(scenefunction), + Text = scenefunction.GetFunctionScnenInfo(), }; row.AddChidren(btnFunctionInfo); @@ -435,7 +486,7 @@ if (Convert.ToInt32( scenefunction.delay) > 0) { - btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + scenefunction.localFunction.delayText; + btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText(); } else { @@ -465,20 +516,15 @@ }; 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() { @@ -489,91 +535,11 @@ row.AddRightView(btnDelSceneFunction); btnDelSceneFunction.MouseUpEventHandler = (sender, e) => { scene.functions.Remove(scenefunction); - scene.SaveSceneData(true); + scene.EditScene(); row.RemoveFromParent(); functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); - //LoadFunctionRow(functionListView); }; - - } - } - - /// <summary> - /// 瑙f瀽鍦烘櫙鍔熻兘鏁版嵁 - /// </summary> - /// <param name="sceneFunction"></param> - string GetFunctionScnenInfo(SceneFunction sceneFunction) - { - 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.localFunction.functionType) - { - case FunctionType.AC: - 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.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.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; } /// <summary> @@ -685,7 +651,14 @@ EventHandler<MouseEventArgs> eventHandler = (sender, e) => { Action backAction = () => { - btnZoneName.Text = scene.GetRoomListName(); + var result = scene.EditScene(); + if (result == StateCode.SUCCESS) + { + btnZoneName.Text = scene.GetRoomListName(); + }else + { + IMessageCommon.Current.ShowErrorInfoAlter(result); + } }; var ssl = new SetSceneLocationPage(scene, backAction); MainPage.BasePageView.AddChidren(ssl); @@ -704,7 +677,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; @@ -746,30 +719,12 @@ { btnTakePicture.IsSelected = false; - //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) => { CropImageCallBack(imagePath); - }, imageName, 4, 3); - //if (pageTitleId == StringId.EditScene) - //{ - // scene.SaveFunctionData(); - //} pictureOptionView.Parent.RemoveFromParent(); }; btnAlbum.MouseDownEventHandler = (sender, e) => { @@ -799,10 +754,6 @@ }, imageName, 4, 3); - //if (pageTitleId == StringId.EditScene) - //{ - // scene.SaveFunctionData(); - //} pictureOptionView.Parent.RemoveFromParent(); }; @@ -810,11 +761,9 @@ pictureOptionView.Parent.RemoveFromParent(); Action<string> action = (obj) => { scene.ImagePath = obj; + addSceneImageView.ImageBytes = null;//瑙e喅鏈塈mageBytes涓嶅姞杞絀magePath addSceneImageView.ImagePath = scene.ImagePath; - if (pageTitleId == StringId.EditScene) - { - scene.SaveSceneData(true); - } + scene.EditScene(); }; var galleryPage = new GalleryPage(scene.ImagePath,action); @@ -840,12 +789,9 @@ //涓婁紶鎴愬姛鍒板洖璋� Action<string> uploadSuccessAction = (imageUrl) => { - //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔� - scene.ImagePath = imageUrl; - if (pageTitleId == StringId.EditScene) - { - scene.SaveSceneData(true); - } + //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔� + scene.ImagePath = imageUrl; + scene.EditScene(); }; //涓婁紶鍥剧墖鍒颁簯绔� UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction); @@ -870,7 +816,7 @@ }.Show(bodyView); return; } - foreach (var tempRoom in DB_ResidenceData.functionList.scenes) + foreach (var tempRoom in FunctionList.List.scenes) { if (scene.name == tempRoom.name) { @@ -878,8 +824,8 @@ return; } } - scene.SaveSceneData(true); - DB_ResidenceData.functionList.scenes.Add(scene); + scene.EditScene(); + FunctionList.List.scenes.Add(scene); backAction(); this.RemoveFromParent(); } @@ -887,11 +833,11 @@ { Action action = () => { - DB_ResidenceData.functionList.DeleteScene(scene,true); + FunctionList.List.DeleteScene(scene,true); backAction(); this.RemoveFromParent(); }; - new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteSceneTip, action); + new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteSceneTip, action); }; }; } @@ -915,17 +861,17 @@ }.Show(bodyView); return; } - btnSceneName.Text = str; scene.name = str; - if (pageTitleId == StringId.EditScene) + var result = scene.EditScene(); + if (result == StateCode.SUCCESS) { - scene.SaveSceneData(true); + btnSceneName.Text = str; } }; EventHandler<MouseEventArgs> eventHandler = (sender, e) => { List<string> sceneNameList = new List<string>(); - foreach (var tempScene in DB_ResidenceData.functionList.scenes) + foreach (var tempScene in FunctionList.List.scenes) { sceneNameList.Add(tempScene.name); } @@ -982,7 +928,7 @@ System.IO.File.Delete(imageView.ImagePath); } //閲嶅懡鍚嶄繚瀛� - FileUtils.WriteFileByBytes(imageUrl, imageBytes); + ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes); imageView.ImagePath = null; imageView.ImageBytes = imageBytes; //涓婁紶鎴愬姛 -- Gitblit v1.8.0