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 | 1131 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 873 insertions(+), 258 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs index e0eb990..3914880 100644 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs @@ -11,7 +11,7 @@ { #region 鎺т欢鍒楄〃 - FrameLayout bodyView; + static ClassificationPage bodyView; #region 椤堕儴鎺т欢 /// <summary> /// 鎴块棿鍒嗛〉 @@ -40,11 +40,11 @@ /// <summary> /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣 /// </summary> - Button btnFoorDownIcon; + Button btnFloorDownIcon; /// <summary> /// 妤煎眰鏄剧ず /// </summary> - Button btnFoor; + Button btnFloor; /// <summary> /// 鏄剧ず鏂瑰紡鍒囨崲鎸夐挳 /// </summary> @@ -54,10 +54,6 @@ /// 鎴块棿鍒楄〃鍖哄煙 /// </summary> VerticalScrolViewLayout roomListView; - /// <summary> - /// 鎴块棿鍖哄煙闆嗗悎 - /// </summary> - List<FrameLayout> roomViewList; #endregion #region 鍔熻兘鍖哄煙 @@ -68,13 +64,19 @@ #endregion + + List<Room> roomsShowed; + public ClassificationPage() { bodyView = this; + roomsShowed = new List<Room>(); + roomsShowed.AddRange(SpatialInfo.CurrentSpatial.RoomList); } public void LoadPage() { + MainPage.CurPageIndex = 1; bodyView.BackgroundColor = CSS_Color.BackgroundColor; #region top FrameLayout topView = new FrameLayout() @@ -116,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 }; @@ -143,7 +145,7 @@ Height = Application.GetRealHeight(52), }; roomPageView.AddChidren(roomFloorChangeView); - #region 鎴块棿搴曢儴鍒囨崲鏄剧ず鍖哄煙 + #region 鎴块棿椤堕儴鍒囨崲鏄剧ず鍖哄煙 /// <summary> /// 鎴块棿鍖哄煙锛岄《閮ㄥ尯鍩� /// </summary> @@ -155,7 +157,7 @@ /// <summary> /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣 /// </summary> - btnFoorDownIcon = new Button() + btnFloorDownIcon = new Button() { Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), @@ -163,22 +165,22 @@ Y = Application.GetRealHeight(18), UnSelectedImagePath = "Public/DownIcon.png", }; - roomFloorChangeView.AddChidren(btnFoorDownIcon); + roomFloorChangeView.AddChidren(btnFloorDownIcon); /// <summary> /// 妤煎眰鏄剧ず /// </summary> - btnFoor = new Button() + btnFloor = new Button() { - X = btnFoorDownIcon.Right, + X = btnFloorDownIcon.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, + Text = DB_ResidenceData.Instance.CurFloor.roomName, }; - roomFloorChangeView.AddChidren(btnFoor); + roomFloorChangeView.AddChidren(btnFloor); /// <summary> /// 鏄剧ず鏂瑰紡鍒囨崲鎸夐挳 /// </summary> @@ -190,10 +192,15 @@ 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,169 +209,398 @@ { Y = roomFloorChangeView.Bottom, Height = Application.GetRealHeight(497 + 10 + 30), - BackgroundColor = CSS_Color.MainBackgroundColor, + //BackgroundColor = CSS_Color.MainBackgroundColor, }; roomPageView.AddChidren(roomListView); - /// <summary> - /// 鎴块棿鍖哄煙闆嗗悎 - /// </summary> - roomViewList = new List<FrameLayout>(); - - 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; - }; - - } - + LoadRoomRows(); roomListView.AddChidren(new Button() { Height = Application.GetRealHeight(20) });//澶珮瑙嗗浘锛屽皢瀵艰埅浜嗛伄鎸$殑閮ㄥ垎瀹屾暣鏄剧ず #endregion + LoadDialog_ChangeFloor(); } + + /// <summary> + /// 鍔犺浇鎴块棿鍒楄〃鍖哄煙 + /// </summary> + /// <param name="animationEffect">鍔ㄧ敾鏁堟灉</param> + void LoadRoomRows(bool animationEffect = false) + { + if (animationEffect) + { + ///绉诲姩鏂瑰悜 + var runDirection = OnAppConfig.Instance.IsShowBigPicture ? 1 : -1; + for (int i = 0; i < roomListView.ChildrenCount; i++) + { + var childView = roomListView.GetChildren(i); + + 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) + { + //澶у浘鏄剧ず + 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); + + LoadBigPirtureRoomRow(roomView, room); + + } + 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,14 +643,109 @@ 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 }; //楂樺害绋嶉珮鐨剉iew @@ -443,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() @@ -452,26 +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 functionPageTitleId = 0; switch (item) { - case "Light": + case ShowFunction.Light: #region Light btnName.TextID = StringId.Lights; - functionCount = DB_ResidenceData.residenceData.functionList.lights.Count; Button btnLightPower = new Button() { X = Application.GetRealWidth(120), @@ -480,23 +842,22 @@ Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", + IsSelected = functionOnCount > 0, + Tag = item + "_AllControl", }; functionView.AddChidren(btnLightPower); - btnLightPower.MouseUpEventHandler = (sender, e) => { - LoadEvent_LightsPower(btnLightPower); + + 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 "AC": + case ShowFunction.AC: #region AC btnName.TextID = StringId.AC; - functionCount = DB_ResidenceData.residenceData.functionList.aCs.Count; Button btnAcPower = new Button() { X = Application.GetRealWidth(120), @@ -505,24 +866,20 @@ Height = Application.GetRealWidth(32), SelectedImagePath = "Public/PowerOpen.png", UnSelectedImagePath = "Public/PowerClose.png", + Tag = item + "_AllControl", + IsSelected = functionOnCount > 0, }; functionView.AddChidren(btnAcPower); - btnAcPower.MouseUpEventHandler = (sender, e) => { - LoadEvent_LightsPower(btnAcPower); + 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 "Curtain": + case ShowFunction.Curtain: #region Curtain btnName.TextID = StringId.Curtain; - functionCount = DB_ResidenceData.residenceData.functionList.curtains.Count; - Button btnClose; btnClose = new Button() { @@ -532,6 +889,7 @@ Height = Application.GetRealWidth(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png", + IsSelected = !DB_ResidenceData.Instance.GlobalCurtainStatus, }; functionView.AddChidren(btnClose); @@ -544,77 +902,334 @@ 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); + functionPageTitleId = StringId.Curtain; + #endregion + break; + case ShowFunction.FloorHeating: + #region 鍦扮儹 + btnName.TextID = StringId.FloorHeating; + Button btnFhPower = 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", + Tag = item + "_AllControl", + IsSelected = functionOnCount > 0 + }; + functionView.AddChidren(btnFhPower); + btnFhPower.MouseUpEventHandler = (sender, e) => + { + LoadEvent_SwitchFunction(btnFhPower, item, functionView); + }; + functionPageTitleId = StringId.FloorHeating; + #endregion + break; + case ShowFunction.DoorLock: + btnName.TextID = StringId.DoorLock; + break; + case ShowFunction.Electric: + #region 鐢靛櫒 + btnName.TextID = StringId.Electric; + Button btnElectricPower = 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", + Tag = item + "_AllControl", + IsSelected = functionOnCount > 0, + }; + functionView.AddChidren(btnElectricPower); + 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.Curtain); + skipView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion break; - case "FloorHeating": - btnName.TextID = StringId.FloorHeating; + case ShowFunction.Environmental: + #region 鐜鏁版嵁 + btnName.TextID = StringId.EnvironmentalData; + 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; + }; + #endregion 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": + 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 "Music": + case ShowFunction.Music: btnName.TextID = StringId.Music; + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + var musicMain = new Music.MusicMain(); + MainPage.BasePageView.AddChidren(musicMain); + musicMain.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; break; - case "Panel": + case ShowFunction.Panel: btnName.TextID = StringId.Panel; break; - case "SecurityMonitoring": + case ShowFunction.SecurityMonitoring: btnName.TextID = StringId.SecurityMonitoring; + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + HDLCommon.Current.Go2EZvizMonitor(bodyView); + }; break; - case "Sensor": + case ShowFunction.Sensor: btnName.TextID = StringId.Sensor; + functionPageTitleId = StringId.Sensor; break; - case "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; } - - Button btnFunctionCount = new Button() + //鐣岄潰璺宠浆--闊充箰璺宠浆鑷繁鐨勭晫闈�--鐜璺宠浆鑷繁鐨勭晫闈� + if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring + && ShowFunction.EnergyMonitoring!= item && ShowFunction.VideoIntercom != item && ShowFunction.SecurityCenter != item) { - 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); - - - - + btnFunctionViewBg.MouseUpEventHandler = (sender, e) => + { + var skipView = new FunctionPage(); + MainPage.BasePageView.AddChidren(skipView); + skipView.LoadPage(functionPageTitleId); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + } index++; } + //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) => + { + var dialog = new Dialog(); + var dialogBody = new FrameLayout(); + dialog.AddChidren(dialogBody); + dialogBody.MouseUpEventHandler += (sender1, e1) => + { + dialog.Close(); + }; + + var dispalyView = new FrameLayout() + { + X = Application.GetRealWidth(10), + Y = Application.GetRealHeight(100), + Width = Application.GetRealWidth(160), + Height = Application.GetRealHeight(110), + BackgroundImagePath = "PersonalCenter/HomeList1bg.png", + }; + dialogBody.AddChidren(dispalyView); + + var contentView = new VerticalScrolViewLayout() + { + X = Application.GetRealWidth(8), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(150), + Height = Application.GetRealHeight(45 * 2), + ScrollEnabled = false + }; + dispalyView.AddChidren(contentView); + + if (SpatialInfo.CurrentSpatial.FloorList.Count < 2) + { + } + 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); + } - #endregion + 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 (!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_Color.BackgroundColor + }); + } + var btnHomeName = new Button() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(112), + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.CenterLeft, + 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.roomName; + DB_ResidenceData.Instance.ClassificationChooseFloor = floor; + roomsShowed.Clear(); + if (string.IsNullOrEmpty(floor.roomId)) + { + roomsShowed.AddRange(SpatialInfo.CurrentSpatial.RoomList); + } + else + { + foreach (var room in SpatialInfo.CurrentSpatial.RoomList) + { + if (room.parentId == floor.uid) + { + roomsShowed.Add(room); + } + } + } + LoadRoomRows(); + }; + } + + dialog.Show(); + }; + + btnFloor.MouseUpEventHandler = eventHandler; + btnFloorDownIcon.MouseUpEventHandler = eventHandler; + } + + void LoadEvent_ChangeFloorDisplay() + { } + #endregion } -} +} \ No newline at end of file -- Gitblit v1.8.0