From 2bf5ec775cb57d8015bee58c745a1e48081ff1b1 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期二, 15 十月 2019 11:06:05 +0800 Subject: [PATCH] 首次合并了全部的代码 --- ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs | 763 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 419 insertions(+), 344 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs index ed9afe6..fba4234 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs @@ -16,7 +16,7 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalScrolViewLayout listView = null; + private VerticalFrameControl listView = null; /// <summary> /// 鎴愬憳淇℃伅 /// </summary> @@ -42,7 +42,7 @@ this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark; //璁剧疆澶撮儴淇℃伅 - base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uHadSharedContent)); + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uShared2)); //娣诲姞鍥炬爣 var btnAdd = new MostRightIconControl(69, 69); @@ -56,387 +56,462 @@ btnAdd.InitControl(); //鍒濆鍖栦腑閮ㄤ俊鎭� - //this.InitMiddleFrame(); + this.InitMiddleFrame(); } - ///// <summary> - ///// 鍒濆鍖栦腑閮ㄤ俊鎭� - ///// </summary> - //private void InitMiddleFrame() - //{ - // //娓呯┖bodyFrame - // this.ClearBodyFrame(); + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); - // //鍖哄煙鍒楄〃 - // var btnTitle = new NormalViewControl(1000, true); - // btnTitle.X = ControlCommonResourse.XXLeft; - // btnTitle.TextID = R.MyInternationalizationString.uAreaList; - // btnTitle.Y = Application.GetRealHeight(30); - // bodyFrameLayout.AddChidren(btnTitle); + HdlThreadLogic.Current.RunThread(async () => + { + //鑾峰彇鎴愬憳鐨勫叡浜垪琛� + var result = await this.GetMemberShardContentListAndSetToLocation(); + if (result == false) + { + return; + } + //浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 + this.GetMemberShardContentListFromLocal(); + //鍒濆鍖栧尯鍩熷垪琛� + this.InitAreaListRow(); - // this.listView = new VerticalScrolViewLayout(); - // listView.Y = btnTitle.Bottom + Application.GetRealHeight(30); - // listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(30) - btnTitle.Bottom; - // bodyFrameLayout.AddChidren(listView); - - // HdlThreadLogic.Current.Run(async () => - // { - // //鑾峰彇鎴愬憳鐨勫叡浜垪琛�(杩斿洖鏂囦欢鐨勫悕瀛楀拰涓婚敭) - // var result = await this.GetMemberShardContentListAndSetToLocation(); - // if (result == false) - // { - // return; - // } - // //浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 - // this.GetMemberShardContentListFromLocal(); - // //鍒濆鍖栧尯鍩熷垪琛� - // this.InitAreaListRow(); - - // }); - //} + }); + } #endregion - //#region 鈻� 鍖哄煙鍒楄〃___________________________ + #region 鈻� 鍖哄煙鍒楄〃___________________________ - ///// <summary> - ///// 鍒濆鍖栧尯鍩熷垪琛� - ///// </summary> - //private void InitAreaListRow() - //{ - // if (memberShardInfo.dicShardRoom.Count == 0) - // { - // Application.RunOnMainThread(() => - // { - // if (bodyFrameLayout != null) - // { - // bodyFrameLayout.RemoveAll(); - // //璇烽厤缃叡浜澶� - // var btnMsg = new MsgViewControl(bodyFrameLayout.Width, false); - // btnMsg.Gravity = Gravity.CenterVertical; - // btnMsg.TextID = R.MyInternationalizationString.uPleaseConfigureShardDeviceMsg; - // bodyFrameLayout.AddChidren(btnMsg); - // } - // }); - // return; - // } - // foreach (var room in memberShardInfo.dicShardRoom.Values) - // { - // Application.RunOnMainThread(() => - // { - // if (bodyFrameLayout != null) - // { - // this.AddRoomRow(room); - // } - // }); - // } - //} + /// <summary> + /// 鍒濆鍖栧尯鍩熷垪琛� + /// </summary> + private void InitAreaListRow() + { + if (memberShardInfo.dicShardRoom.Count == 0) + { + HdlThreadLogic.Current.RunMain(() => + { + //鏄剧ず娌℃湁鍒嗕韩鏁版嵁妯″紡 + this.ShowNotShardMode(); + }); + } + else + { + //鍚堝苟鍚屼竴妤煎眰鐨勬埧闂� + var dicGroup = new Dictionary<string, List<Common.Room>>(); + foreach (var room in memberShardInfo.dicShardRoom.Values) + { + if (dicGroup.ContainsKey(room.FloorId) == false) + { + dicGroup[room.FloorId] = new List<Common.Room>(); + } + dicGroup[room.FloorId].Add(room); + } - ///// <summary> - ///// 娣诲姞鎴块棿琛� - ///// </summary> - ///// <param name="room"></param> - //private void AddRoomRow(Common.Room room) - //{ - // var row = new StatuRowLayout(listView); - // //鎴块棿鍚� - // var btnName = new RowCenterView(false); - // btnName.Text = room.Name; - // row.AddChidren(btnName); + HdlThreadLogic.Current.RunMain(() => + { + bodyFrameLayout.RemoveAll(); - // var btnDelete = new RowDeleteButton(); - // row.AddRightView(btnDelete); - // btnDelete.MouseUpEventHandler += (sender, e) => - // { - // //纭畾绉婚櫎璇ュ叡浜尯鍩燂紵 - // string msg = Language.StringByID(R.MyInternationalizationString.uDeleteShardAreaMsg); - // this.ShowConfirmMsg(msg, "DoDeleteShardContentByRoom", room); - // }; + this.listView = new VerticalFrameControl(29); + listView.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listView); - // row.AddRightArrow(); + //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛� + foreach (var floorId in dicGroup.Keys) + { + this.AddRoomListRow(floorId, dicGroup[floorId]); + } + }); + } + } - // row.MouseUpEvent += (sender, e) => - // { - // var form = new SearchConfigureSharedMainForm(); - // form.AddForm(room, memberResult, memberShardInfo); - // }; - //} - //#endregion + /// <summary> + /// 娣诲姞鎴块棿鍒楄〃琛� + /// </summary> + /// <param name="listRoom"></param> + private void AddRoomListRow(string floorId, List<Common.Room> listRoom) + { + var frameBack = new FrameListControl(29); + frameBack.BackgroundColor = UserCenterColor.Current.White; + frameBack.Height = 10; + this.listView.AddChidrenFrame(frameBack); - //#region 鈻� 鍒犻櫎鍏变韩鍖哄煙_______________________ + //妤煎眰 + if (string.IsNullOrEmpty(floorId) == false) + { + var btnFloor = new NormalViewControl(800, 60, true); + btnFloor.X = ControlCommonResourse.XXLeft; + btnFloor.Y = Application.GetRealHeight(52); + btnFloor.TextColor = UserCenterColor.Current.TextColor2; + btnFloor.TextSize = 15; + frameBack.AddChidren(btnFloor); + if (memberShardInfo.dicShardFloor.ContainsKey(floorId) == true) + { + btnFloor.Text = memberShardInfo.dicShardFloor[floorId]; + } + else + { + btnFloor.Text = "UnKnown"; + } + } - ///// <summary> - ///// 鍒犻櫎鍏变韩鍖哄煙 - ///// </summary> - ///// <param name="room">鎸囧畾瑕佸垹闄ょ殑鍏变韩鍖哄煙</param> - //public void DoDeleteShardContentByRoom(Common.Room room) - //{ - // //鑾峰彇鍏ㄩ儴璁惧 - // var listDevice = new List<CommonDevice>(); - // foreach (var deviceUi in room.DeviceUIList) - // { - // var device = deviceUi.CommonDevice; - // if (device == null) - // { - // var byteData = HdlShardLogic.Current.GetShardFileContent(deviceUi.DeviceFileName); - // if (byteData == null) - // { - // continue; - // } - // device = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice>(System.Text.Encoding.UTF8.GetString(byteData)); - // } - // listDevice.Add(device); - // } - // //鑾峰彇鍏ㄩ儴鍦烘櫙 - // var listScene = new List<Common.SceneUI>(); - // foreach (var sceneUi in room.SceneUIList) - // { - // listScene.Add(sceneUi); - // } + for (int i = 0; i < listRoom.Count; i++) + { + var room = listRoom[i]; + var frameRow = new RowLayoutControl(frameBack.rowSpace / 2); + frameBack.AddChidren(frameRow); + //鍥炬爣 + var btnIcon = frameRow.frameTable.AddLeftIcon(81); + btnIcon.UnSelectedImagePath = "Item/RoomIcon.png"; + //鍚嶇О + var btnName = frameRow.frameTable.AddLeftCaption(room.Name, 600); + btnName.TextSize = 15; + //鍙崇澶� + frameRow.frameTable.AddRightArrow(); + if (i != listRoom.Count - 1) + { + //搴曠嚎 + frameRow.frameTable.AddBottomLine(); + } + frameRow.frameTable.ButtonClickEvent += (sender, e) => + { + }; - // HdlThreadLogic.Current.Run(async () => - // { - // //鎵ц鍒犻櫎 - // var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene); - // if (result == true) - // { - // Application.RunOnMainThread(() => - // { - // //閲嶆柊鍒锋柊鐣岄潰 - // this.InitMiddleFrame(); - // }); - // } - // }); - //} + //鍒犻櫎 + var btnDelete = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false); + btnDelete.BackgroundColor = 0xfff75858; + btnDelete.TextSize = 12; + btnDelete.TextColor = UserCenterColor.Current.White; + btnDelete.TextAlignment = TextAlignment.Center; + btnDelete.TextID = R.MyInternationalizationString.uDelete; + frameRow.AddRightView(btnDelete); + btnDelete.ButtonClickEvent += (sender, e) => + { + //纭鍒犻櫎鍏变韩鎴块棿锛� + string msg = Language.StringByID(R.MyInternationalizationString.uDeleteShardRoomMsg); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎鍏变韩鍖哄煙 + this.DoDeleteShardContentByRoom(room); + }); + }; + } + //璋冩暣瀛愭帶浠禙rame楂樺害 + this.listView.AdjustChidrenFrameHeight(frameBack, Application.GetRealHeight(29)); + } + #endregion - //#endregion + #region 鈻� 鍒犻櫎鍏变韩鍖哄煙_______________________ - //#region 鈻� 鑾峰彇鎴愬憳鍏变韩鍒楄〃___________________ + /// <summary> + /// 鍒犻櫎鍏变韩鍖哄煙 + /// </summary> + /// <param name="room">鎸囧畾瑕佸垹闄ょ殑鍏变韩鍖哄煙</param> + public void DoDeleteShardContentByRoom(Common.Room room) + { + //鑾峰彇鍏ㄩ儴璁惧 + var listDevice = new List<CommonDevice>(); + foreach (var deviceUi in room.DeviceUIList) + { + var device = deviceUi.CommonDevice; + if (device == null) + { + string deviceFile = deviceUi.FileName.Replace("DeviceUI_", string.Empty); + var byteData = HdlShardLogic.Current.GetShardFileContent(deviceFile); + if (byteData == null) + { + continue; + } + device = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice>(System.Text.Encoding.UTF8.GetString(byteData)); + } + listDevice.Add(device); + } + //鑾峰彇鍏ㄩ儴鍦烘櫙 + var listScene = new List<Common.SceneUI>(); + foreach (var sceneUi in room.SceneUIList) + { + listScene.Add(sceneUi); + } - ///// <summary> - ///// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦� - ///// </summary> - ///// <returns></returns> - //private async Task<bool> GetMemberShardContentListAndSetToLocation() - //{ - // if (this.memberShardInfo.Refresh == false) - // { - // return true; - // } - // this.memberShardInfo.Refresh = false; + HdlThreadLogic.Current.RunThread(async () => + { + //鎵ц鍒犻櫎 + var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene); + if (result == true) + { + HdlThreadLogic.Current.RunMain(() => + { + //閲嶆柊鍒锋柊鐣岄潰 + this.InitMiddleFrame(); + }); + } + }); + } - // //寮�鍚繘搴︽潯 - // this.ShowProgressBar(); + #endregion - // var infoPra = new - // { - // DistributedMark = memberResult.SubAccountDistributedMark, - // HouseDistributedMark = Shared.Common.Config.Instance.HomeId, - // IsOtherAccountControl = Common.Config.Instance.isAdministrator - // }; - // var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetShareDataBySubAccount", false, infoPra); - // if (result == null) - // { - // //鍏抽棴杩涘害鏉� - // this.CloseProgressBar(ShowReLoadMode.YES); - // return false; - // } - // var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReceiveShardInfoResult>>(result); - // //鍏堟竻绌哄叡浜枃浠跺す - // HdlShardLogic.Current.ClearShardDirectory(); + #region 鈻� 鑾峰彇鎴愬憳鍏变韩鍒楄〃___________________ - // var listMark = new List<string>(); - // foreach (var data in listData) - // { - // //鎬ц兘浼樺寲锛氬鏋滄湰鍦版嫢鏈夎繖涓枃浠剁殑璇�,鐩存帴浣跨敤閭d釜鏂囦欢 - // string fileName = data.ShareName; - // //璁板綍璧峰畠鐨勪富閿� - // memberShardInfo.dicAllShardKeys[fileName] = data.DistributedMark; + /// <summary> + /// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦� + /// </summary> + /// <returns></returns> + private async Task<bool> GetMemberShardContentListAndSetToLocation() + { + if (this.memberShardInfo.Refresh == false) + { + return true; + } + this.memberShardInfo.Refresh = false; - // if (fileName.StartsWith("Room_") == true || fileName.StartsWith("Scene_") == true) - // { - // //鎴块棿鏂囦欢鍜屽満鏅枃浠堕渶瑕侀噸鏂板弽搴忓垪鍖� - // listMark.Add(data.DistributedMark); - // continue; - // } - // if (Shared.Common.Global.IsExistsByHomeId(fileName) == true) - // { - // //鍏朵粬鏂囦欢鐨勮瘽锛屽鏋滄湰鍦板瓨鍦紝鍒欎互鏈湴鏂囦欢涓哄噯 - // HdlShardLogic.Current.AddShardFile(fileName); - // continue; - // } - // listMark.Add(data.DistributedMark); - // } + //寮�鍚繘搴︽潯 + this.ShowProgressBar(); - // //灏嗗垎浜殑鏁版嵁瀛樺叆鏈湴,杩斿洖鐨勬槸鏂囦欢鍚嶅瓧(寮傚父鏃惰繑鍥瀗ull) - // var listFile = await HdlShardLogic.Current.SetShardFileToLocation(listMark); - // if (listFile == null) - // { - // //鍏抽棴杩涘害鏉� - // this.CloseProgressBar(ShowReLoadMode.YES); - // return false; - // } - // //鍏抽棴杩涘害鏉� - // this.CloseProgressBar(); + var infoPra = new + { + DistributedMark = memberResult.SubAccountDistributedMark, + HouseDistributedMark = Shared.Common.Config.Instance.HomeId, + IsOtherAccountControl = Common.Config.Instance.isAdministrator + }; + var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetShareDataBySubAccount", false, infoPra); + if (result == null) + { + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(ShowReLoadMode.YES); + return false; + } + var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReceiveShardInfoResult>>(result); + //鍏堟竻绌哄叡浜枃浠跺す + HdlShardLogic.Current.ClearShardDirectory(); - // return true; - //} + var listMark = new List<string>(); + foreach (var data in listData) + { + //鎬ц兘浼樺寲锛氬鏋滄湰鍦版嫢鏈夎繖涓枃浠剁殑璇�,鐩存帴浣跨敤閭d釜鏂囦欢 + string fileName = data.ShareName; + //璁板綍璧峰畠鐨勪富閿� + memberShardInfo.dicAllShardKeys[fileName] = data.DistributedMark; - ///// <summary> - ///// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 - ///// </summary> - //private void GetMemberShardContentListFromLocal() - //{ - // memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>(); + if (fileName.StartsWith("Room_") == true || fileName.StartsWith("Scene_") == true) + { + //鎴块棿鏂囦欢鍜屽満鏅枃浠堕渶瑕侀噸鏂板弽搴忓垪鍖� + listMark.Add(data.DistributedMark); + continue; + } + if (Shared.Common.Global.IsExistsByHomeId(fileName) == true) + { + //鍏朵粬鏂囦欢鐨勮瘽锛屽鏋滄湰鍦板瓨鍦紝鍒欎互鏈湴鏂囦欢涓哄噯 + HdlShardLogic.Current.AddShardFile(fileName); + continue; + } + listMark.Add(data.DistributedMark); + } - // var listFile = HdlShardLogic.Current.GetLocalAllShardFile(); - // foreach (string fileName in listFile) - // { - // if (fileName.StartsWith("Room_") == true) - // { - // var byteData = HdlShardLogic.Current.GetShardFileContent(fileName); - // if (byteData == null) - // { - // continue; - // } - // string valueData = System.Text.Encoding.UTF8.GetString(byteData); - // var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData); - // memberShardInfo.dicShardRoom[fileName] = roomTemp; + //灏嗗垎浜殑鏁版嵁瀛樺叆鏈湴,杩斿洖鐨勬槸鏂囦欢鍚嶅瓧(寮傚父鏃惰繑鍥瀗ull) + var listFile = await HdlShardLogic.Current.SetShardFileToLocation(listMark); + if (listFile == null) + { + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(ShowReLoadMode.YES); + return false; + } + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); - // if (memberShardInfo.dicAllMemberShard.ContainsKey(fileName) == false) - // { - // //鍏堝垵濮嬪寲鎴块棿 - // memberShardInfo.dicAllMemberShard[fileName] = new HashSet<string>(); - // } - // } - // } - // //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) - // this.InitRoomAttributeData(); - //} + return true; + } - ///// <summary> - ///// 鍒濆鍖栨埧闂寸殑灞炴�у璞″叏閮ㄧ殑鏈湴鏂囦欢 - ///// </summary> - //private void InitRoomAttributeData() - //{ - // //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) - // foreach (var tempRoom in memberShardInfo.dicShardRoom.Values) - // { - // var listShard = memberShardInfo.dicAllMemberShard[tempRoom.FileName]; - // listShard.Clear(); - // //娣诲姞鎴块棿 - // listShard.Add(tempRoom.FileName); + /// <summary> + /// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 + /// </summary> + private void GetMemberShardContentListFromLocal() + { + memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>(); - // //杩樺師UI璁惧瀵硅薄 - // tempRoom.DeviceUIList.Clear(); - // foreach (string uiPath in tempRoom.DeviceUIFilePathList) - // { - // var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath); - // if (byteData == null) - // { - // continue; - // } - // string valueData = System.Text.Encoding.UTF8.GetString(byteData); - // var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.DeviceUI>(valueData); - // tempRoom.DeviceUIList.Add(tempUi); + var listFile = HdlShardLogic.Current.GetLocalAllShardFile(); + //璁惧鏂囦欢(鍒嗕韩鐨�,鑰屼笉鏄湰鍦扮殑) + var dicDeviceFile = new Dictionary<string, string>(); + //鍏堝垵濮嬪寲鎴块棿 + foreach (string fileName in listFile) + { + if (fileName.StartsWith("Room_") == true) + { + var byteData = HdlShardLogic.Current.GetShardFileContent(fileName); + if (byteData == null) + { + continue; + } + string valueData = System.Text.Encoding.UTF8.GetString(byteData); + var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData); + memberShardInfo.dicShardRoom[fileName] = roomTemp; - // //璁惧UI - // listShard.Add(tempUi.FileName); - // //璁惧 - // listShard.Add(tempUi.DeviceFileName); - // } - // //杩樺師鍦烘櫙瀵硅薄 - // tempRoom.SceneUIList.Clear(); - // foreach (string uiPath in tempRoom.SceneUIFilePathList) - // { - // var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath); - // if (byteData == null) - // { - // continue; - // } - // string valueData = System.Text.Encoding.UTF8.GetString(byteData); - // var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); - // tempRoom.SceneUIList.Add(tempUi); + if (memberShardInfo.dicAllMemberShard.ContainsKey(fileName) == false) + { + memberShardInfo.dicAllMemberShard[fileName] = new HashSet<string>(); + } + } + else if (fileName.StartsWith("Device_") == true) + { + //璁惧鏂囦欢 + string[] MyArry = fileName.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); + if (MyArry.Length == 4) + { + string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(MyArry[2], Convert.ToInt32(MyArry[3])); + dicDeviceFile[mainKeys] = fileName; + } + } + } - // //鍦烘櫙鐨勪富閿� - // listShard.Add(tempUi.FileName); - // //浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� - // this.GetSceneBindFileName(tempUi, ref listShard); - // } - // } - //} + //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) + foreach (var tempRoom in memberShardInfo.dicShardRoom.Values) + { + var listShard = memberShardInfo.dicAllMemberShard[tempRoom.FileName]; + listShard.Clear(); + //娣诲姞鎴块棿 + listShard.Add(tempRoom.FileName); - //#endregion + //杩樺師璁惧瀵硅薄 + tempRoom.DeviceUIList.Clear(); + foreach (string uiPath in tempRoom.DeviceUIFilePathList) + { + string deviceFile = uiPath.Replace("DeviceUI_", string.Empty); + if (HdlShardLogic.Current.IsFileExists(deviceFile) == false) + { + continue; + } + tempRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(uiPath)); + //璁惧 + listShard.Add(deviceFile); + } + //杩樺師鍦烘櫙瀵硅薄 + tempRoom.SceneUIList.Clear(); + foreach (string uiPath in tempRoom.SceneUIFilePathList) + { + var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath); + if (byteData == null) + { + continue; + } + string valueData = System.Text.Encoding.UTF8.GetString(byteData); + var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); + tempRoom.SceneUIList.Add(tempUi); - //#region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + //鍦烘櫙鐨勪富閿� + listShard.Add(tempUi.FileName); + //浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� + this.GetSceneBindFileName(tempUi, dicDeviceFile, ref listShard); + } + } + } - ///// <summary> - ///// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� - ///// </summary> - //public override void FormActionAgainEvent() - //{ - // //涓嶈鍒犻櫎杩欎釜鍑芥暟 - // base.FormActionAgainEvent(); - // //閲嶆柊鍒锋柊鐣岄潰 - // this.InitMiddleFrame(); - //} + /// <summary> + /// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� + /// </summary> + /// <param name="scene">鍦烘櫙</param> + /// <param name="dicDeviceFile">鍒嗕韩鐨勮澶囨枃浠�</param> + /// <param name="listFile">鏂囦欢鍒楄〃(閲岄潰瀛樼殑鏄澶嘦I鏂囦欢鍜岃澶囨枃浠跺拰鍦烘櫙鏂囦欢)</param> + private void GetSceneBindFileName(Common.SceneUI scene, Dictionary<string, string> dicDeviceFile, ref HashSet<string> listFile) + { + foreach (var data in scene.AddSceneMemberDataList) + { + //璁惧 + if (data.Type == 0) + { + var mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); + if (dicDeviceFile.ContainsKey(mainKeys) == true && listFile.Contains(dicDeviceFile[mainKeys]) == false) + { + listFile.Add(dicDeviceFile[mainKeys]); + } + } + if (data.Type == 1) + { + var sceneTemp = new Common.SceneUI(); + sceneTemp.Id = data.ElseScenesId; + if (listFile.Contains(sceneTemp.FileName)) + { + listFile.Add(sceneTemp.FileName); + } + } + } + } - //#endregion + #endregion - //#region 鈻� 涓�鑸柟娉昣__________________________ + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ - ///// <summary> - ///// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� - ///// </summary> - ///// <param name="scene">鍦烘櫙</param> - ///// <param name="listFile">鏂囦欢鍒楄〃(閲岄潰瀛樼殑鏄澶嘦I鏂囦欢鍜岃澶囨枃浠跺拰鍦烘櫙鏂囦欢)</param> - //private void GetSceneBindFileName(Common.SceneUI scene, ref HashSet<string> listFile) - //{ - // foreach (var data in scene.AddSceneMemberDataList) - // { - // //璁惧 - // if (data.Type == 0) - // { - // var device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint); - // if (device != null) - // { - // string uiName = "DeviceUI_" + device.FilePath; - // if (listFile.Contains(uiName) == false) - // { - // listFile.Add(uiName); - // listFile.Add(device.FilePath); - // } - // } - // } - // if (data.Type == 1) - // { - // var sceneTemp = Common.Room.CurrentRoom.GetSceneUIBySceneId(data.ElseScenesId); - // if (sceneTemp != null && listFile.Contains(sceneTemp.FileName)) - // { - // listFile.Add(sceneTemp.FileName); - // } - // } - // } - //} - //#endregion + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + //閲嶆柊鍒锋柊鐣岄潰 + this.InitMiddleFrame(); + return 1; + } - //#region 鈻� 缁撴瀯浣揰____________________________ + #endregion - ///// <summary> - ///// 鎺ユ敹鍒嗕韩鏁版嵁 - ///// </summary> - //private class ReceiveShardInfoResult - //{ - // /// <summary> - // /// 鏂囦欢鍚嶅瓧 - // /// </summary> - // public string ShareName = string.Empty; - // /// <summary> - // /// 涓婚敭 - // /// </summary> - // public string DistributedMark = string.Empty; - //} + #region 鈻� 涓�鑸柟娉昣__________________________ - //#endregion + /// <summary> + /// 鏄剧ず娌℃湁鍒嗕韩鏁版嵁妯″紡 + /// </summary> + private void ShowNotShardMode() + { + bodyFrameLayout.RemoveAll(); + //鍥剧墖 + var btnPic = new PicViewControl(383, 279); + btnPic.Gravity = Gravity.CenterHorizontal; + btnPic.Y = Application.GetRealHeight(498); + btnPic.UnSelectedImagePath = "Item/NotShardPic.png"; + bodyFrameLayout.AddChidren(btnPic); + + //杩樻病鏈夊叡浜尯鍩熺粰鎴愬憳{0}鍙偣鍑诲彸涓婅鈥�+鈥濇坊鍔� + string msg = Language.StringByID(R.MyInternationalizationString.uNotShardComtentMsg); + string[] Arry = msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries); + var btnMsg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(50), false); + btnMsg1.Y = Application.GetRealHeight(962); + btnMsg1.TextAlignment = TextAlignment.Center; + btnMsg1.TextSize = 12; + btnMsg1.TextColor = UserCenterColor.Current.TextGrayColor1; + btnMsg1.Text = Arry[0]; + bodyFrameLayout.AddChidren(btnMsg1); + if (Arry.Length > 1) + { + var btnMsg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(50), false); + btnMsg2.Y = btnMsg1.Bottom; + btnMsg2.TextAlignment = TextAlignment.Center; + btnMsg2.TextSize = 12; + btnMsg2.TextColor = UserCenterColor.Current.TextGrayColor1; + btnMsg2.Text = Arry[1]; + bodyFrameLayout.AddChidren(btnMsg2); + } + } + + #endregion + + #region 鈻� 缁撴瀯浣揰____________________________ + + /// <summary> + /// 鎺ユ敹鍒嗕韩鏁版嵁 + /// </summary> + private class ReceiveShardInfoResult + { + /// <summary> + /// 鏂囦欢鍚嶅瓧 + /// </summary> + public string ShareName = string.Empty; + /// <summary> + /// 涓婚敭 + /// </summary> + public string DistributedMark = string.Empty; + } + + #endregion } } -- Gitblit v1.8.0