wxr
2020-11-12 a715181089be0d31cd737a5367ffd02690b9d77f
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -11,7 +11,7 @@
    {
        #region 控件列表
        FrameLayout bodyView;
        static ClassificationPage bodyView;
        #region 顶部控件
        /// <summary>
        /// 房间分页
@@ -22,12 +22,16 @@
        /// </summary>
        Button btnFuncTitle;
        #endregion
        /// <summary>
        /// 房间/功能分页区域
        /// </summary>
        PageLayout contentPageView;
        #region 房间区域
        FrameLayout roomPageView;
        /// <summary>
        /// 房间内容显示区域
        /// </summary>
        FrameLayout roomContentView;
        FrameLayout roomFloorChangeView;
        #region 房间底部切换显示区域
        /// <summary>
        /// 房间区域,顶部区域
@@ -36,11 +40,11 @@
        /// <summary>
        /// 楼层选择下拉图标
        /// </summary>
        Button btnFoorDownIcon;
        Button btnFloorDownIcon;
        /// <summary>
        /// 楼层显示
        /// </summary>
        Button btnFoor;
        Button btnFloor;
        /// <summary>
        /// 显示方式切换按钮
        /// </summary>
@@ -50,18 +54,24 @@
        /// 房间列表区域
        /// </summary>
        VerticalScrolViewLayout roomListView;
        /// <summary>
        /// 房间区域集合
        /// </summary>
        List<FrameLayout> roomViewList;
        #endregion
        #region 功能区域
        VerticalScrolViewLayout functionsPageView;
        #endregion
        #endregion
        List<Room> roomsShowed;
        public ClassificationPage()
        {
            bodyView = this;
            roomsShowed = new List<Room>();
            roomsShowed.AddRange(DB_ResidenceData.rooms);
        }
        public void LoadPage()
@@ -99,26 +109,42 @@
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.PromptingColor1,
                SelectedTextColor = CSS_Color.MainColor,
                TextID = StringId.Devices,
                TextID = StringId.Functions,
            };
            topView.AddChidren(btnFuncTitle);
            #endregion
            contentPageView = new PageLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667 - 64 - 49 + 30),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                IsShowPoint = false
            };
            bodyView.AddChidren(contentPageView);
            LoadRoomPageView();
            LoadFunctionPageView();
            LoadEventList();
        }
        /// <summary>
        /// 加载房间列表界面
        /// </summary>
        void LoadRoomPageView()
        {
            #region 房间区域
            roomPageView = new FrameLayout();
            contentPageView.AddChidren(roomPageView);
            /// <summary>
            /// 房间内容显示区域
            /// </summary>
            roomContentView = new FrameLayout()
            roomFloorChangeView = new FrameLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(52),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(roomContentView);
            #region 房间底部切换显示区域
            roomPageView.AddChidren(roomFloorChangeView);
            #region 房间顶部切换显示区域
            /// <summary>
            /// 房间区域,顶部区域
            /// </summary>
@@ -126,11 +152,11 @@
            {
                Height = Application.GetRealHeight(53),
            };
            roomContentView.AddChidren(roomTopView);
            roomFloorChangeView.AddChidren(roomTopView);
            /// <summary>
            /// 楼层选择下拉图标
            /// </summary>
            btnFoorDownIcon = new Button()
            btnFloorDownIcon = new Button()
            {
                Width = Application.GetMinRealAverage(16),
                Height = Application.GetMinRealAverage(16),
@@ -138,154 +164,84 @@
                Y = Application.GetRealHeight(18),
                UnSelectedImagePath = "Public/DownIcon.png",
            };
            roomContentView.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.residenceData.CurFoor,
            };
            roomContentView.AddChidren(btnFoor);
            roomFloorChangeView.AddChidren(btnFloor);
            /// <summary>
            /// 显示方式切换按钮
            /// </summary>
            btnSwitchDipaly = new Button()
            {
                X = Application.GetRealWidth(335),
                Y = Application.GetRealHeight(12),
                Width = Application.GetMinRealAverage(28),
                Height = Application.GetMinRealAverage(28),
                UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缩略图
                SelectedImagePath = "Classification/ToggleDisplayLarge.png",
            };
            roomContentView.AddChidren(btnSwitchDipaly);
            //btnSwitchDipaly = new Button()
            //{
            //    X = Application.GetRealWidth(335),
            //    Y = Application.GetRealHeight(12),
            //    Width = Application.GetMinRealAverage(28),
            //    Height = Application.GetMinRealAverage(28),
            //    UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缩略图
            //    SelectedImagePath = "Classification/ToggleDisplayLarge.png",
            //};
            //roomFloorChangeView.AddChidren(btnSwitchDipaly);
            #endregion
            /// <summary>
            /// 房间列表区域
            /// </summary>
            roomListView = new VerticalScrolViewLayout()
            {
                Y = roomContentView.Bottom,
                Height = Application.GetRealHeight(497 + 10+30),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Y = roomFloorChangeView.Bottom,
                Height = Application.GetRealHeight(497 + 10 + 30),
                //BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(roomListView);
            /// <summary>
            /// 房间区域集合
            /// </summary>
            roomViewList = new List<FrameLayout>();
            roomPageView.AddChidren(roomListView);
            LoadRoomRows();
            roomListView.AddChidren(new Button() { Height = Application.GetRealHeight(20) });//太高视图,将导航了遮挡的部分完整显示
            #endregion
            LoadDialog_ChangeFloor();
        }
