From d9fd4c59bea0f21d4c8241920cef90440cf53f43 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期六, 28 八月 2021 17:20:45 +0800 Subject: [PATCH] 2021-8-28-05 --- HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchPage.cs | 249 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 249 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchPage.cs new file mode 100644 index 0000000..d693db6 --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchPage.cs @@ -0,0 +1,249 @@ +锘縰sing System; +using HDL_ON.Entity; +using HDL_ON.UI.CSS; +using Shared; + +namespace HDL_ON.UI +{ + public class AirSwitchPage : FrameLayout + { + + #region 鎺т欢闆嗗悎 + static AirSwitchPage bodyView; + /// <summary> + /// 鎺у埗鐣岄潰鍔犺浇鍖哄煙 + /// </summary> + FrameLayout controlView; + /// <summary> + /// 鍔熻兘澶囨敞 + /// </summary> + Button btnFunctionName; + /// <summary> + /// 鍔熻兘鎵�灞炴ゼ灞傘�佹埧闂� + /// </summary> + Button btnFromFoorAndRoom; + /// <summary> + /// 鏀惰棌鎸夐挳 + /// </summary> + Button btnCollection; + /// <summary> + /// 缁х數鍣ㄧ姸鎬佸浘鏍� + /// </summary> + Button btnSwitchIcon; + /// <summary> + /// 寮�鍏虫寜閽� + /// </summary> + Button btnSwitch; + #endregion + + #region 鍖哄煙鍙橀噺 + Function function; + Button btnCollection_Out; + Button btnFunctionName_Out; + Button btnFromFloor_Out; + /// <summary> + /// 鍒锋柊鏄剧ず淇℃伅 + /// </summary> + Action actionRefresh; + #endregion + + public AirSwitchPage(Function func) + { + bodyView = this; + function = func; + + } + /// <summary> + /// 鍔犺浇鐣岄潰 + /// </summary> + /// <param name="btnCollectionIcon">鏀惰棌鎸夐挳</param> + /// <param name="btnFunctionName">鍔熻兘鍚嶇О淇℃伅鎸夐挳</param> + /// <param name="btnFromFloor">鍔熻兘妤煎眰淇℃伅鎸夐挳</param> + public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut) + { + if (btnCollectionIcon == null) + { + btnCollection_Out = new Button(); + btnFunctionName_Out = new Button(); + btnFromFloor_Out = new Button(); + } + else + { + btnCollection_Out = btnCollectionIcon; + btnFunctionName_Out = btnFunctionNameOut; + btnFromFloor_Out = btnFromFloorOut; + } + bodyView.BackgroundColor = CSS_Color.BackgroundColor; + //new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(StringId.Lights), function); + + controlView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(88), + Width = Application.GetRealWidth(327), + Height = Application.GetRealHeight(526), + BackgroundImagePath = "Public/Fragmentbg.png", + }; + bodyView.AddChidren(controlView); + + btnFunctionName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(14), + Width = Application.GetRealWidth(270), + Height = Application.GetRealHeight(37), + TextColor = CSS_Color.FirstLevelTitleColor, + TextAlignment = TextAlignment.CenterLeft, + TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, + Text = function.name, + }; + controlView.AddChidren(btnFunctionName); + + btnFromFoorAndRoom = new Button() + { + X = Application.GetRealWidth(16), + Y = btnFunctionName.Bottom, + Width = Application.GetRealWidth(270), + Height = Application.GetRealHeight(21), + TextColor = CSS_Color.PromptingColor1, + TextAlignment = TextAlignment.CenterLeft, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = function.GetRoomListName() + }; + controlView.AddChidren(btnFromFoorAndRoom); + + btnCollection = new Button() + { + X = Application.GetRealWidth(273), + Y = Application.GetRealHeight(14), + Width = Application.GetMinRealAverage(40), + Height = Application.GetMinRealAverage(40), + SelectedImagePath = "Collection/CollectionIcon.png", + UnSelectedImagePath = "Collection/CollectionGrayIcon.png", + IsSelected = function.collect + }; + controlView.AddChidren(btnCollection); + + btnSwitchIcon = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(102), + Width = Application.GetRealWidth(148), + Height = Application.GetRealWidth(198), + UnSelectedImagePath = "FunctionIcon/Electrical/AirSwitch/AirSwitchBgIcon.png", + SelectedImagePath = "FunctionIcon/Electrical/AirSwitch/AirSwitchBgOnIcon.png", + IsSelected = function.trait_on_off.curValue.ToString() == "on" + }; + controlView.AddChidren(btnSwitchIcon); + + btnSwitch = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(466),// + btnSwitchIcon.Bottom, + Width = Application.GetMinRealAverage(32), + Height = Application.GetMinRealAverage(32), + UnSelectedImagePath = "Public/PowerClose.png", + SelectedImagePath = "Public/PowerOpen.png", + IsSelected = function.trait_on_off.curValue.ToString() == "on" + }; + controlView.AddChidren(btnSwitch); + + new TopViewDiv(bodyView, Language.StringByID(StringId.Electric)).LoadTopView_FunctionTop(function, actionRefresh,false); + new System.Threading.Thread(() => + { + DriverLayer.Control.Ins.SendReadCommand(function); + }) + { IsBackground = true }.Start(); + + + LoadEventList(); + } + + + + + /// <summary> + /// 鏇存柊鐘舵�� + /// </summary> + public static void UpdataState(Function updataTemp) + { + Application.RunOnMainThread(() => + { + try + { + if (bodyView == null) + return; + if (updataTemp.spk == bodyView.function.spk && updataTemp.sid == bodyView.function.sid) + { + bodyView.btnSwitch.IsSelected = bodyView.btnSwitchIcon.IsSelected = updataTemp.trait_on_off.curValue.ToString() == "on"; + } + } + catch (Exception ex) + { + MainPage.Log($"AirSwitch error {ex.Message}"); + } + }); + } + /// <summary> + /// 鍔犺浇浜嬩欢鍒楄〃 + /// </summary> + void LoadEventList() + { + LoadSwitchEvent(); + LoadCollectionEvent(); + + //鍥為��鍒锋柊淇℃伅浜嬩欢 + actionRefresh = () => { + btnFunctionName.Text = btnFunctionName_Out.Text = function.name; + btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName(); + //function.SaveFunctionData(true); + }; + } + + /// <summary> + /// 鏀惰棌鍔熻兘鎸夐挳浜嬩欢 + /// </summary> + void LoadCollectionEvent() + { + btnCollection.MouseUpEventHandler += (sender, e) => { + btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; + function.CollectFunction(); + }; + } + + /// <summary> + /// 鍔犺浇寮�鍏充簨浠� + /// </summary> + void LoadSwitchEvent() + { + btnSwitchIcon.MouseUpEventHandler = (sender, e) => + { + btnSwitch.IsSelected = btnSwitchIcon.IsSelected = !btnSwitchIcon.IsSelected; + new System.Threading.Thread(() => + { + function.trait_on_off.curValue = btnSwitchIcon.IsSelected ? "on" : "off"; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("on_off", function.trait_on_off.curValue.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); + }; + btnSwitch.MouseUpEventHandler = (sender, e) => + { + btnSwitchIcon.IsSelected = btnSwitch.IsSelected = !btnSwitch.IsSelected; + new System.Threading.Thread(() => + { + function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("on_off", function.trait_on_off.curValue.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); + + }; + + } + + + } +} \ No newline at end of file -- Gitblit v1.8.0