From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs | 813 ++++++++++++++++----------------------------------------- 1 files changed, 228 insertions(+), 585 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs index 5749ce1..5361cdf 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs @@ -1,7 +1,6 @@ 锘縰sing System; using System.Collections.Generic; using System.Text; -using System.Threading.Tasks; using ZigBee.Device; namespace Shared.Phone.UserCenter.SharedContent @@ -13,365 +12,42 @@ { #region 鈻� 鍙橀噺澹版槑___________________________ - ///// <summary> - ///// 璁惧鍒楄〃鎺т欢 - ///// </summary> - //private VerticalScrolViewLayout listDeviceView = null; - ///// <summary> - ///// 鍦烘櫙鍒楄〃鎺т欢 - ///// </summary> - //private VerticalScrolViewLayout listSceneView = null; - ///// <summary> - ///// 鎴愬憳淇℃伅 - ///// </summary> - //private MemberInfoRes memberResult = null; - - ///// <summary> - ///// 鎴块棿瀵硅薄 - ///// </summary> - //private Common.Room room = null; - ///// <summary> - ///// Tab鐨勯�夋嫨銆�1锛氬姛鑳絋ab 2锛氬満鏅疶ab - ///// </summary> - //private int TabSelectIndex = 1; - - #endregion - - #region 鈻� 鍒濆鍖朹____________________________ - - ///// <summary> - ///// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) - ///// </summary> - ///// <param name="i_room">鎴块棿瀵硅薄</param> - ///// <param name="i_memberResult">鎴愬憳淇℃伅</param> - ///// <param name="i_memberShardInfo">鎴愬憳鐨勫垎浜暟鎹�</param> - //public void ShowForm(Common.Room i_room, MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo) - //{ - // this.memberResult = i_memberResult; - // this.memberShardInfo = i_memberShardInfo; - // this.room = i_room; - - // //璁剧疆澶撮儴淇℃伅 - // base.SetTitleText(this.room.Name); - - // //鍒嗕韩 - // //var btnShard = new TopLayoutFinshView(); - // //btnShard.TextID = R.MyInternationalizationString.uShared; - // //topFrameLayout.AddChidren(btnShard); - // //btnShard.MouseUpEventHandler += (sender, e) => - // //{ - // // HdlThreadLogic.Current.Run(() => - // // { - // // //纭鍒嗕韩 - // // this.DoSaveSharedContent(); - // // }); - // //}; - - // ////鍒濆鍖栦腑閮ㄤ俊鎭� - // //this.InitMiddleFrame(); - //} - - ///// <summary> - ///// 鍒濆鍖栦腑閮ㄤ俊鎭� - ///// </summary> - //private void InitMiddleFrame() - //{ - // //娓呯┖bodyFrame - // this.ClearBodyFrame(); - - // //鍒濆鍖朤ab鎺т欢 - // var frame = this.InitTabControl(); - - // this.listDeviceView = new VerticalScrolViewLayout(); - // listDeviceView.Y = frame.Bottom; - // listDeviceView.Height = bodyFrameLayout.Height - frame.Bottom; - // listDeviceView.Visible = this.TabSelectIndex == 1; - // bodyFrameLayout.AddChidren(listDeviceView); - - // this.listSceneView = new VerticalScrolViewLayout(); - // listSceneView.Y = frame.Bottom; - // listSceneView.Height = bodyFrameLayout.Height - frame.Bottom; - // listSceneView.Visible = this.TabSelectIndex == 2; - // bodyFrameLayout.AddChidren(listSceneView); - - // HdlThreadLogic.Current.Run(() => - // { - // //鍒濆鍖栧姛鑳絋ab鍒楄〃 - // this.InitFunctionTabList(); - // //鍒濆鍖栧満鏅疶ab鍒楄〃 - // this.InitSceneTabList(); - // }); - //} - - #endregion - - //#region 鈻� 鍒濆鍖朤ab鎺т欢______________________ - - ///// <summary> - ///// 鍒濆鍖朤ab鎺т欢 - ///// </summary> - ///// <returns></returns> - //private FrameLayout InitTabControl() - //{ - // //Tab鍒囨崲鎺т欢 - // var frameSwich = new FrameLayout(); - // frameSwich.Height = Application.GetRealHeight(150); - // frameSwich.BackgroundColor = UserCenterColor.Current.TopFrameLayout; - // bodyFrameLayout.AddChidren(frameSwich); - - // //鍔熻兘 - // var btnFunction = new NormalViewControl(frameSwich.Width / 2, Application.GetRealHeight(100)); - // btnFunction.Gravity = Gravity.CenterVertical; - // btnFunction.TextID = R.MyInternationalizationString.uFunction; - // btnFunction.TextAlignment = TextAlignment.Center; - // btnFunction.TextColor = UserCenterColor.Current.SelectTextColor; - // btnFunction.TextAlignment = TextAlignment.Center; - // frameSwich.AddChidren(btnFunction); - - // //鍦烘櫙 - // var btnScene = new NormalViewControl(frameSwich.Width / 2, Application.GetRealHeight(100)); - // btnScene.Gravity = Gravity.CenterVertical; - // btnScene.X = frameSwich.Width / 2; - // btnScene.TextID = R.MyInternationalizationString.uScence; - // btnScene.TextAlignment = TextAlignment.Center; - // frameSwich.AddChidren(btnScene); - - // //绾� - // var btnLine = new ProgressLine(); - // btnLine.Gravity = Gravity.BottomLeft; - // frameSwich.AddChidren(btnLine); - // btnLine.SetValue(50, true); - - // if (this.TabSelectIndex == 2) - // { - // btnScene.TextColor = UserCenterColor.Current.SelectTextColor; - // btnFunction.TextColor = Common.ZigbeeColor.Current.TextColor; - // btnLine.SetValue(50, false); - // } - - // //鍔熻兘Tab - // btnFunction.MouseUpEventHandler += (sender, e) => - // { - // if (this.TabSelectIndex == 1) - // { - // return; - // } - // btnScene.TextColor = Common.ZigbeeColor.Current.TextColor; - // btnFunction.TextColor = UserCenterColor.Current.SelectTextColor; - // btnLine.SetValue(50); - // this.TabSelectIndex = 1; - - // //闅愯棌鍦烘櫙鍒楄〃鎺т欢,鏄剧ず璁惧鍒楄〃鎺т欢 - // this.listSceneView.Visible = false; - // this.listDeviceView.Visible = true; - // }; - - // //鍦烘櫙Tab - // btnScene.MouseUpEventHandler += (sender, e) => - // { - // if (this.TabSelectIndex == 2) - // { - // return; - // } - // btnScene.TextColor = UserCenterColor.Current.SelectTextColor; - // btnFunction.TextColor = Common.ZigbeeColor.Current.TextColor; - // btnLine.SetValue(50, false); - // this.TabSelectIndex = 2; - - // //闅愯棌璁惧鍒楄〃鎺т欢,鏄剧ず鍦烘櫙鍒楄〃鎺т欢 - // this.listDeviceView.Visible = false; - // this.listSceneView.Visible = true; - // }; - - // return frameSwich; - //} - - //#endregion - - //#region 鈻� 鏄剧ず鍔熻兘Tab鍒楄〃____________________ - - ///// <summary> - ///// 鍒濆鍖栧姛鑳絋ab鍒楄〃 - ///// </summary> - //private void InitFunctionTabList() - //{ - // if (memberShardInfo.dicAllMemberShard.ContainsKey(this.room.FileName) == false) - // { - // memberShardInfo.dicAllMemberShard[this.room.FileName] = new HashSet<string>(); - // } - // var listCheck = memberShardInfo.dicAllMemberShard[this.room.FileName]; - - // foreach (var deviceUi in this.room.DeviceUIList) - // { - // var device = deviceUi.CommonDevice; - // if (device == null || listCheck.Contains(device.FilePath) == true) - // { - // //寮傚父锛屾垨鑰呭凡缁忓垎浜簡鐨勶紝涓嶅啀鏄剧ず - // continue; - // } - // Application.RunOnMainThread(() => - // { - // if (this.listDeviceView != null) - // { - // //娣诲姞璁惧琛� - // var deviceRow = new DeviceSelectControl(device); - // this.listDeviceView.AddChidren(deviceRow); - // deviceRow.InitControl(); - // //涓嶉渶瑕佹埧闂存帶浠� - // deviceRow.RemoveRoomControl(); - // } - // }); - // } - //} - - //#endregion - - //#region 鈻� 鏄剧ず鍦烘櫙Tab鍒楄〃____________________ - - ///// <summary> - ///// 鍒濆鍖栧満鏅疶ab鍒楄〃 - ///// </summary> - //private void InitSceneTabList() - //{ - // if (memberShardInfo.dicAllMemberShard.ContainsKey(this.room.FileName) == false) - // { - // memberShardInfo.dicAllMemberShard[this.room.FileName] = new HashSet<string>(); - // } - // var listCheck = memberShardInfo.dicAllMemberShard[this.room.FileName]; - - // foreach (var sceneUi in this.room.SceneUIList) - // { - // if (sceneUi == null || listCheck.Contains(sceneUi.FileName) == true) - // { - // //寮傚父锛屾垨鑰呭凡缁忓垎浜簡鐨勶紝涓嶅啀鏄剧ず - // continue; - // } - // Application.RunOnMainThread(() => - // { - // if (this.listSceneView != null) - // { - // //娣诲姞鍦烘櫙琛� - // var sceneRow = new SceneSelectRow(this.listSceneView, sceneUi); - // } - // }); - // } - //} - - //#endregion - - //#region 鈻� 鑾峰彇閫夋嫨鐨勮澶嘷____________________ - - ///// <summary> - ///// 鑾峰彇閫夋嫨鐨勮澶� - ///// </summary> - ///// <param name="listCheck">閲嶅妫�娴�</param> - ///// <returns></returns> - //private List<CommonDevice> GetSelectedDevice(HashSet<string> listCheck) - //{ - // var listDevice = new List<CommonDevice>(); - // for (int i = 0; i < listDeviceView.ChildrenCount; i++) - // { - // var myView = listDeviceView.GetChildren(i); - // var selectRow = (DeviceSelectControl)myView; - // if (selectRow.IsSelected == true && listCheck.Contains(selectRow.device.FilePath) == false) - // { - // listCheck.Add(selectRow.device.FilePath); - // listDevice.Add(selectRow.device); - // } - // } - // return listDevice; - //} - - //#endregion - - //#region 鈻� 鑾峰彇閫夋嫨鐨勫満鏅痏____________________ - - ///// <summary> - ///// 鑾峰彇閫夋嫨鐨勫満鏅� - ///// </summary> - ///// <param name="listCheck">閲嶅妫�娴�</param> - ///// <returns></returns> - //private List<Common.SceneUI> GetSelectedSceneUI(HashSet<string> listCheck) - //{ - // var listSceneUI = new List<Common.SceneUI>(); - // for (int i = 0; i < listSceneView.ChildrenCount; i++) - // { - // var myView = listSceneView.GetChildren(i); - // var selectRow = (SceneSelectRow)myView; - // if (selectRow.IsSelected == true && listCheck.Contains(selectRow.sceneUI.Id.ToString()) == false) - // { - // listCheck.Add(selectRow.sceneUI.Id.ToString()); - // listSceneUI.Add(selectRow.sceneUI); - // } - // } - // return listSceneUI; - //} - - //#endregion - - //#region 鈻� 纭鍒嗕韩___________________________ - - ///// <summary> - ///// 纭鍒嗕韩 - ///// </summary> - //private async void DoSaveSharedContent() - //{ - // var listCheck = new HashSet<string>(); - // //閫夋嫨鐨勮澶� - // var listSelectDevice = this.GetSelectedDevice(listCheck); - // //閫夋嫨鐨勫満鏅� - // var listSelectScene = this.GetSelectedSceneUI(listCheck); - // if (listSelectDevice.Count == 0 && listSelectScene.Count == 0) - // { - // //璇烽�夋嫨鐩爣鍚庡啀鎵ц鍒嗕韩鎿嶄綔 - // string msg = Language.StringByID(R.MyInternationalizationString.uNotSelectDeviceBeforeSave); - // this.ShowErrorMsg(msg); - // return; - // } - // //鎵ц涓婁紶鍒嗕韩鍐呭 - // var result = await HdlShardLogic.Current.DoUploadSharedContent(memberShardInfo, this.room, listSelectDevice, listSelectScene); - // if (result == true) - // { - // Application.RunOnMainThread(() => - // { - // //閲嶆柊鍒锋柊鐣岄潰 - // this.InitMiddleFrame(); - // //鍒嗕韩鎴愬姛 - // string msg = Language.StringByID(R.MyInternationalizationString.uShardSuccess); - // this.ShowMassage(msg); - // }); - // } - //} - - //#endregion - - - #region 鈻� 鍙橀噺澹版槑___________________________ - /// <summary> /// 鏌ョ湅鐨勬埧闂村璞� /// </summary> private Common.Room lookRoom = null; /// <summary> - /// 鎴愬憳鐨勫垎浜暟鎹� + /// 鎴愬憳ID /// </summary> - private MemberShardInfoData memberShardInfo = null; - /// <summary> - /// 褰撳墠閫夋嫨鐨勫垎鏀紝1锛氬満鏅� 2锛氬姛鑳� - /// </summary> - private int nowSelectIndex = 1; + private string ChildAccountId = string.Empty; /// <summary> /// 璁惧妗屽竷鎺т欢 /// </summary> - private FrameLayout frameDeviceTable = null; + private NormalFrameLayout frameDeviceTable = null; /// <summary> /// 璁惧妗屽竷鎺т欢 /// </summary> - private FrameLayout frameSceneTable = null; + private NormalFrameLayout frameSceneTable = null; /// <summary> /// 鍔熻兘鎸夐挳 /// </summary> private BottomClickButton btnShard = null; + /// <summary> + /// 閫夋嫨鐨勫満鏅� + /// </summary> + private Dictionary<int, Common.SceneUI> dicSelectScene = new Dictionary<int, Common.SceneUI>(); + /// <summary> + /// 閫夋嫨鐨勮澶� + /// </summary> + private Dictionary<string, CommonDevice> dicSelectDevice = new Dictionary<string, CommonDevice>(); + /// <summary> + /// 褰撳墠閫夋嫨鐨勫垎鏀� 0锛氬満鏅� 1锛氬姛鑳� + /// </summary> + private int nowSwitchIndex = 0; + /// <summary> + /// 褰撳墠閫夋嫨鐨勮澶囩储寮� + /// </summary> + private string nowDeviceIndex = string.Empty; #endregion @@ -381,10 +57,11 @@ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) /// </summary> /// <param name="i_room">鏌ョ湅鐨勬埧闂村璞�</param> - public void ShowForm(Common.Room i_room, MemberShardInfoData i_memberShardInfo) + /// <param name="i_ChildAccountId">鎴愬憳ID</param> + public void ShowForm(Common.Room i_room, string i_ChildAccountId) { this.lookRoom = i_room; - this.memberShardInfo = i_memberShardInfo; + this.ChildAccountId = i_ChildAccountId; //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddShared)); @@ -400,21 +77,23 @@ { //娓呯┖bodyFrame this.ClearBodyFrame(); - - //鍒濆鍖栧垎鏀帶浠� - this.InitSwitchControl(); + this.dicSelectDevice = new Dictionary<string, CommonDevice>(); + this.dicSelectScene = new Dictionary<int, Common.SceneUI>(); //鍒濆鍖栨甯冩帶浠� - this.frameSceneTable = new FrameLayout(); + this.frameSceneTable = new NormalFrameLayout(); frameSceneTable.Y = Application.GetRealHeight(132); frameSceneTable.Height = bodyFrameLayout.Height - Application.GetRealHeight(132); bodyFrameLayout.AddChidren(frameSceneTable); - this.frameDeviceTable = new FrameLayout(); + this.frameDeviceTable = new NormalFrameLayout(); frameDeviceTable.Y = frameSceneTable.Y; frameDeviceTable.Height = frameSceneTable.Height; bodyFrameLayout.AddChidren(frameDeviceTable); frameDeviceTable.Visible = false; + + //鍒濆鍖栧垎鏀帶浠� + this.InitSwitchControl(); //鎴块棿 var btnRoom = new NormalViewControl(400, 63, true); @@ -424,12 +103,15 @@ btnRoom.TextAlignment = TextAlignment.CenterRight; bodyFrameLayout.AddChidren(btnRoom); + //鍒嗕韩鎸夐挳 this.btnShard = new BottomClickButton(); btnShard.TextID = R.MyInternationalizationString.uShared2; bodyFrameLayout.AddChidren(btnShard); btnShard.Visible = false; btnShard.ButtonClickEvent += (sender, e) => { + //淇濆瓨鍒嗕韩 + this.SaveShardData(); }; //鍒濆鍖栧満鏅垪琛� @@ -443,95 +125,32 @@ /// </summary> private void InitSwitchControl() { - var btnTemp = new NormalViewControl(10, 10, false); - btnTemp.TextID = R.MyInternationalizationString.uScence; - - //鍦烘櫙妗�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) - var frameScene = new FrameLayoutControl(); - frameScene.UseClickStatu = false; - frameScene.Height = Application.GetRealHeight(90); - frameScene.Width = btnTemp.GetRealWidthByText(16); - frameScene.X = ControlCommonResourse.XXLeft; - frameScene.Y = Application.GetRealHeight(40); - bodyFrameLayout.AddChidren(frameScene); - //鍦烘櫙 - var btnScene = new NormalViewControl(frameScene.Width, Application.GetRealHeight(63), false); - btnScene.Text = btnTemp.Text; - btnScene.TextSize = 16; - btnScene.TextColor = UserCenterColor.Current.TextColor2; - frameScene.AddChidren(btnScene, ChidrenBindMode.BindEventOnly); - //搴曠嚎 - var btnSceneLine = new NormalViewControl(40, 10, true); - btnSceneLine.Y = btnScene.Bottom + Application.GetRealHeight(14); - btnSceneLine.X = btnScene.X + btnScene.Width / 2 - Application.GetRealWidth(40) / 2; - btnSceneLine.Radius = (uint)Application.GetRealHeight(10) / 2; - btnSceneLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; - frameScene.AddChidren(btnSceneLine, ChidrenBindMode.BindEventOnly); - - btnTemp.TextID = R.MyInternationalizationString.uFunction; - //鍔熻兘妗�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) - var frameFunc = new FrameLayoutControl(); - frameFunc.UseClickStatu = false; - frameFunc.Height = Application.GetRealHeight(90); - frameFunc.Width = btnTemp.GetRealWidthByText(16); - frameFunc.X = frameScene.Right + Application.GetRealWidth(58); - frameFunc.Y = Application.GetRealHeight(40); - bodyFrameLayout.AddChidren(frameFunc); - //鍔熻兘 - var btnFunc = new NormalViewControl(frameFunc.Width, Application.GetRealHeight(63), false); - btnFunc.Text = btnTemp.Text; - btnFunc.TextColor = UserCenterColor.Current.TextGrayColor3; - frameFunc.AddChidren(btnFunc, ChidrenBindMode.BindEventOnly); - //搴曠嚎 - var btnFuncLine = new NormalViewControl(40, 10, true); - btnFuncLine.Y = btnFunc.Bottom + Application.GetRealHeight(14); - btnFuncLine.X = btnFunc.X + btnFunc.Width / 2 - Application.GetRealWidth(40) / 2; - btnFuncLine.Radius = (uint)Application.GetRealHeight(10) / 2; - btnFuncLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; - frameFunc.AddChidren(btnFuncLine, ChidrenBindMode.BindEventOnly); - btnFuncLine.Visible = false; - - frameScene.ButtonClickEvent += (sender, e) => + var tabControl = new SceneFunctionSwitchControl(); + tabControl.Y = Application.GetRealHeight(40); + bodyFrameLayout.AddChidren(tabControl); + //璁剧疆鍒濆鍖栧�� + tabControl.SetDefultIndex(nowSwitchIndex); + tabControl.SelectTabEvent += (tabIndex) => { - //鍦烘櫙鍒嗘敮閫夋嫨 - if (this.nowSelectIndex == 1) + this.nowSwitchIndex = tabIndex; + if (tabIndex == 0) { - return; + //鏄剧ず鍦烘櫙鍒楄〃 + this.frameSceneTable.Visible = true; + this.frameDeviceTable.Visible = false; } - this.nowSelectIndex = 1; - - btnScene.TextSize = 16; - btnScene.TextColor = UserCenterColor.Current.TextColor2; - btnFunc.TextSize = 14; - btnFunc.TextColor = UserCenterColor.Current.TextGrayColor3; - btnSceneLine.Visible = true; - btnFuncLine.Visible = false; - - //鏄剧ず鍦烘櫙鍒楄〃 - this.frameSceneTable.Visible = true; - this.frameDeviceTable.Visible = false; - }; - - frameFunc.ButtonClickEvent += (sender, e) => - { - //鍔熻兘鍒嗘敮閫夋嫨 - if (this.nowSelectIndex == 2) + else { - return; + //鏄剧ず鍔熻兘鍒楄〃 + this.frameSceneTable.Visible = false; + this.frameDeviceTable.Visible = true; } - this.nowSelectIndex = 2; - - btnScene.TextSize = 14; - btnScene.TextColor = UserCenterColor.Current.TextGrayColor3; - btnFunc.TextSize = 16; - btnFunc.TextColor = UserCenterColor.Current.TextColor2; - btnFuncLine.Visible = true; - btnSceneLine.Visible = false; - - //鏄剧ず鍔熻兘鍒楄〃 - this.frameSceneTable.Visible = false; - this.frameDeviceTable.Visible = true; }; + //寮�濮嬪垵濮嬪寲鍦烘櫙鍔熻兘鍒囨崲鎺т欢 + var listTitle = new List<string>(); + listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence)); + listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction)); + tabControl.InitControl(listTitle); } #endregion @@ -546,35 +165,84 @@ //娓呯┖妗屽竷 this.frameSceneTable.RemoveAll(); - var listView = new VerticalFrameControl(29); - listView.Y = Application.GetRealHeight(53); - listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(187); - frameSceneTable.AddChidren(listView); + //鍦烘櫙鏈夌偣鐗规畩,濡傛灉鍚屼竴涓埧闂村唴,宸茬粡鍒嗕韩浜�,鍒欎笉鍐嶆樉绀� + //濡傛灉杩欎釜鍦烘櫙鏄敱宓屽鑰屽垎浜殑,杩欎釜鏃跺��,瀹冨彲浠ユ樉绀哄嚭鏉� + var listScene = new List<int>(); + var shardRoom = HdlShardLogic.Current.GetShardRoomFromMemory(lookRoom.Id); + if (shardRoom == null) + { + listScene.AddRange(lookRoom.ListSceneId); + } + else + { + foreach (var dataId in lookRoom.ListSceneId) + { + if (shardRoom.ListSceneId.Contains(dataId) == false) + { + listScene.Add(dataId); + } + } + } + if (listScene.Count == 0) + { + //鏃犲彲鍏变韩鐨勫満鏅� + this.ShowNotDataImage(frameSceneTable, Language.StringByID(R.MyInternationalizationString.uNotCanShardSceneMsg), "Item/NotShardPic.png", 383, 279); + return; + } HdlThreadLogic.Current.RunMainInThread(() => { - foreach (var data in lookRoom.SceneUIList) + var listView = new VerticalFrameControl(3); + listView.Y = Application.GetRealHeight(53); + listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(187); + frameSceneTable.AddChidren(listView); + + foreach (var dataId in listScene) { + var data = HdlSceneLogic.Current.GetSceneUIBySceneId(dataId); + if (data == null) + { + continue; + } //鍦烘櫙鍥剧墖 - var frameContr = new FrameLayoutControl(); - frameContr.UseClickStatu = false; - frameContr.Width = Application.GetRealWidth(878); - frameContr.Height = Application.GetRealHeight(440); - frameContr.Gravity = Gravity.CenterHorizontal; - frameContr.BackgroundImagePath = data.IconPath; - listView.AddChidrenFrame(frameContr); + var frameContr = new ScenePictrueControl(); + listView.AddChidren(frameContr); + frameContr.InitControl(data); var btnSelect = new IconViewControl(58); btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png"; btnSelect.SelectedImagePath = "Item/ItemSelected.png"; - btnSelect.X = Application.GetRealWidth(786); + btnSelect.X = Application.GetRealWidth(887); btnSelect.Y = Application.GetRealHeight(35); - frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly); + frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEvent); + if (dicSelectScene.ContainsKey(data.Id) == true) + { + btnSelect.IsSelected = true; + } frameContr.ButtonClickEvent += (sender, e) => { + //閫夋嫨 btnSelect.IsSelected = !btnSelect.IsSelected; + if (btnSelect.IsSelected == true) + { + dicSelectScene[data.Id] = data; + if (this.btnShard.Visible == false) + { + this.btnShard.Visible = true; + } + } + else + { + dicSelectScene.Remove(data.Id); + if (dicSelectScene.Count == 0 && dicSelectDevice.Count == 0) + { + this.btnShard.Visible = false; + } + } }; } + //璋冩暣涓�涓嬮珮搴� + listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(185)); }); } @@ -590,26 +258,33 @@ //娓呯┖妗屽竷 this.frameDeviceTable.RemoveAll(); - var frameBack = new FrameLayoutControl(false); - frameBack.X = ControlCommonResourse.XXLeft; - frameBack.Y = Application.GetRealHeight(178); - frameBack.BackgroundColor = UserCenterColor.Current.White; - frameBack.Width = bodyFrameLayout.Width; - frameBack.Height = Application.GetRealHeight(1650); - frameBack.RadiusEx = 20; - frameDeviceTable.AddChidren(frameBack); - - var listView = new VerticalListControl(23); - listView.Y = Application.GetRealHeight(23); - listView.Height = Application.GetRealHeight(1437 - 23); - frameBack.AddChidren(listView); - HdlThreadLogic.Current.RunMainInThread(() => { //鑾峰彇鍒嗙粍鍚庣殑璁惧鍒楄〃 var dicGroupDevice = this.GetAllGroupDevice(); - //鍒濆鍖栬澶囩被鍨嬭 - this.InitDeviceObjectRow(dicGroupDevice, listView); + if (dicGroupDevice.Count == 0) + { + //鏃犲彲鍏变韩鐨勮澶� + this.ShowNotDataImage(frameDeviceTable, Language.StringByID(R.MyInternationalizationString.uNotCanShardDeviceMsg), "Item/NotShardPic.png", 383, 279); + } + else + { + var frameBack = new FrameLayout(); + frameBack.X = HdlControlResourse.XXLeft; + frameBack.Y = Application.GetRealHeight(178); + frameBack.BackgroundColor = UserCenterColor.Current.White; + frameBack.Width = bodyFrameLayout.Width; + frameBack.Height = Application.GetRealHeight(1650); + frameBack.Radius = (uint)Application.GetRealHeight(58); + frameDeviceTable.AddChidren(frameBack); + + var listView = new VerticalListControl(23); + listView.Y = Application.GetRealHeight(23); + listView.Height = Application.GetRealHeight(1437 - 23); + frameBack.AddChidren(listView); + //鍒濆鍖栬澶囩被鍨嬭 + this.InitDeviceObjectRow(dicGroupDevice, listView); + } }); } @@ -622,84 +297,19 @@ /// </summary> /// <param name="dicData"></param> /// <param name="listView"></param> - private void InitDeviceObjectRow(Dictionary<int, List<CommonDevice>> dicData, VerticalListControl listView) + private void InitDeviceObjectRow(Dictionary<string, List<CommonDevice>> dicData, VerticalListControl listView) { - var scrolContr = new HorizontalScrolViewLayout(); - scrolContr.X = ControlCommonResourse.XXLeft / 2; - scrolContr.Width = bodyFrameLayout.Width - ControlCommonResourse.XXLeft / 2; - scrolContr.Height = Application.GetRealHeight(160); + var scrolContr = new RoomDeviceGroupMenuControl(dicData); this.frameDeviceTable.AddChidren(scrolContr); - - int oldTextId = 0; - FrameLayout oldFrameBack = null; - NormalViewControl oldBtnText = null; - - foreach (int textId in dicData.Keys) + //璁剧疆鍒濆鍊� + scrolContr.SetDefultIndex(nowDeviceIndex); + scrolContr.SelectDeviceEvent += (listdevice) => { - var frameMain = new FrameLayout(); - frameMain.Height = scrolContr.Height; - frameMain.Width = Application.GetRealWidth(250) + ControlCommonResourse.XXLeft; - scrolContr.AddChidren(frameMain); - var frameBack = new FrameLayoutControl(); - frameBack.UseClickStatu = false; - frameBack.Gravity = Gravity.CenterHorizontal; - frameBack.Height = frameMain.Height; - frameBack.Width = Application.GetRealWidth(187); - if (scrolContr.ChildrenCount == 1) - { - oldTextId = textId; - frameBack.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; - oldFrameBack = frameBack; - } - else - { - frameBack.BackgroundImagePath = "Item/RoomIconBackground.png"; - } - frameMain.AddChidren(frameBack); - var btnText = new NormalViewControl(frameBack.Width - frameBack.Height, frameBack.Height, false); - btnText.Gravity = Gravity.CenterHorizontal; - btnText.TextID = textId; - btnText.TextSize = 12; - btnText.TextAlignment = TextAlignment.Center; - if (scrolContr.ChildrenCount == 1) - { - btnText.TextColor = UserCenterColor.Current.White; - oldBtnText = btnText; - } - else - { - btnText.TextColor = UserCenterColor.Current.TextGrayColor1; - } - frameBack.AddChidren(btnText, ChidrenBindMode.BindEventOnly); - - frameBack.ButtonClickEvent += (sender, e) => - { - if (oldTextId == textId) - { - //鍚屼竴涓笢瑗� - return; - } - oldTextId = textId; - - //鐘舵�佸彉鏇� - frameBack.BackgroundImagePath = "Room/RoomIconBackgroundSelected.png"; - btnText.TextColor = UserCenterColor.Current.White; - - oldFrameBack.BackgroundImagePath = "Room/RoomIconBackground.png"; - oldBtnText.TextColor = UserCenterColor.Current.TextGrayColor1; - oldFrameBack = frameBack; - oldBtnText = btnText; - //娣诲姞璁惧琛� - this.AddDeviceRow(dicData[textId], listView); - }; - } - - //娣诲姞璁惧琛� - foreach (int textId in dicData.Keys) - { - this.AddDeviceRow(dicData[textId], listView); - break; - } + this.nowDeviceIndex = scrolContr.nowSelectKeys; + //娣诲姞璁惧琛� + this.AddDeviceRow(listdevice, listView); + }; + scrolContr.InitControl(); } #endregion @@ -718,16 +328,15 @@ foreach (var device in listDevice) { var frameRow = new FrameRowControl(listView.rowSpace / 2); - frameRow.UseClickStatu = false; - frameRow.LeftOffset = Application.GetRealWidth(46) - ControlCommonResourse.XXLeft; - frameRow.RightOffset = -ControlCommonResourse.XXLeft; + frameRow.LeftOffset = Application.GetRealWidth(46) - HdlControlResourse.XXLeft; + frameRow.RightOffset = -HdlControlResourse.XXLeft; listView.AddChidren(frameRow); //鍥炬爣 var btnIcon = frameRow.AddLeftIcon(81); - Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device); + HdlDeviceCommonLogic.Current.SetDeviceIconToControl(btnIcon, device); //鍚嶇О var btnView = frameRow.AddLeftCaption(string.Empty, 600); - btnView.Text = Common.LocalDevice.Current.GetDeviceEpointName(device); + btnView.Text = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device); btnView.TextSize = 15; //搴曠嚎 frameRow.AddBottomLine(); @@ -735,12 +344,37 @@ var btnSelect = frameRow.AddMostRightEmptyIcon(69, 69); btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png"; btnSelect.SelectedImagePath = "Item/ItemSelected.png"; - frameRow.ChangedChidrenBindMode(btnSelect, ChidrenBindMode.NotBind); - btnSelect.ButtonClickEvent += (sender, e) => + + string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device); + if (dicSelectDevice.ContainsKey(mainKeys) == true) { + btnSelect.IsSelected = true; + } + frameRow.ButtonClickEvent += (sender, e) => + { + //閫夋嫨 btnSelect.IsSelected = !btnSelect.IsSelected; + if (btnSelect.IsSelected == true) + { + dicSelectDevice[mainKeys] = device; + if (this.btnShard.Visible == false) + { + this.btnShard.Visible = true; + } + } + else + { + dicSelectDevice.Remove(mainKeys); + if (dicSelectScene.Count == 0 && dicSelectDevice.Count == 0) + { + this.btnShard.Visible = false; + } + } }; } + + //鍒楄〃鑷繁鏈変釜23鐨刌杞村潗鏍� + listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23), Application.GetRealHeight(300 - 23)); } #endregion @@ -751,57 +385,66 @@ /// 鑾峰彇鍒嗙粍鍚庣殑璁惧 /// </summary> /// <returns></returns> - private Dictionary<int, List<CommonDevice>> GetAllGroupDevice() + private Dictionary<string, List<CommonDevice>> GetAllGroupDevice() { //鍏ㄩ儴鐨勮澶� - var listDevice = lookRoom.GetRoomListDevice(); - var dic = new Dictionary<int, List<CommonDevice>>(); + var listDevice = HdlRoomLogic.Current.GetRoomListDevice(lookRoom); + var dic = new Dictionary<string, List<CommonDevice>>(); + var shardRoom = HdlShardLogic.Current.GetShardRoomFromMemory(lookRoom.Id); foreach (var device in listDevice) { - var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device }); - if (device.Type == DeviceType.IASZone) + string mainkey = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device); + if (shardRoom.ListDevice.Contains(mainkey) == true) { - //杩欎釜寮哄埗涓轰紶鎰熷櫒 - typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId1200; - typeInfo.ConcreteType = Common.DeviceConcreteType.Sensor; + //濡傛灉宸茬粡鍒嗕韩浜�,鍒欎笉鏄剧ず + continue; } - if (device.Type == DeviceType.OnOffOutput) + var typeInfo = HdlDeviceCommonLogic.Current.GetDeviceBelongEnumInfo(device); + if (dic.ContainsKey(typeInfo.BeloneText) == false) { - //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞� - if (device.DfunctionType == DeviceFunctionType.A寮�鍏�) - { - typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch; - } - else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇) - { - typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1; - } - else if (device.DfunctionType == DeviceFunctionType.A鐏厜) - { - typeInfo.BeloneTextId = R.MyInternationalizationString.uLight; - } - else - { - //缁х數鍣� - typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300; - } - if (dic.ContainsKey(typeInfo.BeloneTextId) == false) - { - dic[typeInfo.BeloneTextId] = new List<CommonDevice>(); - } + dic[typeInfo.BeloneText] = new List<CommonDevice>(); } - else - { - if (dic.ContainsKey(typeInfo.BeloneTextId) == false) - { - dic[typeInfo.BeloneTextId] = new List<CommonDevice>(); - } - } - dic[typeInfo.BeloneTextId].Add(device); + dic[typeInfo.BeloneText].Add(device); } return dic; } #endregion + + #region 鈻� 淇濆瓨鍒嗕韩___________________________ + + /// <summary> + /// 淇濆瓨鍒嗕韩 + /// </summary> + private void SaveShardData() + { + //閫夋嫨鐨勮澶� + var listDevice = new List<CommonDevice>(); + foreach (var device in dicSelectDevice.Values) + { + listDevice.Add(device); + } + //閫夋嫨鐨勫満鏅� + var listScene = new List<Common.SceneUI>(); + foreach (var scene in dicSelectScene.Values) + { + listScene.Add(scene); + } + HdlThreadLogic.Current.RunThread(() => + { + //涓婁紶鏂囦欢 + var result = HdlShardLogic.Current.UploadSharedContent(this.ChildAccountId, this.lookRoom, listDevice, listScene); + if (result == true) + { + HdlThreadLogic.Current.RunMain(() => + { + //閲嶆柊鍒濆鍖栫晫闈� + this.InitMiddleFrame(); + }); + } + }); + } + + #endregion } } -- Gitblit v1.8.0