From 002e48d8baa60c8d38ba95d65cd73118ab8cdb09 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 14 七月 2023 10:54:33 +0800 Subject: [PATCH] 设备状态刷新 --- HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs | 423 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 347 insertions(+), 76 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs index b82e1f8..a45dcc5 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs @@ -17,11 +17,24 @@ Action refreshAction; SceneFunction sceneFunction; + + bool isColorful = false; + public SceneFunctionInfoEditPage(Scene s, SceneFunction fc,Action action) { bodyView = this; scene = s; - sceneFunction = fc; + sceneFunction = fc.localFunction.ConvertSceneFunction(); + foreach(var ll in sceneFunction.status) + { + try + { + var temp = fc.status.Find((obj) => obj.key == ll.key); + if (temp != null) + ll.value = temp.value; + } + catch { } + } refreshAction = action; } @@ -39,78 +52,64 @@ }; bodyView.AddChidren(contentView); - LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff)); + var onOffStatus = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff); - foreach (var attr in sceneFunction.status) + LoadFunctionRow(onOffStatus); + + if (sceneFunction.localFunction.spk == SPK.LightRGB) { - switch (attr.key) + var colorfulStatus = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Colorful); + if (colorfulStatus != null) { - 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; - case FunctionAttributeKey.FadeTime: - LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FadeTime)); - break; - case FunctionAttributeKey.CCT: - LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.CCT)); - break; - case FunctionAttributeKey.RGB: - LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.RGB)); - break; - case "angle"://瑙掑害 - LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "angle")); - break; + isColorful = true; + LoadColorfulRow(colorfulStatus); } } - - //鍔犺浇寮�鍏砇ow - //LoadFunctionRow(sceneFunction.localFunction.trait_on_off); - //switch (sceneFunction.localFunction.functionType) - //{ - // case SPK.AcStandard: - // 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 SPK.FloorHeatStandard: - // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp")); - // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode")); - // break; - // case SPK.CurtainSwitch: - // //鏃犳搷浣� - // break; - // case SPK.CurtainTrietex: - // case SPK.CurtainRoller: - // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent")); - // break; - // case SPK.LightSwitch: - // //鏃犳搷浣� - // break; - // case SPK.LightDimming: - // case SPK.LightRGB: - // LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness")); - // break; - //} - - if (DB_ResidenceData.Instance.GatewayType != 0) + if(!isColorful) { - //鍔犺浇寤舵椂Row - LoadDelayRow(); - } + foreach (var attr in sceneFunction.status) + { + 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; + case FunctionAttributeKey.FadeTime: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FadeTime)); + break; + case FunctionAttributeKey.CCT: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.CCT)); + break; + case FunctionAttributeKey.RGB: + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.RGB)); + break; + case "angle"://瑙掑害 + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "angle")); + break; + case "security"://澶у崕鎽勫儚甯冮槻鎾ら槻 + LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "security")); + break; + } + } + if (DB_ResidenceData.Instance.GatewayType != 0) + { + //鍔犺浇寤舵椂Row + LoadDelayRow(); + } + } var bottomView = new FrameLayout() { Y = Application.GetRealHeight(591), @@ -139,15 +138,6 @@ btnConfrim.MouseUpEventHandler = (sender, e) => { var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid); - //if (sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness) != null) - //{ - // try - // { - // //涓�绔彛涓嶆敮鎸佸紑鍏冲�间笌浜害鍊间竴璧峰鐞嗭紝闇�瑕佸皢寮�鍏冲�肩Щ闄ゆ帀 - // sceneFunction.status.Remove(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff)); - // } - // catch { } - //} if (temp != null) { @@ -326,6 +316,9 @@ { switch (sceneStatus.key) { + case FunctionAttributeKey.Security: + LoadEditDialog_Security(sceneStatus, btnFunctionText); + break; case FunctionAttributeKey.OnOff: LoadEditDialog_OnOff(sceneStatus, btnFunctionText); break; @@ -358,6 +351,7 @@ break; case "angle": //鍛堢幇鐨勫脊绐� + LoadEditDialog_Angle(sceneStatus, btnFunctionText); break; case "cct": @@ -381,6 +375,64 @@ #endregion } + + /// <summary> + /// 鍔犺浇鍔熻兘Row + /// </summary> + void LoadColorfulRow(SceneFunctionStatus sceneStatus) + { + if (sceneStatus == null) + return; + #region Row code + var row = new FrameLayout() + { + Height = Application.GetRealHeight(50), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + contentView.AddChidren(row); + + row.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor }); + + Button btnRight = new Button() + { + X = Application.GetRealWidth(339), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/Right.png", + }; + row.AddChidren(btnRight); + + + var showCode = ""; + + var btnFunctionText = new Button() + { + Width = Application.GetRealWidth(330), + TextAlignment = TextAlignment.CenterRight, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = sceneStatus.GetValueText(showCode) + }; + row.AddChidren(btnFunctionText); + + var btnFunctionName = new Button() + { + X = Application.GetRealWidth(16), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.ColorfulFunction + }; + row.AddChidren(btnFunctionName); + btnFunctionName.MouseUpEventHandler = (sender, e) => + { + LoadEditDialog_OnOff(sceneStatus, btnFunctionText); + }; + + #endregion + } + #region 鍔犺浇鍔熻兘鍦烘櫙鏁版嵁璋冭妭鐣岄潰 @@ -576,6 +628,109 @@ } + + /// <summary> + /// 鍔犺浇瀹夐槻甯冮槻閫夋嫨寮圭獥 + /// </summary> + /// <param name="function"></param> + /// <param name="btn"></param> + void LoadEditDialog_Security(SceneFunctionStatus trait, Button btn) + { + Dialog dialog = new Dialog(); + + var pView = new FrameLayout() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + dialog.AddChidren(pView); + + var optionBaseView = new FrameLayout() + { + Y = Application.GetRealHeight(500), + Height = Application.GetRealHeight(160), + AnimateSpeed = 0.3f, + Animate = Animate.DownToUp, + }; + pView.AddChidren(optionBaseView); + + var optionView = new VerticalScrolViewLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(100), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + ScrollEnabled = false, + }; + optionBaseView.AddChidren(optionView); + + var btnOn = new Button() + { + Height = Application.GetRealHeight(50), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + SelectedTextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.Defense, + IsSelected = trait.value.ToString() == "true" + }; + optionView.AddChidren(btnOn); + + optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor }); + + var btnOff = new Button() + { + Height = Application.GetRealHeight(50), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + SelectedTextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.Undefense, + IsSelected = trait.value.ToString() == "false" + }; + optionView.AddChidren(btnOff); + + var btnCancel = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(8) + optionView.Bottom, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(50), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + TextID = StringId.Cancel, + TextColor = CSS_Color.WarningColor, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + optionBaseView.AddChidren(btnCancel); + + dialog.Show(); + + pView.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + + btnCancel.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + btnOn.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + trait.value = "true"; + sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Security).value = "true"; + btn.Text = trait.GetValueText() + trait.GetUintString(); + + }; + btnOff.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + trait.value = "false"; + sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Security).value = "false"; + btn.Text = trait.GetValueText() + trait.GetUintString(); + + }; + + } + + /// <summary> /// 鍔犺浇娓╁害閫夋嫨寮圭獥 /// </summary> @@ -638,7 +793,8 @@ var btnConfrim = new Button() { - Width = Application.GetRealWidth(320), + X = Application.GetRealWidth(160), + Width = Application.GetRealWidth(160), TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, @@ -686,6 +842,120 @@ }; } + + /// <summary> + /// 鍔犺浇娓╁害閫夋嫨寮圭獥 + /// </summary> + /// <param name="function"></param> + /// <param name="btn"></param> + void LoadEditDialog_Angle (SceneFunctionStatus trait, Button btn) + { + double temp = trait.min; + double.TryParse(trait.value, out temp); + trait.value = temp.ToString(); + + List<string> pickerItems = new List<string>(); + if (trait == null) + { + return; + } + + Dialog dialog = new Dialog(); + + var pView = new FrameLayout() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + dialog.AddChidren(pView); + + var optionBaseView = new FrameLayout() + { + Y = Application.GetRealHeight(456 - 60), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(260), + AnimateSpeed = 0.3f, + Animate = Animate.DownToUp, + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + pView.AddChidren(optionBaseView); + + var topView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(40), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + optionBaseView.AddChidren(topView); + topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor }); + + var btnCancel = new Button() + { + X = Application.GetRealWidth(21), + Width = Application.GetRealWidth(100), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.Cancel, + }; + topView.AddChidren(btnCancel); + + + var btnConfrim = new Button() + { + X = Application.GetRealWidth(160), + Width = Application.GetRealWidth(160), + TextAlignment = TextAlignment.CenterRight, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.Confirm, + }; + topView.AddChidren(btnConfrim); + + UIPickerView uIPickerView = new UIPickerView() + { + Y = Application.GetRealHeight(40), + Height = Application.GetRealHeight(210), + Radius = (uint)Application.GetRealWidth(12), + }; + for (int i = trait.min; i <= trait.max; i += 1) + { + pickerItems.Add(i.ToString() + trait.GetUintString()); + } + uIPickerView.setNPicker(pickerItems, null, null); + optionBaseView.AddChidren(uIPickerView); + uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()+ "掳"), 0, 0); + + string selectItem = pickerItems[pickerItems.IndexOf(trait.value.ToString() + "掳")]; + if (pickerItems.Contains(trait.value + trait.GetUintString())) + { + selectItem = trait.value.ToString() + trait.GetUintString(); + } + //uIPickerView.setCurrentItems + dialog.Show(); + + pView.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + + btnCancel.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => { + selectItem = pickerItems[int1]; + }; + btnConfrim.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + btn.Text = selectItem; + //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ; + trait.value = selectItem.Replace(trait.GetUintString(), ""); + }; + + } + /// <summary> /// 鍔犺浇浜害閫夋嫨寮圭獥 @@ -843,6 +1113,7 @@ }; } + /// <summary> /// 鍔犺浇cct閫夋嫨寮圭獥 /// </summary> -- Gitblit v1.8.0