gxc
2020-01-10 b9cb076fe6127160c96c35bf9c8cebcffe1d5ccd
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,9 +59,11 @@
        /// </summary>
        public void Show()
        {
            RemoveAll();
            AddTop();
            AddBodyView();
            AddBodyView(Config.Instance.Home.CurrentFloorId);
        }
        #region Add____________________________________
@@ -65,6 +90,8 @@
                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,17 +123,21 @@
        {
            var floors = new SelectFloor();
            AddChidren(floors);
            floors.changeFloor = false;
            floors.CurFloorId = curFloorId;
            floors.Init(599, 161,Direction.Right);
            floors.FloorAction += (floorName) =>
            floors.FloorAction += (floorId) =>
            {
                floorBtn.Text = floorName;
                curFloorId = floorId;
                floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
                AddBodyView(floorId);
            };
        }
        /// <summary>
        /// AddBodyView
        /// </summary>
        public void AddBodyView()
        public void AddBodyView(string floorId)
        {
            bodyFrameLayout = new FrameLayout()
            {
@@ -114,51 +149,73 @@
            var roomScrolView = new VerticalScrolViewLayout { };
            bodyFrameLayout.AddChidren(roomScrolView);
            var roomList = Shared.Common.Room.Lists;
            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)
                var roomList = Common.Room.CurrentRoom.GetRoomsByFloorId(floorId);
                if (roomList == null || roomList.Count == 0)
                {
                    if (i % 2 == 0)
                    return;
                }
                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 + 58)
                            Height = Application.GetRealHeight(354)
                        };
                        roomScrolView.AddChidren(itemView);
                    }
                    yy = 58;
                }
                else if (i % 2 == 0)
                {
                    itemView = new FrameLayout()
                    if (i < roomList.Count)
                    {
                        Height = Application.GetRealHeight(354)
                    };
                    roomScrolView.AddChidren(itemView);
                }
                        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();
                            Common.Room.CurrentRoom = room;
                            Config.Instance.Home.CurrentFloorId = room.FloorId;
                            UserPage.Instance.Fresh();
                        };
                    }
                    else
                    {
                        var roomView = new RoomNoNameMainView(xx, yy);
                        itemView.AddChidren(roomView);
                        roomView.Init();
                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);
                        roomView.Icon.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                        roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                        roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                    }
                }
                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;
            }
        }
@@ -167,21 +224,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();
        }
    }