using System; using System.Collections.Generic; using HDL_ON.Entity; using HDL_ON.UI; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public partial class ClassificationPage : FrameLayout { #region 控件列表 FrameLayout bodyView; #region 顶部控件 /// /// 房间分页 /// Button btnRoomTilte; /// /// 功能分类 /// Button btnFuncTitle; #endregion /// /// 房间/功能分页区域 /// PageLayout contentPageView; #region 房间区域 FrameLayout roomPageView; /// /// 房间内容显示区域 /// FrameLayout roomFloorChangeView; #region 房间底部切换显示区域 /// /// 房间区域,顶部区域 /// FrameLayout roomTopView; /// /// 楼层选择下拉图标 /// Button btnFoorDownIcon; /// /// 楼层显示 /// Button btnFoor; /// /// 显示方式切换按钮 /// Button btnSwitchDipaly; #endregion /// /// 房间列表区域 /// VerticalScrolViewLayout roomListView; /// /// 房间区域集合 /// List roomViewList; #endregion #region 功能区域 VerticalScrolViewLayout functionsPageView; #endregion #endregion public ClassificationPage() { bodyView = this; } public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; #region top FrameLayout topView = new FrameLayout() { Height = Application.GetRealHeight(64), BackgroundColor = CSS_Color.TopViewColor, }; bodyView.AddChidren(topView); btnRoomTilte = new Button() { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(170), Height = Application.GetRealHeight(25), TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.HeadlineFontSize, TextColor = CSS_Color.PromptingColor1, SelectedTextColor = CSS_Color.MainColor, TextID = StringId.Rooms, IsSelected = true }; topView.AddChidren(btnRoomTilte); btnFuncTitle = new Button() { X = Application.GetRealWidth(209), Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(170), Height = Application.GetRealHeight(25), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.PromptingColor1, SelectedTextColor = CSS_Color.MainColor, TextID = StringId.Functions, }; topView.AddChidren(btnFuncTitle); #endregion contentPageView = new PageLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(667 - 64-49+20), BackgroundColor = CSS_Color.MainBackgroundColor, IsShowPoint = false }; bodyView.AddChidren(contentPageView); LoadRoomPageView(); LoadFunctionPageView(); LoadEventList(); } /// /// 加载房间列表界面 /// void LoadRoomPageView() { #region 房间区域 roomPageView = new FrameLayout(); contentPageView.AddChidren(roomPageView); /// /// 房间内容显示区域 /// roomFloorChangeView = new FrameLayout() { Height = Application.GetRealHeight(52), }; roomPageView.AddChidren(roomFloorChangeView); #region 房间底部切换显示区域 /// /// 房间区域,顶部区域 /// roomTopView = new FrameLayout() { Height = Application.GetRealHeight(53), }; roomFloorChangeView.AddChidren(roomTopView); /// /// 楼层选择下拉图标 /// btnFoorDownIcon = new Button() { Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), X = Application.GetRealWidth(16), Y = Application.GetRealHeight(18), UnSelectedImagePath = "Public/DownIcon.png", }; roomFloorChangeView.AddChidren(btnFoorDownIcon); /// /// 楼层显示 /// btnFoor = new Button() { X = btnFoorDownIcon.Right, Y = Application.GetRealHeight(18), Width = Application.GetRealWidth(200), Height = Application.GetMinRealAverage(16), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = UserConfig.Instance.CurFoor, }; roomFloorChangeView.AddChidren(btnFoor); /// /// 显示方式切换按钮 /// btnSwitchDipaly = new Button() { X = Application.GetRealWidth(335), Y = Application.GetRealHeight(12), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缩略图 SelectedImagePath = "Classification/ToggleDisplayLarge.png", }; roomFloorChangeView.AddChidren(btnSwitchDipaly); #endregion /// /// 房间列表区域 /// roomListView = new VerticalScrolViewLayout() { Y = roomFloorChangeView.Bottom, Height = Application.GetRealHeight(497 + 10 + 30), BackgroundColor = CSS_Color.MainBackgroundColor, }; roomPageView.AddChidren(roomListView); /// /// 房间区域集合 /// roomViewList = new List(); foreach (var room in DB_ResidenceData.residenceData.rooms) { var roomView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(184), Radius = (uint)Application.GetRealHeight(12), BorderColor = 0x00000000, BorderWidth = 1, }; roomListView.AddChidren(roomView); var roomViewbg = new Button() { UnSelectedImagePath = room.backgroundImage, }; roomView.AddChidren(roomViewbg); var roomViewbgColor = new Button() { BackgroundColor = 0x19333333, }; roomView.AddChidren(roomViewbgColor); var btnFloorAndRoomName = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(12 - 2), Width = Application.GetRealWidth(266), Height = Application.GetRealHeight(22 + 2 + 2), Text = room.floor + " " + room.name, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.SubheadingFontSize, }; roomView.AddChidren(btnFloorAndRoomName); #region 环境数据 var environmentalView = new FrameLayout() { Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom, Height = Application.GetRealHeight(32), Tag = "EnvironmentalView", }; roomView.AddChidren(environmentalView); Button btnTempIcon = new Button() { X = Application.GetRealWidth(12), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/InfoIcon/TempIcon.png", }; environmentalView.AddChidren(btnTempIcon); var btnTempValues = new Button() { X = btnTempIcon.Right + Application.GetRealWidth(4), Width = Application.GetRealWidth(30), Gravity = Gravity.CenterVertical, TextColor = CSS.CSS_Color.MainBackgroundColor, TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, Text = "--°", TextAlignment = TextAlignment.CenterLeft, Tag = "TempValues" }; environmentalView.AddChidren(btnTempValues); Button btnHumidityIcon = new Button() { X = btnTempValues.Right + Application.GetRealWidth(2), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/InfoIcon/HumidityIcon.png", }; environmentalView.AddChidren(btnHumidityIcon); var btnHumidityValues = new Button() { X = btnHumidityIcon.Right + Application.GetRealWidth(4), Width = Application.GetRealWidth(30), Gravity = Gravity.CenterVertical, TextColor = CSS.CSS_Color.MainBackgroundColor, TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, Text = "--%", TextAlignment = TextAlignment.CenterLeft, Tag = "HumidityValues" }; environmentalView.AddChidren(btnHumidityValues); Button btnPm25Icon = new Button() { X = btnHumidityValues.Right + Application.GetRealWidth(2), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/InfoIcon/Pm25Icon.png", }; environmentalView.AddChidren(btnPm25Icon); var btnPm25Values = new Button() { X = btnPm25Icon.Right + Application.GetRealWidth(4), Width = Application.GetRealWidth(30), Gravity = Gravity.CenterVertical, TextColor = CSS.CSS_Color.MainBackgroundColor, TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel, Text = "--", TextAlignment = TextAlignment.CenterLeft, Tag = "Pm25Values" }; environmentalView.AddChidren(btnPm25Values); roomView.AddChidren(environmentalView); #endregion var btnAllClose = new Button() { X = Application.GetRealWidth(282), Y = Application.GetRealHeight(126), Width = Application.GetMinRealAverage(58), Height = Application.GetMinRealAverage(58), UnSelectedImagePath = "", SelectedImagePath = "Classification/Room/AllCloseIcon.png", }; roomView.AddChidren(btnAllClose); #if DEBUG btnAllClose.IsSelected = true; #endif var btn = new Button() { Height = Application.GetRealHeight(20), }; roomListView.AddChidren(btn); roomViewList.Add(roomView); roomViewbgColor.MouseUpEventHandler += (sender, e) => { var view = new RoomPage(room); MainPage.BasePageView.AddChidren(view); view.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; } roomListView.AddChidren(new Button() { Height = Application.GetRealHeight(20) });//太高视图,将导航了遮挡的部分完整显示 #endregion } /// /// 加载功能列表界面 /// void LoadFunctionPageView() { #region functionsPageView = new VerticalScrolViewLayout() { BackgroundColor = CSS_Color.BackgroundColor, Height = Application.GetRealHeight(667 - 64 - 49 + 20), }; contentPageView.AddChidren(functionsPageView); FrameLayout functionContentView; functionContentView = new FrameLayout() { Y = Application.GetRealHeight(16), Height = Application.GetRealHeight(667 - 64 - 49 + 20), }; if (DB_ResidenceData.residenceData.functionTypeList.Count > 4) { functionContentView.Height += Application.GetRealHeight((220 * (DB_ResidenceData.residenceData.functionTypeList.Count - 4 - 2) / 2) + 20); } functionsPageView.AddChidren(functionContentView); int index = 0; List specialList = new List() { 1, 2, 5, 6, 9, 10, 13, 14, 17, 18, 21, 22 }; var s1View = new FrameLayout() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(164), }; functionContentView.AddChidren(s1View); var s2View = new FrameLayout() { X = Application.GetRealWidth(196), Width = Application.GetRealWidth(164), }; functionContentView.AddChidren(s2View); var lastY1 = Application.GetRealWidth(16); var lastY2 = Application.GetRealWidth(16); foreach (var item in DB_ResidenceData.residenceData.functionTypeList) { FrameLayout functionView = new FrameLayout() { Height = Application.GetRealWidth(161), Radius = (uint)Application.GetRealHeight(6), BackgroundColor = CSS_Color.MainBackgroundColor, Y = index % 2 == 1 ? lastY2 : lastY1 }; //高度稍高的view if (specialList.Contains(index)) { functionView.Height = Application.GetRealWidth(204); } if (index % 2 == 1) { lastY2 += functionView.Height + Application.GetRealWidth(16); } else { lastY1 += functionView.Height + Application.GetRealWidth(16); } if (index % 2 == 0) { s1View.AddChidren(functionView); } else { s2View.AddChidren(functionView); } Button btnFunctionViewBg; btnFunctionViewBg = new Button() { Height = Application.GetRealWidth(161), UnSelectedImagePath = "FunctionIcon/FunctionBg/" + item + "FunctionBg.png", }; functionView.AddChidren(btnFunctionViewBg); Button btnName = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(24), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterLeft, }; functionView.AddChidren(btnName); int functionCount = 0; switch (item) { case "Light": #region Light btnName.TextID = StringId.Lights; functionCount = DB_ResidenceData.residenceData.functionList.lights.Count; Button btnLightPower = new Button() { X = Application.GetRealWidth(120), Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", }; functionView.AddChidren(btnLightPower); btnLightPower.MouseUpEventHandler = (sender, e) => { LoadEvent_LightsPower(btnLightPower); }; btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { var skipView = new FunctionPage(); MainPage.BasePageView.AddChidren(skipView); skipView.LoadPage(StringId.Lights); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion break; case "AC": #region AC btnName.TextID = StringId.AC; functionCount = DB_ResidenceData.residenceData.functionList.aCs.Count; Button btnAcPower = new Button() { X = Application.GetRealWidth(120), Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", }; functionView.AddChidren(btnAcPower); btnAcPower.MouseUpEventHandler = (sender, e) => { LoadEvent_LightsPower(btnAcPower); }; btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { var skipView = new FunctionPage(); MainPage.BasePageView.AddChidren(skipView); skipView.LoadPage(StringId.AC); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion break; case "Curtain": #region Curtain btnName.TextID = StringId.Curtain; functionCount = DB_ResidenceData.residenceData.functionList.curtains.Count; Button btnClose; btnClose = new Button() { X = Application.GetRealWidth(72), Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png", }; functionView.AddChidren(btnClose); Button btnOpen; btnOpen = new Button() { X = Application.GetRealWidth(120), Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png", }; functionView.AddChidren(btnOpen); LoadEvent_CurtainSwitch(btnClose, btnOpen); btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { var skipView = new FunctionPage(); MainPage.BasePageView.AddChidren(skipView); skipView.LoadPage(StringId.Curtain); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion break; case "FloorHeating": btnName.TextID = StringId.FloorHeating; break; case "DoorLock": btnName.TextID = StringId.DoorLock; break; case "Electric": btnName.TextID = StringId.Electric; break; case "EnergyMonitoring": btnName.TextID = StringId.EnergyMonitoring; break; case "Environmental": btnName.TextID = StringId.Environmental; break; case "FreshAir": btnName.TextID = StringId.FreshAir; break; case "Music": btnName.TextID = StringId.Music; break; case "Panel": btnName.TextID = StringId.Panel; break; case "SecurityMonitoring": btnName.TextID = StringId.SecurityMonitoring; break; case "Sensor": btnName.TextID = StringId.Sensor; break; case "VideoIntercom": btnName.TextID = StringId.VideoIntercom; break; } Button btnFunctionCount = new Button() { X = Application.GetRealWidth(16), Y = btnName.Bottom, Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(24), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterLeft, Text = "0/" + functionCount.ToString() }; functionView.AddChidren(btnFunctionCount); index++; } #endregion } } }