From a4924de3136289d10cabbf2f61a228387d44ded7 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 07 十一月 2019 13:48:36 +0800 Subject: [PATCH] Merge branch 'dev-tzy' into DEV_GXC --- ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs | 315 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 315 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs new file mode 100755 index 0000000..c4a6ace --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs @@ -0,0 +1,315 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.SharedContent +{ + /// <summary> + /// 鏌ョ湅宸插叡浜唴瀹圭殑鎴块棿鍒楄〃鐣岄潰鈽� + /// </summary> + public class LookSharedListRoomForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鍒楄〃鎺т欢 + /// </summary> + private VerticalFrameControl listView = null; + /// <summary> + /// 鎴愬憳淇℃伅 + /// </summary> + private MemberInfoRes memberResult = null; + /// <summary> + /// 鎴愬憳鐨勫垎浜暟鎹� + /// </summary> + private MemberShardInfoData memberShardInfo = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <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; + this.memberShardInfo = i_memberShardInfo; + this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark; + + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uShared2)); + + //娣诲姞鍥炬爣 + var btnAdd = new MostRightIconControl(69, 69); + btnAdd.UnSelectedImagePath = "Item/Add.png"; + btnAdd.ButtonClickEvent += (sender, e) => + { + var form = new AddNewSharedListRoomForm(); + form.AddForm(this.memberResult, this.memberShardInfo); + }; + topFrameLayout.AddChidren(btnAdd); + btnAdd.InitControl(); + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + HdlThreadLogic.Current.RunThread(async () => + { + //鑾峰彇鎴愬憳鐨勫叡浜垪琛� + var result = await HdlShardLogic.Current.GetMemberShardContentListAndSetToLocation(memberShardInfo); + if (result == false) + { + //鏄剧ず閲嶆柊鍔犺浇鐨勭晫闈� + this.ShowReLoadView(); + return; + } + //鍒濆鍖栧尯鍩熷垪琛� + this.InitAreaListRow(); + + }); + } + + #endregion + + #region 鈻� 鍖哄煙鍒楄〃___________________________ + + /// <summary> + /// 鍒濆鍖栧尯鍩熷垪琛� + /// </summary> + private void InitAreaListRow() + { + if (memberShardInfo.dicShardRoom.Count == 0) + { + HdlThreadLogic.Current.RunMain(() => + { + bodyFrameLayout.RemoveAll(); + //杩樻病鏈夊叡浜尯鍩熺粰鎴愬憳{0}鍙偣鍑诲彸涓婅鈥�+鈥濇坊鍔� + string msg = Language.StringByID(R.MyInternationalizationString.uNotShardComtentMsg); + string[] Arry = msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries); + this.ShowNotDataImage(bodyFrameLayout, Arry, "Item/NotShardPic.png", 383, 279); + }); + } + 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(); + + this.listView = new VerticalFrameControl(29); + listView.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listView); + + //鎺掑簭妤煎眰 + var dicSort = Common.Room.CurrentRoom.GetFloorSortList(); + foreach (var floorId in dicSort.Keys) + { + if (dicGroup.ContainsKey(floorId) == true) + { + //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛� + this.AddRoomListRow(floorId, dicGroup[floorId]); + dicGroup.Remove(floorId); + } + } + //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛�(杩欓噷鏄寚瀹氭ゼ灞傚苟涓嶅湪鎺掑簭璁板綍閲岄潰鐨�) + foreach (var floorId in dicGroup.Keys) + { + this.AddRoomListRow(floorId, dicGroup[floorId]); + } + //璋冩暣妗屽竷楂樺害 + listView.AdjustTableHeight(); + }); + } + } + + /// <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); + + //妤煎眰 + 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 if (floorId == "Other") + { + //鏈垎閰嶅尯鍩� + btnFloor.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); + } + else + { + btnFloor.Text = "UnKnown"; + } + } + //鎴块棿鎺掑簭 + var listSortRoom = Common.Room.CurrentRoom.GetFloorSortRoom(floorId, false); + var listSort = new HashSet<string>(); + foreach (var room in listSortRoom) + { + //鏀堕泦鐜版湁鐨勬帓搴廔D + listSort.Add(room.Id); + } + var dicRoom = new Dictionary<string, Common.Room>(); + foreach (var room in listRoom) + { + //淇濆瓨闇�瑕佹樉绀哄嚭鏉ョ殑鎴块棿 + dicRoom[room.Id] = room; + if (listSort.Contains(room.Id) == false) + { + //涓嶅啀鎺掑簭璁板綍鍐�,鍒欏湪灏鹃儴杩藉姞 + listSort.Add(room.Id); + } + } + + foreach(var roomId in listSort) + { + if (dicRoom.ContainsKey(roomId) == false) + { + continue; + } + var room = dicRoom[roomId]; + dicRoom.Remove(roomId); + + var frameRow = new RowLayoutControl(frameBack.rowSpace / 2); + frameBack.AddChidren(frameRow); + //鍥炬爣 + var btnIcon = frameRow.frameTable.AddLeftIcon(81); + btnIcon.UnSelectedImagePath = "Item/RoomIconSelected.png"; + //鍚嶇О + var btnName = frameRow.frameTable.AddLeftCaption(room.Name, 600); + btnName.TextSize = 15; + //鍙崇澶� + frameRow.frameTable.AddRightArrow(); + if (dicRoom.Count != 0) + { + //搴曠嚎 + frameRow.frameTable.AddBottomLine(); + } + frameRow.frameTable.ButtonClickEvent += (sender, e) => + { + var form = new LookSharedContentForm(); + form.AddForm(room, memberShardInfo); + }; + + //鍒犻櫎 + 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 + + #region 鈻� 鍒犻櫎鍏变韩鍖哄煙_______________________ + + /// <summary> + /// 鍒犻櫎鍏变韩鍖哄煙 + /// </summary> + /// <param name="room">鎸囧畾瑕佸垹闄ょ殑鍏变韩鍖哄煙</param> + public void DoDeleteShardContentByRoom(Common.Room room) + { + //鑾峰彇鍏ㄩ儴璁惧 + var listDevice = new List<CommonDevice>(); + foreach (var deviceFile in room.DeviceUIFilePathList) + { + var byteData = HdlShardLogic.Current.GetShardFileContent(deviceFile); + if (byteData == null) + { + continue; + } + var 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); + } + + HdlThreadLogic.Current.RunThread(async () => + { + //鎵ц鍒犻櫎 + var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene); + if (result == true) + { + HdlThreadLogic.Current.RunMain(() => + { + //閲嶆柊鍒锋柊鐣岄潰 + this.InitMiddleFrame(); + }); + } + }); + } + + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + //閲嶆柊鍒锋柊鐣岄潰 + this.InitMiddleFrame(); + return 1; + } + + #endregion + } +} -- Gitblit v1.8.0