黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs
@@ -12,9 +12,22 @@
        {
            Tag = "Logic";
        }
        /// <summary>
        /// 记录点击房间
        /// </summary>
        Button roombjButton = new Button();
        /// <summary>
        /// 记录点击房间名称
        /// </summary>
        Button roomTextButton = new Button();
        Button devicetypeButton = new Button();
        /// <summary>
        /// 记录点击设备
        /// </summary>
        Button deviceTypeBjButton = new Button();
        /// <summary>
        /// 记录点击设备类型
        /// </summary>
        Button deviceTypeTextButton = new Button();
        FrameLayout clickframeLayout = new FrameLayout();
        Button clickbutton = new Button();
        Button clicktextcolcrbutton = new Button();
@@ -27,21 +40,33 @@
        /// </summary>
        public HorizontalScrolViewLayout roomhorizontalScrol = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 58),
            Height = Application.GetRealHeight(200),
            X = Application.GetRealWidth(58),
            Width = Application.GetRealWidth(1080 - 29),
            Height = Application.GetRealHeight(204),
            X = Application.GetRealWidth(29),
            Y = Application.GetRealHeight(184),
        };
        /// <summary>
        /// 圆角17
        /// </summary>
        public HorizontalScrolViewLayout devicetypehorizontalScrol1 = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 52),
            Height = Application.GetRealHeight(50),
            Y = Application.GetRealHeight(184 + 204),
            BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
            X = Application.GetRealWidth(52),
        };
        /// <summary>
        /// 设备类型滑动的控件
        /// </summary>
        public HorizontalScrolViewLayout devicetypehorizontalScrol = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 58),
            Width = Application.GetRealWidth(1080 - 52),
            Height = Application.GetRealHeight(280),
            Y = Application.GetRealHeight(184 + 200),
            Y = Application.GetRealHeight(184 + 204),
            BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
            X = Application.GetRealWidth(58),
            X = Application.GetRealWidth(52),
            // Radius = (uint)Application.GetRealHeight(50),
        };
@@ -51,8 +76,8 @@
        public VerticalScrolViewLayout middle = new VerticalScrolViewLayout
        {
            X = Application.GetRealWidth(58),
            Y = Application.GetRealHeight(184 + 200 + 280 + 40),
            Height = Application.GetRealHeight(Method.H - 40 - 184 - 280 - 200),
            Y = Application.GetRealHeight(184 + 204 + 280 + 40),
            Height = Application.GetRealHeight(Method.H - 40 - 184 - 280 - 204),
            BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
        };
@@ -88,15 +113,18 @@
            if (roomlists.Count == 0)
            {
                //返回没有房间隐藏下面整块;
                devicetypehorizontalScrol1.Height = 0;
                devicetypehorizontalScrol.Height = 0;
                middle.Height = 0;
            }
            /// 设备类型列表
            var deviceTypeList = Method.GetDevice(IfType);
            this.AddChidren(roomhorizontalScrol);
            this.AddChidren(devicetypehorizontalScrol1);
            this.AddChidren(devicetypehorizontalScrol);
            this.AddChidren(middle);
            devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft);
            devicetypehorizontalScrol1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
            devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft|HDLUtils.RectCornerTopLeft);
            middle.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft);
            ///楼层点击事件
            view.foolrclickBtn.MouseUpEventHandler += (sender, e) =>
@@ -187,11 +215,13 @@
                          var list = Method.GetRoomList(IfType, btnfoolrname.Tag.ToString());
                          if (list.Count == 0)
                          {
                              devicetypehorizontalScrol1.Height = 0;
                              devicetypehorizontalScrol.Height = 0;
                              middle.Height = 0;
                          }
                          else
                          {
                              devicetypehorizontalScrol1.Height = 50;
                              devicetypehorizontalScrol.Height = Application.GetRealHeight(280);
                              middle.Height = Application.GetRealHeight(1920 - 40 - 184 - 280 - 200);
                          }
