using System; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; using System.Collections.Generic; namespace HDL_ON.UI.UI2.Intelligence.Automation { public class FunTpye { public FunTpye(string str) { if_Type = str; } /// /// 表示是(条件/目标) /// private string if_Type; Loading loading = new Loading(); /// /// 设备功能ui /// /// 父控件 /// /// 支持功能类型个数<表示上面所占高度> public void FunTypeView(FrameLayout viewLayout,int bottm,int funCount) { viewLayout.AddChidren(loading); LogicView.FunAllAreaView funAllAreaView = new LogicView.FunAllAreaView(); funAllAreaView.frameLayout.Y = bottm + Application.GetRealHeight(8); viewLayout.AddChidren(funAllAreaView.FLayoutView()); VerticalScrolViewLayout vv = new VerticalScrolViewLayout { Y = funAllAreaView.frameLayout.Bottom, Height = Application.GetRealHeight(667 - 64 - 50 * funCount - 8-50), }; viewLayout.AddChidren(vv); if (!MainView.IsGatewayType) { //如果是bus网关重置高度; funAllAreaView.frameLayout.Y = Application.GetRealHeight(0); vv.Y = funAllAreaView.frameLayout.Bottom; } //房间点击事件 EventHandler roomClick = (sender, e) => { #region 区域弹框界面 FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; viewLayout.AddChidren(fLayout); fLayout.MouseUpEventHandler += (sender1, e1) => { fLayout.RemoveFromParent(); }; FrameLayout bghFrameLyout = new FrameLayout { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(103 + 50 * funCount + 8-64), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(21 + 44), //BackgroundImagePath = "LogicIcon/bjicon.png", }; fLayout.AddChidren(bghFrameLyout); FrameLayout areaBgh = new FrameLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44), }; VerticalScrolViewLayout vvBgh = new VerticalScrolViewLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44 * 5), }; var roomList = LogicMethod.Current.GetGatewayRoomList(Language.StringByID(StringId.allAreas)); if (roomList.Count > 5) { bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * 5); bghFrameLyout.AddChidren(vvBgh); bghFrameLyout.BackgroundImagePath = "LogicIcon/bjicon5.png"; } else { bghFrameLyout.AddChidren(areaBgh); bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * roomList.Count); areaBgh.Height = Application.GetRealHeight(44 * roomList.Count); bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count}.png"; } #endregion for (int i = 0; i < roomList.Count; i++) { var room = roomList[i]; LogicView.AreaView areaView = new LogicView.AreaView(); if (roomList.Count > 5) { vvBgh.AddChidren(areaView.FLayoutView()); } else { areaView.frameLayout.Y = Application.GetRealHeight(i * 44); areaBgh.AddChidren(areaView.FLayoutView()); } areaView.btnRoomName.Text = room.roomName; areaView.btnClick.Tag = room; areaView.btnClick.MouseUpEventHandler += (sender2, e2) => { fLayout.RemoveFromParent(); funAllAreaView.btnText1.Text = (areaView.btnClick.Tag as Entity.Room).roomName; ///切换房间默认功能类型全部; funAllAreaView.btnText2.Text = Language.StringByID(StringId.allFun); //selectedRoom = (areaView.btnClick.Tag as Entity.Room); UserInfo.Current.logicselectedRoom = (areaView.btnClick.Tag as Entity.Room); ///切换房间默认:全部功能 UserInfo.Current.logicselectedFunction = Language.StringByID(StringId.allFun); ///获取显示设备列表 var list = LogicMethod.Current.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room, if_Type); this.LoadingDeviceListView(vv, list); }; if (roomList.Count - 1 == i) { ///改变最后那条一个线的颜色,界面显示效果作用; areaView.btnLine.BackgroundColor = CSS.CSS_Color.view; } } }; funAllAreaView.btnText1.MouseUpEventHandler += roomClick; funAllAreaView.btnIcon1.MouseUpEventHandler += roomClick; //功能类型点击事件 EventHandler funClick = (sender3, e3) => { //获取最终显示列表 var functionList = LogicMethod.Current.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_Type); //获取设备列表的类型(例如:灯光类,窗帘类。。。) var deviceTypeList = LogicMethod.Current.GetDeviceTypeList(functionList); if (deviceTypeList.Count == 0) { //没有类型直接返回去; return; } #region 区域弹框界面 FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; viewLayout.AddChidren(fLayout); fLayout.MouseUpEventHandler += (sender1, e1) => { fLayout.RemoveFromParent(); }; FrameLayout bghFrameLyout = new FrameLayout { X = Application.GetRealWidth(118), Y = Application.GetRealHeight(103 + 50 * funCount + 8-64), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(21 + 44), //BackgroundImagePath = "LogicIcon/bjicon5.png", }; fLayout.AddChidren(bghFrameLyout); FrameLayout areaBgh = new FrameLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44), }; VerticalScrolViewLayout vvBgh = new VerticalScrolViewLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44 * 5), }; if (deviceTypeList.Count > 5) { bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * 5); bghFrameLyout.AddChidren(vvBgh); bghFrameLyout.BackgroundImagePath = "LogicIcon/bjicon5.png"; } else { bghFrameLyout.AddChidren(areaBgh); bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * deviceTypeList.Count); areaBgh.Height = Application.GetRealHeight(44 * deviceTypeList.Count); bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count}.png"; } #endregion for (int i = 0; i < deviceTypeList.Count; i++) { var deviceTypeName = deviceTypeList[i]; LogicView.AreaView areaView = new LogicView.AreaView(); if (deviceTypeList.Count > 5) { vvBgh.AddChidren(areaView.FLayoutView()); } else { areaView.frameLayout.Y = Application.GetRealHeight(i * 44); areaBgh.AddChidren(areaView.FLayoutView()); } areaView.btnRoomName.Text = deviceTypeName; areaView.btnClick.Tag = deviceTypeName; areaView.btnClick.MouseUpEventHandler += (sender, e2) => { fLayout.RemoveFromParent(); string clickText = areaView.btnClick.Tag.ToString(); funAllAreaView.btnText2.Text = clickText; UserInfo.Current.logicselectedFunction = clickText; ///获取设备单个大类spk列表(例如:灯光类,空调类...) var typeFunctionList2 = LogicMethod.Current.GetDeviceTypeFunctionList(clickText); ///获取设备单个小类列表(例如:灯光1,灯光2...) var lists2 = LogicMethod.Current.GetShowDeviceList(typeFunctionList2, functionList); this.LoadingDeviceListView(vv, lists2); }; if (deviceTypeList.Count - 1 == i) { ///改变最后那条一个线的颜色,界面显示效果作用; areaView.btnLine.BackgroundColor = CSS.CSS_Color.view; } } }; funAllAreaView.btnText2.MouseUpEventHandler += funClick; funAllAreaView.btnIcon2.MouseUpEventHandler += funClick; ///获取房间支持的设备列表 var deviceList = LogicMethod.Current.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_Type); ///获取设备单个大类spk列表(例如:灯光类,空调类...) var typeFunctionList = LogicMethod.Current.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction); ///获取设备单个小类列表(例如:灯光1,灯光2...) var lists = LogicMethod.Current.GetShowDeviceList(typeFunctionList, deviceList); if (string.IsNullOrEmpty(UserInfo.Current.logicselectedRoom.roomName)) { UserInfo.Current.logicselectedRoom.roomName = Language.StringByID(StringId.allAreas); } ///房间名称 funAllAreaView.btnText1.Text = UserInfo.Current.logicselectedRoom.roomName; if (string.IsNullOrEmpty(UserInfo.Current.logicselectedFunction)) { UserInfo.Current.logicselectedFunction = Language.StringByID(StringId.allFun); } ///设备大类名称<灯光类。。。。。> funAllAreaView.btnText2.Text = UserInfo.Current.logicselectedFunction; this.LoadingDeviceListView(vv, lists); } /// /// 显示设备的View /// /// 上下滑动 /// private void LoadingDeviceListView(VerticalScrolViewLayout verticalScrolView, List deviceList) { loading.Start(); System.Threading.Tasks.Task.Run(() => { Application.RunOnMainThread(() => { loading.Hide(); verticalScrolView.RemoveAll(); foreach (var dev in deviceList) { LogicView.SelectTypeView funView = new LogicView.SelectTypeView(); funView.btnText.Visible = false; funView.btnDeviceName.Visible = true; funView.btnRoomName.Visible = true; funView.btnLine.X = Application.GetRealWidth(16); funView.btnLine.Width = Application.GetRealWidth(343); verticalScrolView.AddChidren(funView.FLayoutView()); funView.btnIcon.UnSelectedImagePath = LogicMethod.Current.GetDeviceIconPath(dev); funView.btnDeviceName.Text = dev.name; funView.btnRoomName.Text = dev.GetRoomListName(); funView.btnClick.MouseUpEventHandler += (sen, e) => { if (if_Type == LogicMethod.condition_if) { ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList(); MainPage.BasePageView.AddChidren(conditionDeviceFunList); conditionDeviceFunList.Show(dev, 0, false); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList(); MainPage.BasePageView.AddChidren(targetDeviceFunList); targetDeviceFunList.Show(dev, 0, false); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } }; } }); }); } } }