From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs | 974 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 709 insertions(+), 265 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs index 8bc0bf6..3914880 100644 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs @@ -71,11 +71,12 @@ { bodyView = this; roomsShowed = new List<Room>(); - roomsShowed.AddRange(DB_ResidenceData.residenceData.rooms); + roomsShowed.AddRange(SpatialInfo.CurrentSpatial.RoomList); } public void LoadPage() { + MainPage.CurPageIndex = 1; bodyView.BackgroundColor = CSS_Color.BackgroundColor; #region top FrameLayout topView = new FrameLayout() @@ -117,7 +118,7 @@ contentPageView = new PageLayout() { Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(667 - 64-49+20), + Height = Application.GetRealHeight(667 - 64 - 49 + 30), BackgroundColor = CSS_Color.MainBackgroundColor, IsShowPoint = false }; @@ -144,7 +145,7 @@ Height = Application.GetRealHeight(52), }; roomPageView.AddChidren(roomFloorChangeView); - #region 鎴块棿搴曢儴鍒囨崲鏄剧ず鍖哄煙 + #region 鎴块棿椤堕儴鍒囨崲鏄剧ず鍖哄煙 /// <summary> /// 鎴块棿鍖哄煙锛岄《閮ㄥ尯鍩� /// </summary> @@ -177,7 +178,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, - Text = OnAppConfig.Instance.CurFoor, + Text = DB_ResidenceData.Instance.CurFloor.roomName, }; roomFloorChangeView.AddChidren(btnFloor); /// <summary> @@ -191,8 +192,14 @@ Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缂╃暐鍥� SelectedImagePath = "Classification/ToggleDisplayLarge.png", + IsSelected = OnAppConfig.Instance.IsShowBigPicture }; roomFloorChangeView.AddChidren(btnSwitchDipaly); + btnSwitchDipaly.MouseUpEventHandler = (sender, e) => { + OnAppConfig.Instance.IsShowBigPicture = !OnAppConfig.Instance.IsShowBigPicture; + btnSwitchDipaly.IsSelected = OnAppConfig.Instance.IsShowBigPicture; + LoadRoomRows(true); + }; #endregion /// <summary> @@ -202,7 +209,7 @@ { Y = roomFloorChangeView.Bottom, Height = Application.GetRealHeight(497 + 10 + 30), - BackgroundColor = CSS_Color.MainBackgroundColor, + //BackgroundColor = CSS_Color.MainBackgroundColor, }; roomPageView.AddChidren(roomListView); LoadRoomRows(); @@ -215,156 +222,385 @@ /// <summary> /// 鍔犺浇鎴块棿鍒楄〃鍖哄煙 /// </summary> - void LoadRoomRows () + /// <param name="animationEffect">鍔ㄧ敾鏁堟灉</param> + void LoadRoomRows(bool animationEffect = false) { - roomListView.RemoveAll(); - foreach (var room in roomsShowed) + if (animationEffect) { - var roomView = new FrameLayout() + ///绉诲姩鏂瑰悜 + var runDirection = OnAppConfig.Instance.IsShowBigPicture ? 1 : -1; + for (int i = 0; i < roomListView.ChildrenCount; i++) { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(184), - Radius = (uint)Application.GetRealHeight(12), - BorderColor = 0x00000000, - BorderWidth = 1, - Tag = room.sid, - }; - roomListView.AddChidren(roomView); + var childView = roomListView.GetChildren(i); - var roomViewbg = new Button() + if (childView.GetType() == typeof(FrameLayout)) + { + var roomView = childView as FrameLayout; + + //澶у浘鏄剧ず + if (OnAppConfig.Instance.IsShowBigPicture) + { + LoadBigPirtureRoomRow(roomView, roomsShowed[i]); + } + else//鏃犲浘鏄剧ず + { + LoadSmallPirtureRoomRow(roomView, roomsShowed[i]); + } + } + + new System.Threading.Thread(() => + { + //闇�瑕佺Щ鍔ㄧ殑楂樺害 + var runHeight = Application.GetRealWidth(i * 142); + + int runCount = 0; + //寰幆娆℃暟锛屽姩鐢绘晥鏋滈渶瑕佸湪1绉� 锛�10娆★級鍐呭畬鎴� + while (runCount < 9) + { + Application.RunOnMainThread(() => + { + if (childView.GetType() == typeof(FrameLayout)) + { + childView.Height += Application.GetRealWidth(14) * runDirection; + } + if (i > 0) + { + childView.Y += runDirection * Application.GetRealWidth(14 * i); + } + }); + runCount++; + System.Threading.Thread.Sleep(12); + } + Application.RunOnMainThread(() => + { + childView.Y += runHeight * runDirection; + + if (childView.GetType() == typeof(FrameLayout)) + { + if (runDirection == 1) + { + childView.Height = Application.GetRealWidth(192+20); + } + else + { + childView.Height = Application.GetRealWidth(70+20); + } + } + }); + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.Highest }.Start(); + } + } + else + { + roomListView.RemoveAll(); + foreach (var room in roomsShowed) { - UnSelectedImagePath = room.backgroundImage, - }; - roomView.AddChidren(roomViewbg); + //澶у浘鏄剧ず + if (OnAppConfig.Instance.IsShowBigPicture) + { + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.MainBackgroundColor; + var roomView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(192 + 20),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9 + Radius = (uint)Application.GetRealWidth(12), + Tag = room.roomId, + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + roomListView.AddChidren(roomView); - var roomViewbgColor = new Button() - { - BackgroundColor = 0x19333333, - }; - roomView.AddChidren(roomViewbgColor); + LoadBigPirtureRoomRow(roomView, room); - 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/DeviceInfoIcon/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/DeviceInfoIcon/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/DeviceInfoIcon/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 = "Classification/Room/AllCloseIcon.png", - Tag = "AllClose", - Visible = false - }; - roomView.AddChidren(btnAllClose); - LoadEvent_CloseAllFunction(btnAllClose, room); - - var btn = new Button() - { - Height = Application.GetRealHeight(20), - }; - roomListView.AddChidren(btn); - - roomViewbgColor.MouseUpEventHandler += (sender, e) => { - var view = new RoomPage(room); - MainPage.BasePageView.AddChidren(view); - view.LoadPage(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; - + } + else//鏃犲浘鏄剧ず + { + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.BackgroundColor; + var roomView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(70 + 20), + Radius = (uint)Application.GetRealWidth(12), + Tag = room.roomId, + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + roomListView.AddChidren(roomView); + LoadSmallPirtureRoomRow(roomView, room); + } + } } } + + /// <summary> + /// 鍔犺浇澶у浘鎴块棿row + /// </summary> + /// <param name="roomView"></param> + /// <param name="room"></param> + void LoadBigPirtureRoomRow(FrameLayout roomView, Room room) + { + roomView.RemoveAll(); + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.MainBackgroundColor; + roomView.BackgroundColor = CSS_Color.MainBackgroundColor; + var roomViewbg = new ImageView() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9 + Radius = (uint)Application.GetRealWidth(12), + }; + roomView.AddChidren(roomViewbg); + + //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶 + ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg); + + 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.floorName + room.roomName, + 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/DeviceInfoIcon/TempIcon.png", + //}; + //environmentalView.AddChidren(btnTempIcon); + + //var btnTempValues = new Button() + //{ + // X = btnTempIcon.Right + Application.GetRealWidth(4), + // Width = Application.GetRealWidth(30), + // Gravity = Gravity.CenterVertical, + // TextColor = CSS_Color.MainBackgroundColor, + // TextSize = 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/DeviceInfoIcon/HumidityIcon.png", + //}; + //environmentalView.AddChidren(btnHumidityIcon); + + //var btnHumidityValues = new Button() + //{ + // X = btnHumidityIcon.Right + Application.GetRealWidth(4), + // Width = Application.GetRealWidth(30), + // Gravity = Gravity.CenterVertical, + // TextColor = CSS_Color.MainBackgroundColor, + // TextSize = 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/DeviceInfoIcon/Pm25Icon.png", + //}; + //environmentalView.AddChidren(btnPm25Icon); + + //var btnPm25Values = new Button() + //{ + // X = btnPm25Icon.Right + Application.GetRealWidth(4), + // Width = Application.GetRealWidth(30), + // Gravity = Gravity.CenterVertical, + // TextColor = CSS_Color.MainBackgroundColor, + // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + // Text = "--", + // TextAlignment = TextAlignment.CenterLeft, + // Tag = "Pm25Values" + //}; + //environmentalView.AddChidren(btnPm25Values); + //roomView.AddChidren(environmentalView); + #endregion + + var roomViewbgColor = new Button() + { + Height = Application.GetRealWidth(192), + Radius = (uint)Application.GetRealWidth(12), + BackgroundColor = 0x19333333, + }; + roomView.AddChidren(roomViewbgColor); + + var btnAllClose = new Button() + { + X = Application.GetRealWidth(282), + Y = Application.GetRealWidth(126), + Width = Application.GetMinRealAverage(48), + Height = Application.GetMinRealAverage(48), + UnSelectedImagePath = "Classification/Room/AllCloseIcon.png", + Tag = "AllClose", + Visible = false + }; + roomView.AddChidren(btnAllClose); + LoadEvent_CloseAllFunction(btnAllClose, room); + + //var btn = new Button() + //{ + // Y = Application.GetRealWidth(192), + // Height = Application.GetRealWidth(20), + // BackgroundColor = CSS_Color.MainBackgroundColor, + //}; + //roomView.AddChidren(btn); + + roomViewbgColor.MouseUpEventHandler += (sender, e) => + { + Action ReloadRoomName = () => + { + btnFloorAndRoomName.Text = room.floorName + room.roomName; + }; + + //鎴块棿鍒犻櫎浜嬩欢 + Action deleteAction = () => + { + roomView.RemoveFromParent(); + }; + + //鎴块棿鑳屾櫙鍥句慨鏀逛簨浠跺洖璋� + Action modifyImageAction = () => + { + //roomViewbg.ImagePath = room.backgroundImage; + ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg); + }; + + var view = new RoomPage(room, ReloadRoomName, deleteAction, modifyImageAction); + MainPage.BasePageView.AddChidren(view); + view.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + } + /// <summary> + /// 璁拌浇灏忓浘鎴块棿row + /// </summary> + void LoadSmallPirtureRoomRow(FrameLayout roomView, Room room) + { + roomView.RemoveAll(); + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.BackgroundColor; + roomView.BackgroundColor = CSS_Color.BackgroundColor; + //roomView.BackgroundColor = CSS_Color.MainBackgroundColor; + + + var viewbg = new Button() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(70), + Radius = (uint)Application.GetRealWidth(12), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + roomView.AddChidren(viewbg); + + var btnRoomName = new Button() + { + X = Application.GetRealWidth(16), + //Y = Application.GetRealHeight(12 - 2), + Width = Application.GetRealWidth(266), + Height = Application.GetRealHeight(52), + Text = room.roomName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + }; + roomView.AddChidren(btnRoomName); + + var btnFloorName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(19), + Width = Application.GetRealWidth(266), + Height = Application.GetRealHeight(46), + Text = room.floorName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + }; + roomView.AddChidren(btnFloorName); + + var roomViewbg = new ImageView() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(70), + Radius = (uint)Application.GetRealWidth(12), + }; + roomView.AddChidren(roomViewbg); + + var btnAllClose = new Button() + { + X = Application.GetRealWidth(278), + Y = Application.GetRealWidth(15), + Width = Application.GetMinRealAverage(50), + Height = Application.GetMinRealAverage(50), + UnSelectedImagePath = "Classification/Room/AllCloseIcon2.png", + Tag = "AllClose", + Visible = false + }; + roomView.AddChidren(btnAllClose); + LoadEvent_CloseAllFunction(btnAllClose, room); + + //var btn = new Button() + //{ + // Y = Application.GetRealWidth(70), + // Height = Application.GetRealWidth(20), + // BackgroundColor = CSS_Color.BackgroundColor, + //}; + //roomView.AddChidren(btn); + + roomViewbg.MouseUpEventHandler += (sender, e) => + { + Action ReloadRoomName = () => + { + btnFloorName.Text = room.floorName; + btnRoomName.Text = room.roomName; + }; + + //鎴块棿鍒犻櫎浜嬩欢 + Action deleteAction = () => + { + roomView.RemoveFromParent(); + }; + Action action = () => + { + }; + + var view = new RoomPage(room, ReloadRoomName, deleteAction, action); + MainPage.BasePageView.AddChidren(view); + view.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + } + /// <summary> /// 鍔犺浇鍔熻兘鍒楄〃鐣岄潰 @@ -385,12 +621,8 @@ 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<int> specialList = new List<int>() { 1, 2, 5, 6, 9, 10, 13, 14, 17, 18, 21, 22 }; @@ -411,13 +643,107 @@ var lastY1 = Application.GetRealWidth(16); var lastY2 = Application.GetRealWidth(16); + var functionContentViewHeight = Application.GetRealWidth(16); - foreach (var item in DB_ResidenceData.residenceData.functionTypeList) + var functionCategoryCount = 0; + + foreach (var item in DB_ResidenceData.Instance.functionTypeList) { + int functionCount = 0; + int functionOnCount = 0; + switch (item) + { + case ShowFunction.Light: + #region Light + functionCount = FunctionList.List.GetLightList().Count; + functionOnCount = FunctionList.List.GetLightList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + #endregion + break; + case ShowFunction.AC: + #region AC + functionCount = FunctionList.List.GetAcList().Count; + functionOnCount = FunctionList.List.GetAcList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + #endregion + break; + case ShowFunction.Curtain: + #region Curtain + functionCount = FunctionList.List.GetCurtainList().Count; + functionOnCount = FunctionList.List.GetCurtainList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + #endregion + break; + case ShowFunction.FloorHeating: + #region 鍦扮儹 + functionCount = FunctionList.List.GetFloorHeatingList().Count; + functionOnCount = FunctionList.List.GetFloorHeatingList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + #endregion + break; + case ShowFunction.DoorLock: + break; + case ShowFunction.Electric: + #region 鐢靛櫒 + functionCount = FunctionList.List.GetElectricals().Count; + functionOnCount = FunctionList.List.GetElectricals().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + #endregion + break; + case ShowFunction.EnergyMonitoring: + #region 鑳芥簮 + functionCount = FunctionList.List.GetEnergyList().Count; + functionOnCount = FunctionList.List.GetEnergyList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + #endregion + break; + case ShowFunction.Environmental: + #region 鐜鏁版嵁 + functionCount = FunctionList.List.GetEnvirSensorsList().Count; + #endregion + break; + case ShowFunction.FreshAir: + functionCount = FunctionList.List.GetAirFreshList().Count; + functionOnCount = FunctionList.List.GetAirFreshList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + break; + case ShowFunction.Music: + functionCount = FunctionList.List.GetMusicList().Count; +#if DEBUG + functionCount = 1; +#endif + break; + case ShowFunction.Panel: + break; + case ShowFunction.SecurityMonitoring: + if (!MainPage.NoLoginMode) + { + functionCount = 1; + } + break; + case ShowFunction.Sensor: + functionCount = FunctionList.List.GetArmSensorList().Count; + break; + case ShowFunction.VideoIntercom: + if (FunctionList.List.videoIntercom != null && FunctionList.List.videoIntercom.Count > 0) + { + functionCount = 1; + } + break; + case ShowFunction.SecurityCenter: + functionCount = FunctionList.List.securities.Count; + //if (DB_ResidenceData.Instance.GatewayType == 1) + //{ + // functionCount = 1; + //} + break; + + } + + if(functionCount == 0) + { + continue; + } + + functionCategoryCount++; + FrameLayout functionView = new FrameLayout() { Height = Application.GetRealWidth(161), - Radius = (uint)Application.GetRealHeight(6), + Radius = (uint)Application.GetRealWidth(6), BackgroundColor = CSS_Color.MainBackgroundColor, Tag = item + "_View", Y = index % 2 == 1 ? lastY2 : lastY1 @@ -444,6 +770,55 @@ { s2View.AddChidren(functionView); } + functionContentViewHeight = functionView.Bottom; + + + Button btnName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(14), + Width = Application.GetRealWidth(140), + Height = Application.GetRealHeight(24), + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + TextAlignment = TextAlignment.CenterLeft, + IsMoreLines = true, + }; + functionView.AddChidren(btnName); + + if (item != ShowFunction.Environmental && item != ShowFunction.Sensor && item != ShowFunction.VideoIntercom + && item != ShowFunction.SecurityMonitoring && item != ShowFunction.FreshAir && item != ShowFunction.Music + && item != ShowFunction.EnergyMonitoring && item != ShowFunction.SecurityCenter + && functionCount != 0) + { + Button btnFunctionCount = new Button() + { + X = Application.GetRealWidth(17) + Application.GetRealWidth(7 * functionCount.ToString().Length), + Y = btnName.Bottom, + Width = Application.GetRealWidth(120), + Height = Application.GetRealHeight(24), + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft, + Text = "/" + functionCount, + }; + functionView.AddChidren(btnFunctionCount); + Button btnOpenCount = new Button() + { + X = Application.GetRealWidth(16), + Y = btnName.Bottom, + Width = Application.GetRealWidth(14 * functionCount.ToString().Length), + Height = Application.GetRealHeight(24), + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft, + Text = functionOnCount.ToString(), + Tag = item + "_onCount", + BorderWidth = 0, + }; + functionView.AddChidren(btnOpenCount); + } + Button btnFunctionViewBg; btnFunctionViewBg = new Button() @@ -453,28 +828,12 @@ }; 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; - int functionOnCount = 0; + int functionPageTitleId = 0; switch (item) { case ShowFunction.Light: #region Light btnName.TextID = StringId.Lights; - functionCount = DB_ResidenceData.residenceData.functionList.lights.Count; - functionOnCount = DB_ResidenceData.residenceData.functionList.lights.FindAll((obj) => obj.on_off == "on" ).Count; Button btnLightPower = new Button() { X = Application.GetRealWidth(120), @@ -483,25 +842,22 @@ Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", - IsSelected = functionCount == functionOnCount + IsSelected = functionOnCount > 0, + Tag = item + "_AllControl", }; functionView.AddChidren(btnLightPower); - btnLightPower.MouseUpEventHandler = (sender, e) => { - LoadEvent_SwitchFunction(btnLightPower,item); + + btnLightPower.MouseUpEventHandler = (sender, e) => + { + LoadEvent_SwitchFunction(btnLightPower, item, functionView); }; - btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var skipView = new FunctionPage(); - MainPage.BasePageView.AddChidren(skipView); - skipView.LoadPage(StringId.Lights); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; + functionPageTitleId = StringId.Lights; + #endregion break; case ShowFunction.AC: #region AC btnName.TextID = StringId.AC; - functionCount = DB_ResidenceData.residenceData.functionList.aCs.Count; - functionOnCount = DB_ResidenceData.residenceData.functionList.aCs.FindAll((obj) => obj.on_off == "on" ).Count; Button btnAcPower = new Button() { X = Application.GetRealWidth(120), @@ -510,25 +866,20 @@ Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", - IsSelected = functionCount == functionOnCount + Tag = item + "_AllControl", + IsSelected = functionOnCount > 0, }; functionView.AddChidren(btnAcPower); - btnAcPower.MouseUpEventHandler = (sender, e) => { - LoadEvent_SwitchFunction(btnAcPower, item); + btnAcPower.MouseUpEventHandler = (sender, e) => + { + LoadEvent_SwitchFunction(btnAcPower, item, functionView); }; - btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var skipView = new FunctionPage(); - MainPage.BasePageView.AddChidren(skipView); - skipView.LoadPage(StringId.AC); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; + functionPageTitleId = StringId.AC; #endregion break; case ShowFunction.Curtain: #region Curtain btnName.TextID = StringId.Curtain; - functionCount = DB_ResidenceData.residenceData.functionList.curtains.Count; - functionOnCount = DB_ResidenceData.residenceData.functionList.curtains.FindAll((obj) => obj.on_off == "on").Count; Button btnClose; btnClose = new Button() { @@ -538,7 +889,7 @@ Height = Application.GetRealWidth(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png", - IsSelected = functionCount == functionOnCount + IsSelected = !DB_ResidenceData.Instance.GlobalCurtainStatus, }; functionView.AddChidren(btnClose); @@ -551,23 +902,17 @@ Height = Application.GetRealWidth(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png", + IsSelected = DB_ResidenceData.Instance.GlobalCurtainStatus, }; functionView.AddChidren(btnOpen); - LoadEvent_CurtainSwitch(btnClose, btnOpen); + LoadEvent_CurtainSwitch(btnClose, btnOpen, functionView); - btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var skipView = new FunctionPage(); - MainPage.BasePageView.AddChidren(skipView); - skipView.LoadPage(StringId.Curtain); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; + functionPageTitleId = StringId.Curtain; #endregion break; case ShowFunction.FloorHeating: #region 鍦扮儹 btnName.TextID = StringId.FloorHeating; - functionCount = DB_ResidenceData.residenceData.functionList.floorHeatings.Count; - functionOnCount = DB_ResidenceData.residenceData.functionList.floorHeatings.FindAll((obj) => obj.on_off == "on").Count; Button btnFhPower = new Button() { X = Application.GetRealWidth(120), @@ -576,18 +921,15 @@ Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", - IsSelected = functionCount == functionOnCount + Tag = item + "_AllControl", + IsSelected = functionOnCount > 0 }; functionView.AddChidren(btnFhPower); - btnFhPower.MouseUpEventHandler = (sender, e) => { - LoadEvent_SwitchFunction(btnFhPower, item); + btnFhPower.MouseUpEventHandler = (sender, e) => + { + LoadEvent_SwitchFunction(btnFhPower, item, functionView); }; - btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var skipView = new FunctionPage(); - MainPage.BasePageView.AddChidren(skipView); - skipView.LoadPage(StringId.FloorHeating); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; + functionPageTitleId = StringId.FloorHeating; #endregion break; case ShowFunction.DoorLock: @@ -596,8 +938,6 @@ case ShowFunction.Electric: #region 鐢靛櫒 btnName.TextID = StringId.Electric; - functionCount = DB_ResidenceData.residenceData.functionList.electricals.Count; - functionOnCount = DB_ResidenceData.residenceData.functionList.electricals.FindAll((obj) => obj.on_off == "on").Count; Button btnElectricPower = new Button() { X = Application.GetRealWidth(120), @@ -606,28 +946,35 @@ Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", - IsSelected = functionCount == functionOnCount + Tag = item + "_AllControl", + IsSelected = functionOnCount > 0, }; functionView.AddChidren(btnElectricPower); - btnElectricPower.MouseUpEventHandler = (sender, e) => { - LoadEvent_SwitchFunction(btnElectricPower, item); + btnElectricPower.MouseUpEventHandler = (sender, e) => + { + LoadEvent_SwitchFunction(btnElectricPower, item, functionView); }; + functionPageTitleId = StringId.Electric; + #endregion + break; + case ShowFunction.EnergyMonitoring: + #region 鑳芥簮鐩戞祴 + btnName.TextID = StringId.EnergyMonitoring; btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var skipView = new FunctionPage(); + var skipView = new EnergyMainPage(); MainPage.BasePageView.AddChidren(skipView); - skipView.LoadPage(StringId.Electric); + skipView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion break; - case ShowFunction.EnergyMonitoring: - btnName.TextID = StringId.EnergyMonitoring; - break; case ShowFunction.Environmental: #region 鐜鏁版嵁 btnName.TextID = StringId.EnvironmentalData; - btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var skipView = new EnvironmentalSciencePage(); + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + var skipView = new EnvironmentalPage();// EnvironmentalSciencePage(); + //var skipView = new A_EnvironmentalDataCenter();// EnvironmentalSciencePage(); MainPage.BasePageView.AddChidren(skipView); skipView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; @@ -636,65 +983,109 @@ break; case ShowFunction.FreshAir: btnName.TextID = StringId.FreshAir; + #region Light + Button btnFreshAirPower = 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", + IsSelected = functionOnCount > 0, + Tag = item + "_AllControl", + }; + functionView.AddChidren(btnFreshAirPower); + + btnFreshAirPower.MouseUpEventHandler = (sender, e) => + { + LoadEvent_SwitchFunction(btnFreshAirPower, item, functionView); + }; + functionPageTitleId = StringId.FreshAir; + + #endregion break; case ShowFunction.Music: btnName.TextID = StringId.Music; btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - var musicMain = new HDL_ON.UI.Music.MusicMain(); + var musicMain = new Music.MusicMain(); MainPage.BasePageView.AddChidren(musicMain); musicMain.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; - break; case ShowFunction.Panel: btnName.TextID = StringId.Panel; break; case ShowFunction.SecurityMonitoring: btnName.TextID = StringId.SecurityMonitoring; + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + HDLCommon.Current.Go2EZvizMonitor(bodyView); + }; break; case ShowFunction.Sensor: btnName.TextID = StringId.Sensor; - + functionPageTitleId = StringId.Sensor; break; - case ShowFunction.VideoIntercom: + case ShowFunction.VideoIntercom://鍙瀵硅 btnName.TextID = StringId.VideoIntercom; + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + var videoMethod = new UI2.FuntionControlView.Video.VideoMethod(); + videoMethod.MianView(this); + }; + break; + case ShowFunction.SecurityCenter: + btnName.TextID = StringId.SecurityCenter; + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + var page = new ArmCenterPage(); + MainPage.BasePageView.AddChidren(page); + page.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; break; } - if (item != ShowFunction.Environmental) + //鐣岄潰璺宠浆--闊充箰璺宠浆鑷繁鐨勭晫闈�--鐜璺宠浆鑷繁鐨勭晫闈� + if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring + && ShowFunction.EnergyMonitoring!= item && ShowFunction.VideoIntercom != item && ShowFunction.SecurityCenter != item) { - Button btnFunctionCount = new Button() + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { - 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 = functionOnCount + "/" + functionCount, - Tag = item + "_onCount" + var skipView = new FunctionPage(); + MainPage.BasePageView.AddChidren(skipView); + skipView.LoadPage(functionPageTitleId); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; - functionView.AddChidren(btnFunctionCount); } index++; } - #endregion + + //if (functionCategoryCount > 4) + { + //functionContentView.Height = functionContentViewHeight;// Application.GetRealWidth((240 * (functionCategoryCount / 2))); + s1View.Height = s2View.Height = functionContentView.Height = functionContentViewHeight+ Application.GetRealWidth(40); + } + +#endregion } #region 鍒囨崲妤煎眰 /// <summary> - /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢 + /// 妤煎眰鏄剧ず鍒囨崲 /// </summary> void LoadDialog_ChangeFloor() { - EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { var dialog = new Dialog(); var dialogBody = new FrameLayout(); dialog.AddChidren(dialogBody); - dialogBody.MouseUpEventHandler += (sender1, e1) => { + dialogBody.MouseUpEventHandler += (sender1, e1) => + { dialog.Close(); }; @@ -703,8 +1094,8 @@ X = Application.GetRealWidth(10), Y = Application.GetRealHeight(100), Width = Application.GetRealWidth(160), - Height = Application.GetRealHeight(203), - BackgroundImagePath = "PersonalCenter/HomeListbg.png", + Height = Application.GetRealHeight(110), + BackgroundImagePath = "PersonalCenter/HomeList1bg.png", }; dialogBody.AddChidren(dispalyView); @@ -713,27 +1104,80 @@ X = Application.GetRealWidth(8), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(150), - Height = Application.GetRealHeight(45 * 4), + Height = Application.GetRealHeight(45 * 2), + ScrollEnabled = false }; dispalyView.AddChidren(contentView); - List<string> chooseList = new List<string>(); - chooseList.Add(Language.StringByID(StringId.All)); - foreach (var f in DB_ResidenceData.residenceData.floors) + if (SpatialInfo.CurrentSpatial.FloorList.Count < 2) { - chooseList.Add(f.name); + } + else if (SpatialInfo.CurrentSpatial.FloorList.Count < 3) + { + dispalyView = new FrameLayout() + { + X = Application.GetRealWidth(10), + Y = Application.GetRealHeight(100), + Width = Application.GetRealWidth(160), + Height = Application.GetRealHeight(155), + BackgroundImagePath = "PersonalCenter/HomeList2bg.png", + }; + dialogBody.AddChidren(dispalyView); + + contentView.Height = Application.GetRealHeight(45 * 3); + dispalyView.AddChidren(contentView); + } + else if (SpatialInfo.CurrentSpatial.FloorList.Count < 4) + { + dispalyView = new FrameLayout() + { + X = Application.GetRealWidth(10), + Y = Application.GetRealHeight(100), + Width = Application.GetRealWidth(160), + Height = Application.GetRealHeight(200), + BackgroundImagePath = "PersonalCenter/HomeList3bg.png", + }; + dialogBody.AddChidren(dispalyView); + + contentView.Height = Application.GetRealHeight(45 * 4); + dispalyView.AddChidren(contentView); + } + else + { + dispalyView = new FrameLayout() + { + X = Application.GetRealWidth(10), + Y = Application.GetRealHeight(100), + Width = Application.GetRealWidth(160), + Height = Application.GetRealHeight(245), + BackgroundImagePath = "PersonalCenter/HomeList4bg.png", + }; + dialogBody.AddChidren(dispalyView); + + contentView.Height = Application.GetRealHeight(45 * 5); + contentView.ScrollEnabled = true; + dispalyView.AddChidren(contentView); + } + + + List<SpatialInfo> chooseList = new List<SpatialInfo>(); + chooseList.Add(new SpatialInfo() { roomId = "", roomName = Language.StringByID(StringId.All) }); + foreach (var f in SpatialInfo.CurrentSpatial.FloorList) + { + chooseList.Add(f); } foreach (var floor in chooseList) { - if (floor != Language.StringByID(StringId.All)) + if (!string.IsNullOrEmpty( floor.roomId))// != Language.StringByID(StringId.All)) { + //---鍒嗗壊绾� contentView.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), - BackgroundColor = CSS.CSS_Color.BackgroundColor + BackgroundColor = CSS_Color.BackgroundColor }); } var btnHomeName = new Button() @@ -742,30 +1186,30 @@ Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS.CSS_Color.FirstLevelTitleColor, - SelectedTextColor = CSS.CSS_Color.MainColor, - Text = floor, - TextSize = CSS.CSS_FontSize.SubheadingFontSize, - IsSelected = btnFloor.Text == floor, - IsMoreLines = true, - Tag = floor + TextColor = CSS_Color.FirstLevelTitleColor, + SelectedTextColor = CSS_Color.MainColor, + Text = floor.roomName, + TextSize = CSS_FontSize.SubheadingFontSize, + IsSelected = floor.roomId == DB_ResidenceData.Instance.ClassificationChooseFloor.roomId, + //IsMoreLines = true, }; contentView.AddChidren(btnHomeName); btnHomeName.MouseUpEventHandler += (senderH, en) => { dialog.Close(); - btnFloor.Text = floor; + btnFloor.Text = floor.roomName; + DB_ResidenceData.Instance.ClassificationChooseFloor = floor; roomsShowed.Clear(); - if (floor == Language.StringByID(StringId.All)) + if (string.IsNullOrEmpty(floor.roomId)) { - roomsShowed.AddRange(DB_ResidenceData.residenceData.rooms); + roomsShowed.AddRange(SpatialInfo.CurrentSpatial.RoomList); } else { - foreach (var room in DB_ResidenceData.residenceData.rooms) + foreach (var room in SpatialInfo.CurrentSpatial.RoomList) { - if (room.floor == floor) + if (room.parentId == floor.uid) { roomsShowed.Add(room); } @@ -788,4 +1232,4 @@ } #endregion } -} +} \ No newline at end of file -- Gitblit v1.8.0