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 | 355 ++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 219 insertions(+), 136 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs index 679257b..fba4234 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs @@ -7,16 +7,16 @@ namespace Shared.Phone.UserCenter.SharedContent { /// <summary> - /// 鏌ョ湅宸插叡浜唴瀹圭殑鎴块棿鍒楄〃鐣岄潰 + /// 鏌ョ湅宸插叡浜唴瀹圭殑鎴块棿鍒楄〃鐣岄潰鈽� /// </summary> - public class SearchConfigureSharedListRoomForm : UserCenterCommonForm + public class SearchConfigureSharedListRoomForm : EditorCommonForm { #region 鈻� 鍙橀噺澹版槑___________________________ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalScrolViewLayout listView = null; + private VerticalFrameControl listView = null; /// <summary> /// 鎴愬憳淇℃伅 /// </summary> @@ -33,53 +33,43 @@ /// <summary> /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) /// </summary> - /// <param name="i_memberResult">鎴愬憳淇℃伅</param> - /// <param name="i_memberShardInfo">鎴愬憳鐨勫叡浜俊鎭�</param> - public void ShowForm(MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo) - { - this.memberResult = i_memberResult; + /// <param name="i_memberResult">鎴愬憳淇℃伅</param> + /// <param name="i_memberShardInfo">鎴愬憳鐨勫叡浜俊鎭�</param> + public void ShowForm(MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo) + { + this.memberResult = i_memberResult; this.memberShardInfo = i_memberShardInfo; - this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark; - - //璁剧疆澶撮儴淇℃伅 - base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uHadSharedContent)); + this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark; + + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uShared2)); //娣诲姞鍥炬爣 - var btnAdd = new TopLayoutMostRightView(); + var btnAdd = new MostRightIconControl(69, 69); btnAdd.UnSelectedImagePath = "Item/Add.png"; - btnAdd.SelectedImagePath = "Item/AddSelected.png"; - btnAdd.MouseUpEventHandler += (sender, e) => - { - var form = new ConfigureNewSharedListRoomForm(); - base.AddForm(form, this.memberResult, this.memberShardInfo); - }; - topFrameLayout.AddChidren(btnAdd); - - //鍒濆鍖栦腑閮ㄤ俊鎭� - this.InitMiddleFrame(); - } - + btnAdd.ButtonClickEvent += (sender, e) => + { + var form = new ConfigureNewSharedListRoomForm(); + form.AddForm(this.memberResult, this.memberShardInfo); + }; + topFrameLayout.AddChidren(btnAdd); + btnAdd.InitControl(); + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } + /// <summary> /// 鍒濆鍖栦腑閮ㄤ俊鎭� - /// </summary> - private void InitMiddleFrame() - { - bodyFrameLayout.RemoveAll(); + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); - //鍖哄煙鍒楄〃 - var btnTitle = new TitleViewControl(1000, true); - btnTitle.TextID = R.MyInternationalizationString.uAreaList; - btnTitle.Y = Application.GetRealHeight(30); - bodyFrameLayout.AddChidren(btnTitle); - - this.listView = new VerticalScrolViewLayout(); - listView.Y = btnTitle.Bottom + Application.GetRealHeight(30); - listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(30) - btnTitle.Bottom; - bodyFrameLayout.AddChidren(listView); - - new System.Threading.Thread(async () => + HdlThreadLogic.Current.RunThread(async () => { - //鑾峰彇鎴愬憳鐨勫叡浜垪琛�(杩斿洖鏂囦欢鐨勫悕瀛楀拰涓婚敭) + //鑾峰彇鎴愬憳鐨勫叡浜垪琛� var result = await this.GetMemberShardContentListAndSetToLocation(); if (result == false) { @@ -90,8 +80,7 @@ //鍒濆鍖栧尯鍩熷垪琛� this.InitAreaListRow(); - }) - { IsBackground = true }.Start(); + }); } #endregion @@ -105,54 +94,115 @@ { if (memberShardInfo.dicShardRoom.Count == 0) { - Application.RunOnMainThread(() => + 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); + } + + HdlThreadLogic.Current.RunMain(() => { 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(() => - { - this.AddRoomRow(room); + + this.listView = new VerticalFrameControl(29); + listView.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listView); + + //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛� + foreach (var floorId in dicGroup.Keys) + { + this.AddRoomListRow(floorId, dicGroup[floorId]); + } }); } } /// <summary> - /// 娣诲姞鎴块棿琛� + /// 娣诲姞鎴块棿鍒楄〃琛� /// </summary> - /// <param name="room"></param> - private void AddRoomRow(Common.Room room) + /// <param name="listRoom"></param> + private void AddRoomListRow(string floorId, List<Common.Room> listRoom) { - var row = new StatuRowLayout(listView); - //鎴块棿鍚� - var btnName = new RowCenterView(false); - btnName.Text = room.Name; - row.AddChidren(btnName); + var frameBack = new FrameListControl(29); + frameBack.BackgroundColor = UserCenterColor.Current.White; + frameBack.Height = 10; + this.listView.AddChidrenFrame(frameBack); - var btnDelete = new RowDeleteButton(); - row.AddRightView(btnDelete); - btnDelete.MouseUpEventHandler += (sender, e) => + //妤煎眰 + if (string.IsNullOrEmpty(floorId) == false) { - //纭畾绉婚櫎璇ュ叡浜尯鍩燂紵 - string msg = Language.StringByID(R.MyInternationalizationString.uDeleteShardAreaMsg); - this.ShowConfirmMsg(msg, "DoDeleteShardContentByRoom", room); - }; + 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"; + } + } - row.AddRightIconControl(); - - row.MouseUpEvent += (sender, e) => + for (int i = 0; i < listRoom.Count; i++) { - var form = new SearchConfigureSharedMainForm(); - this.AddForm(form, room, memberResult, memberShardInfo); - }; + 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) => + { + }; + + //鍒犻櫎 + 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 @@ -168,10 +218,11 @@ var listDevice = new List<CommonDevice>(); foreach (var deviceUi in room.DeviceUIList) { - var device = deviceUi.CommonDevice; + var device = deviceUi.CommonDevice; if (device == null) { - var byteData = HdlShardLogic.Current.GetShardFileContent(deviceUi.DeviceFileName); + string deviceFile = deviceUi.FileName.Replace("DeviceUI_", string.Empty); + var byteData = HdlShardLogic.Current.GetShardFileContent(deviceFile); if (byteData == null) { continue; @@ -187,20 +238,19 @@ listScene.Add(sceneUi); } - new System.Threading.Thread(async () => + HdlThreadLogic.Current.RunThread(async () => { //鎵ц鍒犻櫎 var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene); if (result == true) { - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { //閲嶆柊鍒锋柊鐣岄潰 this.InitMiddleFrame(); }); } - }) - { IsBackground = true }.Start(); + }); } #endregion @@ -228,7 +278,7 @@ HouseDistributedMark = Shared.Common.Config.Instance.HomeId, IsOtherAccountControl = Common.Config.Instance.isAdministrator }; - var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetShareDataBySubAccount", infoPra); + var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetShareDataBySubAccount", false, infoPra); if (result == null) { //鍏抽棴杩涘害鏉� @@ -284,6 +334,9 @@ memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>(); var listFile = HdlShardLogic.Current.GetLocalAllShardFile(); + //璁惧鏂囦欢(鍒嗕韩鐨�,鑰屼笉鏄湰鍦扮殑) + var dicDeviceFile = new Dictionary<string, string>(); + //鍏堝垵濮嬪寲鎴块棿 foreach (string fileName in listFile) { if (fileName.StartsWith("Room_") == true) @@ -299,20 +352,21 @@ 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; + } + } } - //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) - this.InitRoomAttributeData(); - } - /// <summary> - /// 鍒濆鍖栨埧闂寸殑灞炴�у璞″叏閮ㄧ殑鏈湴鏂囦欢 - /// </summary> - private void InitRoomAttributeData() - { //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) foreach (var tempRoom in memberShardInfo.dicShardRoom.Values) { @@ -321,23 +375,18 @@ //娣诲姞鎴块棿 listShard.Add(tempRoom.FileName); - //杩樺師UI璁惧瀵硅薄 + //杩樺師璁惧瀵硅薄 tempRoom.DeviceUIList.Clear(); foreach (string uiPath in tempRoom.DeviceUIFilePathList) { - var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath); - if (byteData == null) + string deviceFile = uiPath.Replace("DeviceUI_", string.Empty); + if (HdlShardLogic.Current.IsFileExists(deviceFile) == false) { continue; } - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.DeviceUI>(valueData); - tempRoom.DeviceUIList.Add(tempUi); - - //璁惧UI - listShard.Add(tempUi.FileName); + tempRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(uiPath)); //璁惧 - listShard.Add(tempUi.DeviceFileName); + listShard.Add(deviceFile); } //杩樺師鍦烘櫙瀵硅薄 tempRoom.SceneUIList.Clear(); @@ -355,22 +404,54 @@ //鍦烘櫙鐨勪富閿� listShard.Add(tempUi.FileName); //浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� - this.GetSceneBindFileName(tempUi, ref listShard); + this.GetSceneBindFileName(tempUi, dicDeviceFile, ref listShard); + } + } + } + + /// <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 - #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ /// <summary> /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� - /// </summary> - public override void FormActionAgainEvent() + /// </summary> + public override int FormActionAgainEvent() { //閲嶆柊鍒锋柊鐣岄潰 this.InitMiddleFrame(); + return 1; } #endregion @@ -378,38 +459,40 @@ #region 鈻� 涓�鑸柟娉昣__________________________ /// <summary> - /// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� + /// 鏄剧ず娌℃湁鍒嗕韩鏁版嵁妯″紡 /// </summary> - /// <param name="scene">鍦烘櫙</param> - /// <param name="listFile">鏂囦欢鍒楄〃(閲岄潰瀛樼殑鏄澶嘦I鏂囦欢鍜岃澶囨枃浠跺拰鍦烘櫙鏂囦欢)</param> - private void GetSceneBindFileName(Common.SceneUI scene, ref HashSet<string> listFile) + private void ShowNotShardMode() { - foreach (var data in scene.AddSceneMemberDataList) + 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) { - //璁惧 - 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); - } - } + 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 鈻� 缁撴瀯浣揰____________________________ -- Gitblit v1.8.0