#if DEBUG1
            var r = new Room() { sid = "0001", name = "Room-1", floor = "1F", backgroundImage = "Classification/Room/Roombg.png" };
            r.functions.Add(new Function()
            {
                sid = "000000000000000000000000000000000001",
                funcType = FunctionType.AC,
                name = "空调",
                roomIdList = new List<string>() { "0001" },
                lastState = "制冷 中风 18°C",
                bus_Data = "{" +
                        "\"SubnetID\":42" + "," +
                        "\"DeviceID\":8" + "," +
                        "\"LoopID\":1" +
                        "}",
            });
            r.functions.Add(new Dimmer()
            {
                sid = "0001002019101209000025670400010002",
                funcType = FunctionType.Light,
                name = "客厅灯",
                roomIdList = new List<string>() { "0001" },
                lastState = "20%",
                bus_Data = "{" +
                        "\"SubnetID\":111" + "," +
                        "\"DeviceID\":2" + "," +
                        "\"LoopID\":1" +
                        "}",
            });
            r.functions.Add(new MotorCurtain()
            {
                sid = "000000000000000000000000000000000003",
                funcType = FunctionType.Curtain,
                name = "窗帘",
                roomIdList = new List<string>() { "0001" },
                lastState = "20%",
                bus_Data = "{" +
                        "\"SubnetID\":42" + "," +
                        "\"DeviceID\":7" + "," +
                        "\"LoopID\":1" +
                        "}",
            });
            r.functions.Add(new Function()
            {
                sid = "000000000000000000000000000000000004",
                funcType = FunctionType.FloorHeating,
                name = "地热",
                roomIdList = new List<string>() { "0001" },
                lastState = ""
            });
            r.functions.Add(new Light()
            {
                sid = "0001002019101209000025670400010005",
                funcType = FunctionType.Light,
                name = "客厅大灯",
                roomIdList = new List<string>() { "0001" },
                bus_Data = "{" +
                        "\"SubnetID\":111" + "," +
                        "\"DeviceID\":6" + "," +
                        "\"LoopID\":1" +
                        "}",
            });
            r.functions.Add(new RGBLight()
            {
                sid = "0001002019101209000025670500010006",
                funcType = FunctionType.Light,
                name = "客厅RGB灯",
                roomIdList = new List<string>() { "0001" },
                bus_Data = "{" +
                        "\"SubnetID\":222" + "," +
                        "\"DeviceID\":222" + "," +
                        "\"LoopID\":222" +
                        "}",
            });
            DB_ResidenceData.residenceData.rooms.Add(r);
