From c47c3ec2488961b3a006aaebcb03dba582f8b19b Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 12 三月 2020 17:08:42 +0800
Subject: [PATCH] 2020-03-12-1

---
 ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs |  160 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 120 insertions(+), 40 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
index 585f178..afd3ceb 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
@@ -17,17 +17,40 @@
         private FrameLayout bodyFrameLayout;
 
         private Button floorBtn;
+        /// <summary>
+        /// 褰撳墠妤煎眰id
+        /// </summary>
+        private string curFloorId;
 
         public FrameLayout itemView;
+
+        static RoomManagement roomManagement;
+        public static RoomManagement Instance
+        {
+            get
+            {
+                if (roomManagement == null)
+                {
+                    roomManagement = new RoomManagement { };
+                }
+                return roomManagement;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互瑙﹀彂鐐瑰嚮浜嬩欢--鏄惁鍙互璺宠浆涓婚〉鎴块棿
+        /// </summary>
+        public bool CanClick = true;
 
         #endregion
 
 
         public Action action;
 
+
+
         public override void RemoveFromParent()
         {
-            //鏇存柊鐣岄潰
             //action?.Invoke();
             base.RemoveFromParent();
         }
@@ -36,6 +59,8 @@
         /// </summary>
         public void Show()
         {
+            RemoveAll();
+
             AddTop();
 
             AddBodyView(Config.Instance.Home.CurrentFloorId);
@@ -59,12 +84,14 @@
 
             floorBtn = new Button()
             {
-                X = Application.GetRealWidth(750),
-                Width = Application.GetRealWidth(200),
+                X = Application.GetRealWidth(650),
+                Width = Application.GetRealWidth(300),
                 Height = Application.GetRealHeight(60),
                 Gravity = Gravity.CenterVertical,
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 14,
+                IsBold = true
             };
 
             var selectFloorBtn = new Button()
@@ -77,8 +104,12 @@
             };
 
             floorBtn.Text = Config.Instance.Home.GetCurrentFloorName;
-            top.topView.AddChidren(floorBtn);
-            top.topView.AddChidren(selectFloorBtn);
+            if(Config.Instance.Home.FloorDics.Count>0)
+            {
+                curFloorId = Config.Instance.Home.CurrentFloorId;
+                top.topView.AddChidren(floorBtn);
+                top.topView.AddChidren(selectFloorBtn);
+            }
             selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler;
             floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler;
         }
@@ -92,9 +123,12 @@
         {
             var floors = new SelectFloor();
             AddChidren(floors);
+            floors.changeFloor = false;
+            floors.CurFloorId = curFloorId;
             floors.Init(599, 161,Direction.Right);
             floors.FloorAction += (floorId) =>
             {
+                curFloorId = floorId;
                 floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
                 AddBodyView(floorId);
             };
@@ -113,46 +147,24 @@
             };
             AddChidren(bodyFrameLayout);
 
-            var roomScrolView = new VerticalScrolViewLayout { };
-            bodyFrameLayout.AddChidren(roomScrolView);
-            var roomList = Common.Room.CurrentRoom.GetRoomsByFloorId(floorId);
-            for (int i = 0; i < roomList.Count+1; i++)
+            try
             {
-                int xx = 43 + i % 2 * (20 + 487);
-                int yy = 0;
-                if (i == 0 || i == 1)
+                if (UserCenter.HdlRoomLogic.Current.GetAllListRooms().Count <= 1)
                 {
-                    if (i % 2 == 0)
-                    {
-                        itemView = new FrameLayout()
-                        {
-                            Height = Application.GetRealHeight(354 + 58)
-                        };
-                        roomScrolView.AddChidren(itemView);
-                    }
-                    yy = 58;
+                    return;
                 }
-                else if (i % 2 == 0)
+                var roomScrolView = new VerticalScrolViewLayout { };
+                bodyFrameLayout.AddChidren(roomScrolView);
+                var roomList = UserCenter.HdlRoomLogic.Current.GetRoomsByFloorId(floorId);
+                if (roomList == null || roomList.Count == 0)
                 {
                     itemView = new FrameLayout()
                     {
-                        Height = Application.GetRealHeight(354)
+                        Height = Application.GetRealHeight(354 + 58)
                     };
                     roomScrolView.AddChidren(itemView);
-                }
 
-                if (i< roomList.Count)
-                {
-                    var room = roomList[i];
-                    var roomView = new RoomMainView(xx, yy);
-                    itemView.AddChidren(roomView);
-                    roomView.Init();
-                    roomView.SetRoomName(room.Name);
-                    roomView.SetRoomIcon(room.BackgroundImage);
-                }
-                else
-                {
-                    var roomView = new RoomNoNameMainView(xx, yy);
+                    var roomView = new RoomNoNameMainView(34, 58);
                     itemView.AddChidren(roomView);
                     roomView.Init();
 
@@ -160,6 +172,70 @@
                     roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                     roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                 }
+                else
+                {
+                    for (int i = 0; i < roomList.Count + 1; i++)
+                    {
+                        int xx = 43 + i % 2 * (20 + 487);
+                        int yy = 0;
+                        if (i == 0 || i == 1)
+                        {
+                            if (i % 2 == 0)
+                            {
+                                itemView = new FrameLayout()
+                                {
+                                    Height = Application.GetRealHeight(354 + 58)
+                                };
+                                roomScrolView.AddChidren(itemView);
+                            }
+                            yy = 58;
+                        }
+                        else if (i % 2 == 0)
+                        {
+                            itemView = new FrameLayout()
+                            {
+                                Height = Application.GetRealHeight(354)
+                            };
+                            roomScrolView.AddChidren(itemView);
+                        }
+
+                        if (i < roomList.Count)
+                        {
+                            var room = roomList[i];
+                            var roomView = new RoomMainView(xx, yy);
+                            itemView.AddChidren(roomView);
+                            roomView.Init(this, room);
+                            roomView.SetRoomName(room.Name);
+                            roomView.SetRoomIcon(room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage));
+                            roomView.ClickBtn.MouseUpEventHandler += (sender, e) =>
+                            {
+                                if (CanClick == false)
+                                {
+                                    return;
+                                }
+                                CommonPage.Instance.CloseLeftMenu();
+                                UserCenter.HdlRoomLogic.Current.CurrentRoom = room;
+                                Config.Instance.Home.CurrentFloorId = room.FloorId;
+                                UserPage.Instance.Fresh();
+                            };
+                        }
+                        else
+                        {
+                            var roomView = new RoomNoNameMainView(xx, yy);
+                            itemView.AddChidren(roomView);
+                            roomView.Init();
+
+                            roomView.Icon.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                            roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                            roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                        }
+                    }
+                }
+                
+            }
+            catch (Exception ex)
+            {
+                string tt=ex.Message;
             }
         }
 
@@ -168,21 +244,25 @@
         /// <summary>
         /// 鎴块棿绠$悊鐣岄潰
         /// </summary>
-        void RoomPage()
+        public RoomManagement()
         {
             BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            roomManagement = this;
         }
 
         /// <summary>
-        /// 
+        /// ShowUnallocatedRoom_MouseUpEvent
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="mouseEventArgs"></param>
         private void ShowUnallocatedRoom_MouseUpEvent(object sender,MouseEventArgs mouseEventArgs)
         {
+            if(CanClick==false)
+            {
+                return;
+            }
             var unalloctedRoom = new UnallocatedRoom();
-            HomePage.Instance.AddChidren(unalloctedRoom);
-            HomePage.Instance.PageIndex += 1;
+            AddChidren(unalloctedRoom);
             unalloctedRoom.Show();
         }
     }

--
Gitblit v1.8.0