黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
@@ -22,7 +22,7 @@
        /// <summary>
        /// 全部的数据(keys1:房间ID   Keys2:R文件的数值)
        /// </summary>
        private Dictionary<string, Dictionary<int, uRowInformation>> dicAllData = new Dictionary<string, Dictionary<int, uRowInformation>>();
        private Dictionary<string, Dictionary<string, uRowInformation>> dicAllData = new Dictionary<string, Dictionary<string, uRowInformation>>();
        /// <summary>
        /// 当前选择的楼层ID
        /// </summary>
@@ -93,7 +93,7 @@
            var listRoom = new List<Common.Room>();
            foreach (string roomId in this.dicAllData.Keys)
            {
                listRoom.Add(Common.Room.CurrentRoom.GetRoomById(roomId));
                listRoom.Add(HdlRoomLogic.Current.GetRoomById(roomId));
            }
            //初始化房间菜单控件
@@ -129,7 +129,7 @@
        private void InitTopRightMenuControl()
        {
            //获取楼层
            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
            if (dicFloor.Count == 0)
            {
                return;
@@ -143,6 +143,7 @@
            btnFloor.Gravity = Gravity.CenterVertical;
            btnFloor.X = btnIconContr.X + btnIconContr.btnIcon.X - Application.GetRealWidth(300);
            btnFloor.TextAlignment = TextAlignment.CenterRight;
            btnFloor.IsBold = true;
            topFrameLayout.AddChidren(btnFloor);
            foreach (var floorId in dicFloor.Keys)
@@ -156,10 +157,10 @@
            btnIconContr.ButtonClickEvent += (sender, e) =>
            {
                //楼层菜单
                var contr = new TopRightMenuControl(dicFloor.Count, 449, Language.StringByID(R.MyInternationalizationString.SelectFloor));
                var contr = new TopRightFloorMenuControl(dicFloor.Count, 2, this.nowSelectFloorId, Language.StringByID(R.MyInternationalizationString.SelectFloor));
                foreach (var floorId in dicFloor.Keys)
                {
                    contr.AddRowMenu(dicFloor[floorId], "Floor/Floor.png", "Floor/FloorSelected.png", () =>
                    contr.AddRowMenu(floorId, () =>
                    {
                        //记录起选择的ID
                        this.nowSelectFloorId = floorId;
@@ -179,16 +180,16 @@
        /// 初始化行控件
        /// </summary>
        /// <param name="dicRowData"></param>
        private void InitRowControl(Dictionary<int, uRowInformation> dicRowData)
        private void InitRowControl(Dictionary<string, uRowInformation> dicRowData)
        {
            this.listView.RemoveAll();
            HdlThreadLogic.Current.RunMainInThread(() =>
            {
                int count = 0;
                foreach (var textId in dicRowData.Keys)
                foreach (var strText in dicRowData.Keys)
                {
                    count++;
                    var rowData = dicRowData[textId];
                    var rowData = dicRowData[strText];
                    var rowlayout = new FrameRowControl(listView.rowSpace / 2);
                    listView.AddChidren(rowlayout);
@@ -197,7 +198,7 @@
                    btnIcon.UnSelectedImagePath = rowData.IconPath;
                    //设备名
                    var txtDevice = rowlayout.AddLeftCaption(Language.StringByID(textId), 750);
                    var txtDevice = rowlayout.AddLeftCaption(strText, 750);
                    txtDevice.TextSize = 15;
                    //向右图标
                    rowlayout.AddRightArrow();
@@ -237,12 +238,12 @@
        /// 获取设备的所有类型,并整理成每一行的数据(keys1:房间ID   Keys2:R文件的数值)
        /// </summary>
        /// <returns></returns>
        private Dictionary<string, Dictionary<int, uRowInformation>> GetAllListData()
        private Dictionary<string, Dictionary<string, uRowInformation>> GetAllListData()
        {
            var dicData = new Dictionary<string, Dictionary<int, uRowInformation>>();
            var dicData = new Dictionary<string, Dictionary<string, uRowInformation>>();
            //获取本地安防的场景
            Dictionary<int, string> dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
            var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(this.nowSelectFloorId);
            var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(this.nowSelectFloorId);
            for (int i = 0; i < listRoom.Count; i++)
            {
@@ -262,18 +263,18 @@
        /// <param name="i_room"></param>
        /// <param name="dicScene"></param>
        /// <returns></returns>
        private Dictionary<int, uRowInformation> GetRoomDeviceAndSceneData(Common.Room i_room, Dictionary<int, string> dicScene)
        private Dictionary<string, uRowInformation> GetRoomDeviceAndSceneData(Common.Room i_room, Dictionary<int, string> dicScene)
        {
            if (dicScene == null)
            {
                //获取本地安防的场景
                dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
            }
            var dicRoomData = new Dictionary<int, uRowInformation>();
            var dicRoomData = new Dictionary<string, uRowInformation>();
            for (int j = 0; j < i_room.DeviceUIList.Count; j++)
            for (int j = 0; j < i_room.ListDevice.Count; j++)
            {
                var device = i_room.DeviceUIList[j].CommonDevice;
                var device = HdlDeviceCommonLogic.Current.GetDevice(i_room.ListDevice[j]);
                //如果那个设备已经添加了,则不再显示
                if (device == null || HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, device) == true)
                {
@@ -283,36 +284,43 @@
                 || device.Type == DeviceType.DimmableLight//调光器
                 || device.Type == DeviceType.ColorDimmableLight//彩灯
                 || device.Type == DeviceType.OnOffOutput//继电器
                 || device.Type == DeviceType.ColorTemperatureLight//色温灯
                 || device.Type == DeviceType.WindowCoveringDevice)//窗帘
                {
                    string unSelectPath = string.Empty;
                    string selectPath = string.Empty;
                    var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice>() { device });
                    var typeInfo = HdlDeviceCommonLogic.Current.GetDeviceBelongEnumInfo(device);
                    //获取图片
                    Common.LocalDevice.Current.GetDeviceBeloneIcon(typeInfo.ConcreteType, ref unSelectPath, ref selectPath);
                    if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
                    HdlDeviceCommonLogic.Current.GetDeviceFunctionTypeMenuIcon(typeInfo, ref unSelectPath, ref selectPath);
                    if (dicRoomData.ContainsKey(typeInfo.BeloneText) == false)
                    {
                        dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
                        dicRoomData[typeInfo.BeloneTextId].IconPath = unSelectPath;
                        dicRoomData[typeInfo.BeloneText] = new uRowInformation();
                        dicRoomData[typeInfo.BeloneText].IconPath = unSelectPath;
                    }
                    dicRoomData[typeInfo.BeloneTextId].listDevice.Add(device);
                    dicRoomData[typeInfo.BeloneText].listDevice.Add(device);
                }
            }
            for (int j = 0; j < i_room.SceneUIList.Count; j++)
            string strSceneText = Language.StringByID(R.MyInternationalizationString.uScence);
            for (int j = 0; j < i_room.ListSceneId.Count; j++)
            {
                //如果那个场景已经添加了,则不再显示
                if (dicScene.ContainsKey(i_room.SceneUIList[j].Id) == true)
                if (dicScene.ContainsKey(i_room.ListSceneId[j]) == true)
                {
                    continue;
                }
                if (dicRoomData.ContainsKey(R.MyInternationalizationString.uScence) == false)
                var sceneUi = HdlSceneLogic.Current.GetSceneUIBySceneId(i_room.ListSceneId[j]);
                if (sceneUi == null)
                {
                    dicRoomData[R.MyInternationalizationString.uScence] = new uRowInformation();
                    dicRoomData[R.MyInternationalizationString.uScence].IconPath = "Scene/SceneIcon.png";
                    dicRoomData[R.MyInternationalizationString.uScence].listScene = new List<Common.SceneUI>();
                    continue;
                }
                dicRoomData[R.MyInternationalizationString.uScence].listScene.Add(i_room.SceneUIList[j]);
                if (dicRoomData.ContainsKey(strSceneText) == false)
                {
                    dicRoomData[strSceneText] = new uRowInformation();
                    dicRoomData[strSceneText].IconPath = "Scene/SceneIcon.png";
                    dicRoomData[strSceneText].listScene = new List<Common.SceneUI>();
                }
                dicRoomData[strSceneText].listScene.Add(sceneUi);
            }
            return dicRoomData;
        }