@@ -214,70 +244,64 @@
            {
                var room = roomlist[i];
                var fra = new FrameLayout
                {
                    Height = Application.GetRealHeight(200),
                    Width = Application.GetRealWidth(255),
                };
                roomhorizontalScrol.AddChidren(fra);
                LogicView.RoomClickView roomClickView = new LogicView.RoomClickView();
                roomClickView.Show(roomhorizontalScrol);
                roomClickView.roomnameBtn.Text = room.Name;
                var roombjBtn = new Button
                {
                    Height = Application.GetRealHeight(158),
                    Width = Application.GetRealWidth(255),
                    UnSelectedImagePath = "ZigeeLogic/iconBackgroundColor.png",
                    SelectedImagePath = "ZigeeLogic/iconSelectedBackgroundColor.png",
                    Y = Application.GetRealHeight(21),
                };
                fra.AddChidren(roombjBtn);
                var roomnameBtn = new Button
                if (i == 0)//默认选中第一个房间
                {
                    Height = Application.GetRealHeight(152 - 26 - 20),
                    Width = Application.GetRealWidth(255 - 20 - 50),
                    Text = room.Name,
                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                    SelectedTextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                    Y = Application.GetRealHeight(21 + 13 + 10),
                    X = Application.GetRealWidth(10 + 25),
                };
                fra.AddChidren(roomnameBtn);
                if (i == 0)//
                {
                    roombjButton.IsSelected = false;
                    roombjButton = roombjBtn;
                    roombjBtn.IsSelected = true;
                    roomClickView.roombjBtn.Height = Application.GetRealHeight(135);
                    roomClickView.roombjBtn.Width = Application.GetRealWidth(245);
                    roomClickView.roombjBtn.Y = Application.GetRealHeight(40);
                    roomClickView.roombjBtn.X = Application.GetRealWidth(0);
                    roombjButton = roomClickView.roombjBtn;
                    roomClickView.roombjBtn.IsSelected = true;
                    roomTextButton.IsSelected = false;
                    roomTextButton = roomnameBtn;
                    roomnameBtn.IsSelected = true;
                    roomClickView.roomnameBtn.Width = Application.GetRealWidth(245 - 60 * 2);
                    roomClickView.roomnameBtn.X = Application.GetRealWidth(60);
                    roomTextButton = roomClickView.roomnameBtn;
                    roomClickView.roomnameBtn.IsSelected = true;
                    roombjBtn.IsSelected = true;
                    roomnameBtn.IsSelected = true;
                    var list = Method.GetDeviceUIList(room, deviceTypeList);
                    var list = Method.GetDeviceUIList(room, deviceTypeList, IfType);
                    AllDeviceTypeView(list);
                }
                EventHandler<MouseEventArgs> roomclick = (sender, e) =>
                {
                    roombjButton.Height = Application.GetRealHeight(72);
                    roombjButton.Width = Application.GetRealWidth(170);
                    roombjButton.Y = Application.GetRealHeight(60);
                    roombjButton.X = Application.GetRealWidth(26);
                    roombjButton.IsSelected = false;
                    roombjButton = roombjBtn;
                    roombjBtn.IsSelected = true;
                    roombjButton.Height = Application.GetRealHeight(72);
                    roombjButton.Width = Application.GetRealWidth(170);
                    roombjButton.Y = Application.GetRealHeight(60);
                    roombjButton.X = Application.GetRealWidth(26);
                    roombjButton.IsSelected = false;
                    roomClickView.roombjBtn.Height = Application.GetRealHeight(135);
                    roomClickView.roombjBtn.Width = Application.GetRealWidth(245);
                    roomClickView.roombjBtn.Y = Application.GetRealHeight(40);
                    roomClickView.roombjBtn.X = Application.GetRealWidth(0);
                    roombjButton = roomClickView.roombjBtn;
                    roomClickView.roombjBtn.IsSelected = true;
                    roomTextButton.Width = Application.GetRealWidth(125);
                    roomTextButton.X = Application.GetRealWidth(26 + 22);
                    roomTextButton.IsSelected = false;
                    roomTextButton = roomnameBtn;
                    roomnameBtn.IsSelected = true;
                    roomClickView.roomnameBtn.Width = Application.GetRealWidth(245 - 60 * 2);
                    roomClickView.roomnameBtn.X = Application.GetRealWidth(60);
                    roomTextButton = roomClickView.roomnameBtn;
                    roomClickView.roomnameBtn.IsSelected = true;
                    var list = Method.GetDeviceUIList(room, deviceTypeList);
                    var list = Method.GetDeviceUIList(room, deviceTypeList, IfType);
                    AllDeviceTypeView(list);
                };
                roomnameBtn.MouseUpEventHandler += roomclick;
                roombjBtn.MouseUpEventHandler += roomclick;
                roomClickView.roomnameBtn.MouseUpEventHandler += roomclick;
                roomClickView.roombjBtn.MouseUpEventHandler += roomclick;
            }
        }
