From 7467a843644aee00e5a4d91dd967cdb9e30f1985 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期二, 15 十二月 2020 17:20:06 +0800 Subject: [PATCH] 20201215-3 --- HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs | 264 ++++++++++++++++++++++++++-------------------------- 1 files changed, 133 insertions(+), 131 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs index d562d05..e1695e9 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs @@ -10,21 +10,19 @@ { FrameLayout bodyView; VerticalScrolViewLayout contentView; + Button btnOnText; Scene scene; Action refreshAction; SceneFunction sceneFunction; - //Function localFunction; public SceneFunctionInfoEditPage(Scene s, SceneFunction fc,Action action) { bodyView = this; scene = s; - //localFunction = fc; sceneFunction = fc; refreshAction = action; } - public void LoadPage() { @@ -40,35 +38,58 @@ }; bodyView.AddChidren(contentView); - //鍔犺浇寮�鍏砇ow - LoadFunctionRow(sceneFunction.localFunction.trait_on_off); + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff)); - switch (sceneFunction.localFunction.functionType) + foreach (var attr in sceneFunction.status) { - case FunctionType.AC: - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp")); - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode")); - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan")); - break; - case FunctionType.FloorHeating: - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp")); - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode")); - break; - case FunctionType.Curtain: - //鏃犳搷浣� - break; - case FunctionType.MotorCurtain: - case FunctionType.RollingShutter: - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent")); - break; - case FunctionType.Relay: - //鏃犳搷浣� - break; - case FunctionType.Dimmer: - case FunctionType.RGB: - LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness")); - break; + switch (attr.key) + { + case FunctionAttributeKey.SetTemp: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp)); + break; + case FunctionAttributeKey.Mode: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode)); + break; + case FunctionAttributeKey.FanSpeed: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed)); + break; + case FunctionAttributeKey.Percent: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent)); + break; + case FunctionAttributeKey.Brightness: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness)); + break; + } } + + //鍔犺浇寮�鍏砇ow + //LoadFunctionRow(sceneFunction.localFunction.trait_on_off); + //switch (sceneFunction.localFunction.functionType) + //{ + // case FunctionType.AC: + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp")); + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode")); + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan")); + // break; + // case FunctionType.FloorHeating: + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp")); + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode")); + // break; + // case FunctionType.Curtain: + // //鏃犳搷浣� + // break; + // case FunctionType.MotorCurtain: + // case FunctionType.RollingShutter: + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent")); + // break; + // case FunctionType.Relay: + // //鏃犳搷浣� + // break; + // case FunctionType.Dimmer: + // case FunctionType.RGB: + // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness")); + // break; + //} //鍔犺浇寤舵椂Row LoadDelayRow(); @@ -100,7 +121,6 @@ btnConfrim.MouseUpEventHandler = (sender, e) => { - //var temp = localFunction.ConvertSceneFunction(); var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid); if (temp != null) { @@ -110,9 +130,19 @@ { scene.functions.Add(sceneFunction); } - scene.SaveSceneData(true); - refreshAction(); - this.RemoveFromParent(); + if (!string.IsNullOrEmpty(scene.userSceneId)) + { + var result = scene.UpdateScene(); + if (result == DAL.Server.StateCode.SUCCESS) + { + refreshAction(); + this.RemoveFromParent(); + } + else + { + DAL.Server.IMessageCommon.Current.ShowErrorInfoAlter(result); + } + } }; } @@ -120,9 +150,9 @@ /// <summary> /// 鍔犺浇鍔熻兘Row /// </summary> - void LoadFunctionRow(FunctionAttributes trait) + void LoadFunctionRow(SceneFunctionStatus sceneStatus) { - if (trait == null) + if (sceneStatus == null) return; #region Row code var row = new FrameLayout() @@ -131,7 +161,7 @@ BackgroundColor = CSS_Color.MainBackgroundColor, }; contentView.AddChidren(row); - if (trait.key != "on_off") + if (sceneStatus.key != FunctionAttributeKey.OnOff) { row.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor }); } @@ -151,9 +181,11 @@ TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = trait.GetCurValueText() + trait.uintString + Text = FunctionList.List.GetValueText(sceneStatus.key,sceneStatus.value) + FunctionList.List.GetUintString(sceneStatus.key) }; row.AddChidren(btnFunctionText); + if (sceneStatus.key == FunctionAttributeKey.OnOff) + btnOnText = btnFunctionText; var btnFunctionName = new Button() { @@ -161,62 +193,48 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, - Text = trait.name_text + Text = FunctionList.List.GetNameText(sceneStatus.key) }; row.AddChidren(btnFunctionName); btnFunctionName.MouseUpEventHandler = (sender, e) => { - switch (trait.key) + switch (sceneStatus.key) { - case "on_off": - LoadEditDialog_OnOff(trait, btnFunctionText); + case FunctionAttributeKey.OnOff: + LoadEditDialog_OnOff(sceneStatus, btnFunctionText); break; - case "brightness": - LoadEditDialog_Percent(trait, btnFunctionText); + case FunctionAttributeKey.Brightness: + LoadEditDialog_Percent(sceneStatus, btnFunctionText); break; - //case "color": - // break; - case "mode": - LoadEditDialog_FunctionPar(trait, btnFunctionText); + case FunctionAttributeKey.Mode: + var statusList = new List<string>(); + var tr = sceneFunction.localFunction.attributes.Find((obj) => obj.key == FunctionAttributeKey.Mode); + foreach(var t in tr.value) + { + statusList.Add(t); + } + LoadEditDialog_FunctionPar(sceneStatus, btnFunctionText,statusList); break; - case "fan": - LoadEditDialog_FunctionPar(trait, btnFunctionText); + case FunctionAttributeKey.FanSpeed: + var fanStatusList = new List<string>(); + var tr1 = sceneFunction.localFunction.attributes.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed); + foreach (var t in tr1.value) + { + fanStatusList.Add(t); + } + LoadEditDialog_FunctionPar(sceneStatus, btnFunctionText, fanStatusList); break; - case "set_temp": - LoadEditDialog_Temp(trait, btnFunctionText); + case FunctionAttributeKey.SetTemp: + LoadEditDialog_Temp(sceneStatus, btnFunctionText); break; case "delay": break; case "cct": break; - //case "fade_time": - case "percent": - LoadEditDialog_Percent(trait, btnFunctionText); + case FunctionAttributeKey.Percent: + LoadEditDialog_Percent(sceneStatus, btnFunctionText); break; - //case "lock": - //case "ico": - //case "swing": - //case "set_ point": - //case "pm25": - //case "volume": - //case "vol_step": - //case "source": - //case "treble": - //case "bass": - //case "playlist": - //case "song_name": - //case "current_status": - //case "enable": - //case "lux": - //case "adjust_value": - //case "range": - //case "humidity": - //case "type": - //case "state": - //case "sensitivity": - //case "pm25value": } - //LoadEditDialog_Temp(trait, btnFunctionText); }; #endregion @@ -286,7 +304,7 @@ /// </summary> /// <param name="function"></param> /// <param name="btn"></param> - void LoadEditDialog_OnOff(FunctionAttributes trait, Button btn) + void LoadEditDialog_OnOff(SceneFunctionStatus trait, Button btn) { Dialog dialog = new Dialog(); @@ -324,7 +342,7 @@ SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = StringId.On, - IsSelected = trait.curValue.ToString() == "on" + IsSelected = trait.value.ToString() == "on" }; optionView.AddChidren(btnOn); @@ -338,7 +356,7 @@ SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = StringId.OFF, - IsSelected = trait.curValue.ToString() == "off" + IsSelected = trait.value.ToString() == "off" }; optionView.AddChidren(btnOff); @@ -367,15 +385,15 @@ }; btnOn.MouseUpEventHandler = (sender, e) => { dialog.Close(); - trait.curValue = "on"; + trait.value = "on"; sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = "on"; - btn.Text = trait.GetCurValueText() + trait.uintString; + btn.Text = FunctionList.List.GetValueText(trait.key, trait.value) + FunctionList.List.GetUintString(trait.key); }; btnOff.MouseUpEventHandler = (sender,e) =>{ dialog.Close(); - trait.curValue = "off"; + trait.value = "off"; sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = "off"; - btn.Text= trait.GetCurValueText() + trait.uintString; + btn.Text= FunctionList.List.GetValueText(trait.key,trait.value) + FunctionList.List.GetUintString(trait.key); }; } @@ -385,7 +403,7 @@ /// </summary> /// <param name="function"></param> /// <param name="btn"></param> - void LoadEditDialog_Temp(FunctionAttributes trait, Button btn) + void LoadEditDialog_Temp(SceneFunctionStatus trait, Button btn) { List<string> pickerItems = new List<string>(); if(trait == null) @@ -452,33 +470,14 @@ Height = Application.GetRealHeight(210), Radius = (uint)Application.GetRealWidth(12), }; - if(trait!=null) + for (int i = 16; i <= 32; i += 1) { - if (trait.data_type == "float") - { - for (double i = trait.min; i <= trait.max; i += 0.5) - { - pickerItems.Add(i.ToString() + trait.uintString); - } - } - else - { - for (int i = trait.min; i <= trait.max; i += 1) - { - pickerItems.Add(i.ToString() + trait.uintString); - } - } - }else - { - for (int i = 16; i <= 32; i += 1) - { - pickerItems.Add(i.ToString() + trait.uintString); - } + pickerItems.Add(i.ToString() + FunctionList.List.GetUintString(trait.key)); } uIPickerView.setNPicker(pickerItems, null, null); optionBaseView.AddChidren(uIPickerView); - uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.curValue.ToString()), 4, 5); - string selectItem = trait.curValue.ToString() + trait.uintString; + uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()), 4, 5); + string selectItem = trait.value.ToString() + FunctionList.List.GetUintString(trait.key); dialog.Show(); @@ -495,19 +494,18 @@ btnConfrim.MouseUpEventHandler = (sender, e) => { dialog.Close(); btn.Text = selectItem; - sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ; - trait.curValue = selectItem.Replace(trait.uintString,""); + //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ; + trait.value = selectItem.Replace(FunctionList.List.GetUintString(trait.key),""); }; } - /// <summary> /// 鍔犺浇浜害閫夋嫨寮圭獥 /// </summary> /// <param name="function"></param> /// <param name="btn"></param> - void LoadEditDialog_Percent(FunctionAttributes trait, Button btn) + void LoadEditDialog_Percent(SceneFunctionStatus trait, Button btn) { if (trait == null) { @@ -546,13 +544,12 @@ optionBaseView.AddChidren(topView); topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor }); - var btnTitle = new Button() { Gravity = Gravity.CenterHorizontal, TextAlignment = TextAlignment.Center, Width = Application.GetRealWidth(100), - Text = trait.name_text, + Text = FunctionList.List.GetNameText(trait.key), IsBold = true, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, @@ -580,8 +577,6 @@ }; topView.AddChidren(btnConfrim); - - Button btnMinusSignIcon = new Button() { X = Application.GetRealWidth(26), @@ -605,7 +600,7 @@ ProgressTextColor = CSS_Color.FirstLevelTitleColor, ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, MaxValue = 100, - Progress = trait.curValue.ToString().Replace("{}", "") == "" ? 0 : Convert.ToInt32( trait.curValue), + Progress = trait.value.ToString().Replace("{}", "") == "" ? 0 : Convert.ToInt32( trait.value.Replace("{}","")), SeekBarPadding = Application.GetRealWidth(20), }; optionBaseView.AddChidren(controlBar); @@ -627,7 +622,6 @@ controlBar.Progress++; }; - dialog.Show(); pView.MouseUpEventHandler = (sender, e) => { dialog.Close(); @@ -638,9 +632,17 @@ }; btnConfrim.MouseUpEventHandler = (sender, e) => { dialog.Close(); - trait.curValue = controlBar.Progress; - sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ; - btn.Text = trait.curValue + trait.uintString; + trait.value = controlBar.Progress.ToString(); + btn.Text = trait.value + FunctionList.List.GetUintString(trait.key); + if (controlBar.Progress > 0) + { + var temp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff); + if (temp != null) + { + temp.value = "on"; + btnOnText.Text = FunctionList.List.GetValueText(temp.key, temp.value); + } + } }; } @@ -649,7 +651,7 @@ /// <summary> /// 鍔犺浇鍔熻兘灞炴�ф暟鎹�夋嫨寮圭獥 /// </summary> - void LoadEditDialog_FunctionPar(FunctionAttributes trait, Button btn) + void LoadEditDialog_FunctionPar(SceneFunctionStatus trait, Button btn,List<string> statusList) { Button lastButton = new Button(); var lastData = ""; @@ -664,10 +666,10 @@ var optionBaseView = new FrameLayout() { - Y = Application.GetRealHeight(579 - 50 * trait.value.Count), + Y = Application.GetRealHeight(579 - 50 * statusList.Count), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(50 * trait.value.Count + 50), + Height = Application.GetRealHeight(50 * statusList.Count + 50), AnimateSpeed = 0.3f, Animate = Animate.DownToUp, BackgroundColor = CSS_Color.MainBackgroundColor, @@ -690,7 +692,7 @@ Gravity = Gravity.CenterHorizontal, TextAlignment = TextAlignment.Center, Width = Application.GetRealWidth(100), - Text = trait.name_text, + Text = FunctionList.List.GetNameText(trait.key), IsBold = true, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, @@ -718,7 +720,7 @@ }; topView.AddChidren(btnConfrim); int hei = 1; - foreach (var m in trait.value) + foreach (var m in statusList) { var row = new FrameLayout() { @@ -726,7 +728,7 @@ Height = Application.GetRealHeight(50), }; optionBaseView.AddChidren(row); - if (trait.value.Count > hei) + if (statusList.Count > hei) { optionBaseView.AddChidren(new Button() { @@ -750,7 +752,7 @@ }; row.AddChidren(btnChoose); - if (trait.curValue.ToString() == m) + if (trait.value == m) { lastButton = btnChoose; btnChoose.IsSelected = true; @@ -762,7 +764,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Tag = m, - Text = trait.GetValueText(m) + Text = FunctionList.List.GetValueText(trait.key, m) }; row.AddChidren(btnPropertyTitle); @@ -792,8 +794,8 @@ }; btnConfrim.MouseUpEventHandler = (sender, e) => { dialog.Close(); - trait.curValue = lastData; - sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ; + trait.value = lastData; + //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ; btn.Text = lastText; }; -- Gitblit v1.8.0