#endif
            foreach (var room in DB_ResidenceData.residenceData.rooms)
        /// <summary>
        /// 加载房间列表区域
        /// </summary>
        void LoadRoomRows()
        {
            roomListView.RemoveAll();
            foreach (var room in roomsShowed)
            {
                var roomView = new FrameLayout()
                {
                    Gravity = Gravity.CenterHorizontal,
                    Width = Application.GetRealWidth(343),
                    Height = Application.GetRealHeight(184),
                    Radius = (uint)Application.GetRealHeight(12),
                    BorderColor = 0x00000000,
                    BorderWidth = 1,
                    Radius = (uint)Application.GetRealWidth(12),
                    Tag = room.sid,
                };
                roomListView.AddChidren(roomView);
                var roomViewbg = new Button()
                var roomViewbg = new ImageView()
                {
                    UnSelectedImagePath = room.backgroundImage,
                    Width = Application.GetRealWidth(343),
                    Height = Application.GetRealHeight(184),
                    ImagePath = room.backgroundImage,
                    Radius = (uint)Application.GetRealWidth(12),
                };
                roomView.AddChidren(roomViewbg);
                var roomViewbgColor = new Button()
                {
                    Radius = (uint)Application.GetRealWidth(12),
                    BackgroundColor = 0x19333333,
                };
                roomView.AddChidren(roomViewbgColor);
@@ -296,107 +252,104 @@
                    Y = Application.GetRealHeight(12 - 2),
                    Width = Application.GetRealWidth(266),
                    Height = Application.GetRealHeight(22 + 2 + 2),
                    Text = room.floor + "  " + room.name,
                    Text = room.floorName + 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",
                };
                topView.AddChidren(environmentalView);
                                {
                                    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);
                                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);
                                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/InfoIcon/HumidityIcon.png",
                };
                environmentalView.AddChidren(btnHumidityIcon);
                                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);
                                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/InfoIcon/Pm25Icon.png",
                };
                environmentalView.AddChidren(btnPm25Icon);
                                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);
                                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 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",
                    UnSelectedImagePath = "Classification/Room/AllCloseIcon.png",
                    Tag = "AllClose",
                    Visible = false
                };
                roomView.AddChidren(btnAllClose);
#if DEBUG
                btnAllClose.IsSelected = true;