@@ -292,30 +316,27 @@
            for (int i = 0; i < devicetypelist.Count; i++)
            {
                var devicetype = devicetypelist[i];
                var spaceRowLayout = new FrameLayout();
                devicetypehorizontalScrol.AddChidren(spaceRowLayout);
                if (i == 0)
                {
                    var spaceRowLayout = new FrameLayout();
                    devicetypehorizontalScrol.AddChidren(spaceRowLayout);
                    spaceRowLayout.Width = Application.GetRealWidth(37);
                }
                else
                {
                    spaceRowLayout.Width = Application.GetRealWidth(80);
                }
                var deviceRowLayout = new FrameLayout
                {
                    Width = Application.GetRealWidth(156 + 20),
                    Height = Application.GetRealHeight(280 - 30),
                    Y = Application.GetRealHeight(30),
                    Width = Application.GetRealWidth(150+75),
                    Height = Application.GetRealHeight(173+52),
                    Y = Application.GetRealHeight(35),
                };
                devicetypehorizontalScrol.AddChidren(deviceRowLayout);
                var backgroundColor = new Button
                {
                    Width = Application.GetMinRealAverage(156),
                    Height = Application.GetMinRealAverage(180),
                    X = Application.GetRealWidth(10),
                    Width = Application.GetMinRealAverage(150),
                    Height = Application.GetMinRealAverage(173),
                    UnSelectedImagePath = "ZigeeLogic/deviceunselectedbackgroundcolor.png",
                    SelectedImagePath = "ZigeeLogic/deviceselectedbackgroundcolor.png",
                };
@@ -326,33 +347,49 @@
                {
                    Width = Application.GetMinRealAverage(84),
                    Height = Application.GetMinRealAverage(84),
                    X = Application.GetRealWidth(46),
                    Y = Application.GetRealHeight(30),
                    X = Application.GetRealWidth(35),
                    Y = Application.GetRealHeight(29),
                    UnSelectedImagePath =Method.GetDeviceTypeIcon(devicetype),
                };
                deviceRowLayout.AddChidren(devicetypeicon);
                var devicetypename = new Button
                {
                    Width = Application.GetRealWidth(176),
                    Height = Application.GetRealHeight(40),
                    Width = Application.GetRealWidth(150),
                    Height = Application.GetRealHeight(52),
                    Text = devicetype,
                    TextAlignment = TextAlignment.Center,
                    Y = backgroundColor.Bottom,
                    TextColor = ZigbeeColor.Current.LogicAddColor,
                    TextSize = 10,
                    TextColor =ZigbeeColor.Current.LogicBtnSelectedColor,
                    SelectedTextColor =ZigbeeColor.Current.LogicAddColor,
                };
                deviceRowLayout.AddChidren(devicetypename);
                //if (i == 0)//默认选中第一个设备类型
                //{
                //    devicetypeButton.IsSelected = false;
                //    devicetypeButton = backgroundColor;
                //    backgroundColor.IsSelected = true;
                //    var list = Method.GetDeviceType(devicetypename.Text);
                //    ConditionDeviceView(list, devicelist);
                //}
                EventHandler<MouseEventArgs> devicetypeclick = (sender13, e13) =>
                {
                    devicetypeButton.IsSelected = false;
                    devicetypeButton = backgroundColor;
                    deviceTypeBjButton.IsSelected = false;
                    deviceTypeBjButton = backgroundColor;
                    backgroundColor.IsSelected = true;
                    deviceTypeTextButton.IsSelected = false;
                    deviceTypeTextButton = devicetypename;
                    devicetypename.IsSelected = true;
                    var list = Method.GetDeviceType(devicetypename.Text);
                    ConditionDeviceView(list, devicelist);
                };
                deviceRowLayout.MouseUpEventHandler += devicetypeclick;
                devicetypename.MouseUpEventHandler += devicetypeclick;
                devicetypeicon.MouseUpEventHandler += devicetypeclick;
                backgroundColor.MouseUpEventHandler += devicetypeclick;
@@ -360,6 +397,7 @@
            }
            ///显示房间所有设备
            ConditionDeviceView(new List<DeviceType>(), devicelist);
        }
        /// <summary>
@@ -369,19 +407,13 @@
        /// <param name="devicelist">设备列表</param>
        void ConditionDeviceView(List<DeviceType> deviceTypelist, List<CommonDevice> devicelist)
        {
            middle.RemoveAll();
            foreach (var common in devicelist)
            {
                if (deviceTypelist.Count != 0 && !deviceTypelist.Contains(common.Type))
                {
                    continue;
                }
                if (IfType == "condition_mould")
                {
                    if (common.IasDeviceType != 13)
                    {//自动化模板只支持红外传感器
                        continue;
                    }
                }
                var deviceFramelayout = new FrameLayout
                {
@@ -418,7 +450,7 @@
                deviceFramelayout.AddChidren(deviceRow);
                var devicename = new Button
                {
                    Text = LocalDevice.Current.GetDeviceEpointName(common),
                    Text = HdlDeviceCommonLogic.Current.GetDeviceEpointName(common),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                    SelectedTextColor = ZigbeeColor.Current.LogicAddColor,
@@ -448,8 +480,7 @@
                    devicename.IsSelected = true;
                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                    this.AddChidren(flMain);
                    CurrentDeviceState.CurrentDeviceView(flMain, common, false, IfType);
                    CurrentDeviceState.CurrentDeviceView(flMain, common, false, IfType,0);
                };
                deviceFramelayout.MouseUpEventHandler += devicclick;
                bjFramelayout.MouseUpEventHandler += devicclick;