using System; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public class AirSwitchPage : FrameLayout { #region 控件集合 static AirSwitchPage bodyView; /// /// 控制界面加载区域 /// FrameLayout controlView; /// /// 功能备注 /// Button btnFunctionName; /// /// 功能所属楼层、房间 /// Button btnFromFoorAndRoom; /// /// 收藏按钮 /// Button btnCollection; /// /// 继电器状态图标 /// Button btnSwitchIcon; /// /// 开关按钮 /// Button btnSwitch; #endregion #region 区域变量 Function function; Button btnCollection_Out; Button btnFunctionName_Out; Button btnFromFloor_Out; /// /// 刷新显示信息 /// Action actionRefresh; #endregion public AirSwitchPage(Function func) { bodyView = this; function = func; } /// /// 加载界面 /// /// 收藏按钮 /// 功能名称信息按钮 /// 功能楼层信息按钮 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(); } /// /// 更新状态 /// 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}"); } }); } /// /// 加载事件列表 /// void LoadEventList() { LoadSwitchEvent(); LoadCollectionEvent(); //回退刷新信息事件 actionRefresh = () => { btnFunctionName.Text = btnFunctionName_Out.Text = function.name; btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName(); //function.SaveFunctionData(true); }; } /// /// 收藏功能按钮事件 /// void LoadCollectionEvent() { btnCollection.MouseUpEventHandler += (sender, e) => { btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; function.CollectFunction(); }; } /// /// 加载开关事件 /// 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 d = new System.Collections.Generic.Dictionary(); 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 d = new System.Collections.Generic.Dictionary(); d.Add("on_off", function.trait_on_off.curValue.ToString()); DriverLayer.Control.Ins.SendWriteCommand(function, d); }) { IsBackground = true }.Start(); }; } } }