| | |
| | | /// <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>
|
| | |
| | | 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));
|
| | | }
|
| | |
|
| | | //初始化房间菜单控件
|
| | |
| | | private void InitTopRightMenuControl()
|
| | | {
|
| | | //获取楼层
|
| | | var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
|
| | | var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
|
| | | if (dicFloor.Count == 0)
|
| | | {
|
| | | return;
|
| | |
| | | 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)
|
| | |
| | | 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;
|
| | |
| | | /// 初始化行控件
|
| | | /// </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);
|
| | |
| | | btnIcon.UnSelectedImagePath = rowData.IconPath;
|
| | |
|
| | | //设备名
|
| | | var txtDevice = rowlayout.AddLeftCaption(Language.StringByID(textId), 750);
|
| | | var txtDevice = rowlayout.AddLeftCaption(strText, 750);
|
| | | txtDevice.TextSize = 15;
|
| | | //向右图标
|
| | | rowlayout.AddRightArrow();
|
| | |
| | | /// 获取设备的所有类型,并整理成每一行的数据(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++)
|
| | | {
|
| | |
| | | /// <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)
|
| | | {
|
| | |
| | | || 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;
|
| | | }
|