#endif
                LoadEvent_CloseAllFunction(btnAllClose, room);
                var btn = new Button()
                {
@@ -404,21 +357,579 @@
                };
                roomListView.AddChidren(btn);
                roomViewbgColor.MouseUpEventHandler += (sender, e) =>
                {
                    Action<Room > ReloadRoomName = (obj) => {
                        btnFloorAndRoomName.Text = obj.floorName + obj.name;
                    };
                roomViewList.Add(roomView);
                roomViewbgColor.MouseUpEventHandler += (sender, e) => {
                    var view = new RoomPage(room);
                    var view = new RoomPage(room, ReloadRoomName);
                    MainPage.BasePageView.AddChidren(view);
                    view.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
            }
        }
            roomListView.AddChidren(new Button() { Height = Application.GetRealHeight(20) });//太高视图,将导航了遮挡的部分完整显示
        /// <summary>
        /// 加载功能列表界面
        /// </summary>
        void LoadFunctionPageView()
        {
            #region
            functionsPageView = new VerticalScrolViewLayout()
            {
                BackgroundColor = CSS_Color.BackgroundColor,
                Height = Application.GetRealHeight(667 - 64 - 49 + 20),
            };
            contentPageView.AddChidren(functionsPageView);
            FrameLayout functionContentView;
            functionContentView = new FrameLayout()
            {
                Y = Application.GetRealHeight(16),
                Height = Application.GetRealHeight(667 - 64 - 49 + 20),
            };
            functionsPageView.AddChidren(functionContentView);
            int index = 0;
            List<int> specialList = new List<int>() { 1, 2, 5, 6, 9, 10, 13, 14, 17, 18, 21, 22 };
            var s1View = new FrameLayout()
            {
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(164),
            };
            functionContentView.AddChidren(s1View);
            var s2View = new FrameLayout()
            {
                X = Application.GetRealWidth(196),
                Width = Application.GetRealWidth(164),
            };
            functionContentView.AddChidren(s2View);
            var lastY1 = Application.GetRealWidth(16);
            var lastY2 = Application.GetRealWidth(16);
            var functionCategoryCount = 0;
            foreach (var item in DB_ResidenceData.residenceData.functionTypeList)
            {
                int functionCount = 0;
                int functionOnCount = 0;
                switch (item)
                {
                    case ShowFunction.Light:
                        #region Light
                        functionCount = DB_ResidenceData.functionList.lights.Count;
                        functionOnCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        #endregion
                        break;
                    case ShowFunction.AC:
                        #region AC
                        functionCount = DB_ResidenceData.functionList.aCs.Count;
                        functionOnCount = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        #endregion
                        break;
                    case ShowFunction.Curtain:
                        #region Curtain
                        functionCount = DB_ResidenceData.functionList.curtains.Count;
                        functionOnCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        #endregion
                        break;
                    case ShowFunction.FloorHeating:
                        #region 地热
                        functionCount = DB_ResidenceData.functionList.floorHeatings.Count;
                        functionOnCount = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        #endregion
                        break;
                    case ShowFunction.DoorLock:
                        break;
                    case ShowFunction.Electric:
                        #region 电器
                        functionCount = DB_ResidenceData.functionList.electricals.Count;
                        functionOnCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        #endregion
                        break;
                    case ShowFunction.EnergyMonitoring:
                        break;
                    case ShowFunction.Environmental:
                        #region 环境数据
                        functionCount = DB_ResidenceData.functionList.sensorsEnvironmentalScience.Count;
                        #endregion
                        break;
                    case ShowFunction.FreshAir:
                        break;
                    case ShowFunction.Music:
                        functionCount = Music.A31MusicModel.A31MusicModelList.Count;
                        functionOnCount = Music.A31MusicModel.A31MusicModelList.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        break;
                    case ShowFunction.Panel:
                        break;
                    case ShowFunction.SecurityMonitoring:
                        break;
                    case ShowFunction.Sensor:
                        break;
                    case ShowFunction.VideoIntercom:
                        break;
                }
                if (functionCount == 0 && item != ShowFunction.Music)
                {
                    //continue;
                }
                functionCategoryCount++;
                FrameLayout functionView = new FrameLayout()
                {
                    Height = Application.GetRealWidth(161),
                    Radius = (uint)Application.GetRealWidth(6),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                    Tag = item + "_View",
                    Y = index % 2 == 1 ? lastY2 : lastY1
                };
                //高度稍高的view
                if (specialList.Contains(index))
                {
                    functionView.Height = Application.GetRealWidth(204);
                }
                if (index % 2 == 1)
                {
                    lastY2 += functionView.Height + Application.GetRealWidth(16);
                }
                else
                {
                    lastY1 += functionView.Height + Application.GetRealWidth(16);
                }
                if (index % 2 == 0)
                {
                    s1View.AddChidren(functionView);
                }
                else
                {
                    s2View.AddChidren(functionView);
                }
                Button 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);
                Button btnFunctionViewBg;
                btnFunctionViewBg = new Button()
                {
                    Height = Application.GetRealWidth(161),
                    UnSelectedImagePath = "FunctionIcon/FunctionBg/" + item + "FunctionBg.png",
                };
                functionView.AddChidren(btnFunctionViewBg);
                int functionPageTitleId = 0;
                switch (item)
                {
                    case ShowFunction.Light:
                        #region Light
                        btnName.TextID = StringId.Lights;
                        functionCount = DB_ResidenceData.functionList.lights.Count;
                        functionOnCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        Button btnLightPower = new Button()
                        {
                            X = Application.GetRealWidth(120),
                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
                            Width = Application.GetRealWidth(32),
                            Height = Application.GetRealWidth(32),
                            SelectedImagePath = "Public/PowerOpen.png",
                            UnSelectedImagePath = "Public/PowerClose.png",
                            IsSelected = functionOnCount > 0,
                            Tag = item + "_AllControl",
                        };
                        functionView.AddChidren(btnLightPower);
                        btnLightPower.MouseUpEventHandler = (sender, e) =>
                        {
                            LoadEvent_SwitchFunction(btnLightPower, item);
                        };
                        functionPageTitleId = StringId.Lights;
                        #endregion
                        break;
                    case ShowFunction.AC:
                        #region AC
                        btnName.TextID = StringId.AC;
                        functionCount = DB_ResidenceData.functionList.aCs.Count;
                        functionOnCount = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        Button btnAcPower = new Button()
                        {
                            X = Application.GetRealWidth(120),
                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
                            Width = Application.GetRealWidth(32),
                            Height = Application.GetRealWidth(32),
                            SelectedImagePath = "Public/PowerOpen.png",
                            UnSelectedImagePath = "Public/PowerClose.png",
                            Tag = item + "_AllControl",
                            IsSelected = functionOnCount > 0,
                        };
                        functionView.AddChidren(btnAcPower);
                        btnAcPower.MouseUpEventHandler = (sender, e) =>
                        {
                            LoadEvent_SwitchFunction(btnAcPower, item);
                        };
                        functionPageTitleId = StringId.AC;
                        #endregion
                        break;
                    case ShowFunction.Curtain:
                        #region Curtain
                        btnName.TextID = StringId.Curtain;
                        functionCount = DB_ResidenceData.functionList.curtains.Count;
                        functionOnCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        Button btnClose;
                        btnClose = new Button()
                        {
                            X = Application.GetRealWidth(72),
                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
                            Width = Application.GetRealWidth(32),
                            Height = Application.GetRealWidth(32),
                            UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
                            SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
                            //Tag = item + "_AllControl",
                            IsSelected = false
                        };
                        functionView.AddChidren(btnClose);
                        Button btnOpen;
                        btnOpen = new Button()
                        {
                            X = Application.GetRealWidth(120),
                            Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117),
                            Width = Application.GetRealWidth(32),
                            Height = Application.GetRealWidth(32),
                            UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
                            SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
                            IsSelected = true,
                        };
                        functionView.AddChidren(btnOpen);
                        LoadEvent_CurtainSwitch(btnClose, btnOpen);
                        functionPageTitleId = StringId.Curtain;
                        #endregion
                        break;
                    case ShowFunction.FloorHeating:
                        #region 地热
                        btnName.TextID = StringId.FloorHeating;
                        functionCount = DB_ResidenceData.functionList.floorHeatings.Count;
                        functionOnCount = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        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);
                        };
                        functionPageTitleId = StringId.FloorHeating;
                        #endregion
                        break;
                    case ShowFunction.DoorLock:
                        btnName.TextID = StringId.DoorLock;
                        break;
                    case ShowFunction.Electric:
                        #region 电器
                        btnName.TextID = StringId.Electric;
                        functionCount = DB_ResidenceData.functionList.electricals.Count;
                        functionOnCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        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);
                        };
                        functionPageTitleId = StringId.Electric;
                        #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();
                            MainPage.BasePageView.AddChidren(skipView);
                            skipView.LoadPage();
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        };
                        #endregion
                        break;
                    case ShowFunction.FreshAir:
                        btnName.TextID = StringId.FreshAir;
                        break;
                    case ShowFunction.Music:
                        btnName.TextID = StringId.Music;
                        functionCount = Music.A31MusicModel.A31MusicModelList.Count;
                        functionOnCount = Music.A31MusicModel.A31MusicModelList.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count;
                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                        {
                            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;
                        break;
                    case ShowFunction.Sensor:
                        btnName.TextID = StringId.Sensor;
                        break;
                    case ShowFunction.VideoIntercom:
                        btnName.TextID = StringId.VideoIntercom;
                        break;
                }
                //界面跳转--音乐跳转自己的界面--环境跳转自己的界面
                if (item != ShowFunction.Music && item != ShowFunction.Environmental)
                {
                    btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                    {
                        var skipView = new FunctionPage();
                        MainPage.BasePageView.AddChidren(skipView);
                        skipView.LoadPage(functionPageTitleId);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    };
                }
                if (item != ShowFunction.Environmental && functionCount != 0)
                {
                    Button btnFunctionCount = new Button()
                    {
                        X = Application.GetRealWidth(16) + 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(12 * 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);
                }
                index++;
            }
            if (functionCategoryCount > 4)
            {
                functionContentView.Height = Application.GetRealHeight((220 * functionCategoryCount / 2) + 20);
                s1View.Height = s2View.Height = functionContentView.Height;
            }
            #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 (DB_ResidenceData.residenceData.floors.Count < 2)
                {
                }
                else if (DB_ResidenceData.residenceData.floors.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 (DB_ResidenceData.residenceData.floors.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<string> chooseList = new List<string>();
                chooseList.Add(Language.StringByID(StringId.All));
                foreach (var f in DB_ResidenceData.residenceData.floors)
                {
                    chooseList.Add(f.name);
                }
                foreach (var floor in chooseList)
                {
                    if (floor != 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,
                        TextSize = CSS_FontSize.SubheadingFontSize,
                        IsSelected = btnFloor.Text == floor,
                        IsMoreLines = true,
                        Tag = floor
                    };
                    contentView.AddChidren(btnHomeName);
                    btnHomeName.MouseUpEventHandler += (senderH, en) =>
                    {
                        dialog.Close();
                        btnFloor.Text = floor;
                        roomsShowed.Clear();
                        if (floor == Language.StringByID(StringId.All))
                        {
                            roomsShowed.AddRange(DB_ResidenceData.rooms);
                        }
                        else
                        {
                            foreach (var room in DB_ResidenceData.rooms)
                            {
                                if (room.floorName == floor)
                                {
                                    roomsShowed.Add(room);
                                }
                            }
                        }
                        LoadRoomRows();
                    };
                }
                dialog.Show();
            };
            btnFloor.MouseUpEventHandler = eventHandler;
            btnFloorDownIcon.MouseUpEventHandler = eventHandler;
        }
        void LoadEvent_ChangeFloorDisplay()
        {
        }
        #endregion
    }
}
}