using System; using System.Collections.Generic; using HDL_ON.Common; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public class CombinedDimmingListPage : FrameLayout { FrameLayout bodyView; VerticalScrolViewLayout contentView; public CombinedDimmingListPage() { bodyView = this; } public void LoadPage() { new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView_AddIcon("CombinedDimming", (s,c)=>{ try { var page = new AddGroupControlPage(null, (newGC)=> { ReadGroupControlList(); }); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } catch { } }); contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(667 - 64), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(contentView); ReadGroupControlList(); #region contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) }); #endregion } /// /// 读取组控数据 /// private void ReadGroupControlList() { new System.Threading.Thread(() => { var pack = ApiUtlis.Ins.HttpRequest.GetGroupControlList(); if (pack != null) { if (pack.Code == StateCode.SUCCESS) { try { var groupControlList = Newtonsoft.Json.JsonConvert.DeserializeObject>(pack.Data.ToString()); Application.RunOnMainThread(() => { LoadGroupControlView(groupControlList); }); } catch (Exception ex) { MainPage.Log($"读取组控列表失败:{ex.Message}"); } } else { IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); } } }) { IsBackground = true }.Start(); } private void LoadGroupControlView(List list) { #if DEBUG if (list.Count == 0) { list.Add(new GroupControl() { name = "组合调光1", roomIds = new List { Room.CurrentSpatial.RoomList[0].roomId }, sid = "00000000000000001", type = "light", }); list.Add(new GroupControl() { name = "组合调光2", roomIds = new List { Room.CurrentSpatial.RoomList[0].roomId }, sid = "00000000000000002", type = "light", }); } #endif if (list.Count == 0) { } else { contentView.RemoveAll(); foreach (var groupControl in list) { var functionRow = new RowLayout() { Height = Application.GetRealHeight(65), BackgroundColor = CSS_Color.MainBackgroundColor, LineColor = 0x00000000 }; contentView.AddChidren(functionRow); var btnRight = new Button() { X = Application.GetRealWidth(339), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/Right.png", }; functionRow.AddChidren(btnRight); var btnFunctionName = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(10), Width = Application.GetRealWidth(308), Height = Application.GetRealHeight(24), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.FirstLevelTitleColor, Text = groupControl.name, }; functionRow.AddChidren(btnFunctionName); var btnFunctionLocationInfo = new Button() { X = Application.GetRealWidth(16), Y = btnFunctionName.Bottom, Width = Application.GetRealWidth(308), Height = Application.GetRealHeight(21), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextColor = CSS_Color.PromptingColor1, Text = groupControl.GetRoomListName(), }; functionRow.AddChidren(btnFunctionLocationInfo); functionRow.AddChidren( new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor, }); EventHandler eventHandler = (sender, e) => { var page = new AddGroupControlPage(groupControl, (newGC) => { try { Application.RunOnMainThread(() => { groupControl.roomIds = newGC.uids; btnFunctionLocationInfo.Text = newGC.GetUidListName(); }); }catch(Exception ex) { MainPage.Log($"刷新群控房间信息异常:{ex.Message}"); } }); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; functionRow.MouseUpEventHandler = eventHandler; btnRight.MouseUpEventHandler = eventHandler; btnFunctionName.MouseUpEventHandler = eventHandler; btnFunctionLocationInfo.MouseUpEventHandler = eventHandler; var btnDelGroupControl = new Button() { TextColor = CSS_Color.MainBackgroundColor, BackgroundColor = CSS_Color.WarningColor, TextID = StringId.Del, TextAlignment = TextAlignment.Center, }; functionRow.AddRightView(btnDelGroupControl); btnDelGroupControl.MouseUpEventHandler = (sender1, e1) => { var waitPage = new Loading(); this.AddChidren(waitPage); waitPage.Start(""); new System.Threading.Thread(() => { try { var pack = ApiUtlis.Ins.HttpRequest.DelGroupControl(groupControl.userDeviceGroupControlId); if (pack != null) { Application.RunOnMainThread(() => { try { if (pack.Code == StateCode.SUCCESS) { list.Remove(groupControl); LoadGroupControlView(list); } else { IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); } }catch(Exception ex) { MainPage.Log($"刷新组控数据异常:{ex.Message}"); } }); } }catch(Exception ex) { MainPage.Log($"删除组控异常:{ex.Message}"); } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.Hide(); waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); }; } } } } }