From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 21 七月 2020 09:46:53 +0800 Subject: [PATCH] 请合并最新多功能面板代码 --- ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs | 338 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 338 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs new file mode 100755 index 0000000..f37f622 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs @@ -0,0 +1,338 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.Safety +{ + /// <summary> + /// 鏃㈠瓨鎶ヨ鐩爣璁剧疆鐢婚潰 + /// </summary> + public class AlarmTargetExistSettionForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�) + /// </summary> + private int zoonID = 0; + /// <summary> + /// 鍒楄〃鎺т欢 + /// </summary> + private VerticalListControl listView = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="i_zoonID">闃插尯ID</param> + public void ShowForm(int i_zoonID) + { + this.zoonID = i_zoonID; + + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion)); + + //娣诲姞鍥炬爣 + var btnAdd = new MostRightIconControl(69, 69); + btnAdd.UnSelectedImagePath = "Item/Add.png"; + topFrameLayout.AddChidren(btnAdd); + btnAdd.InitControl(); + btnAdd.ButtonClickEvent += (sender, e) => + { + var form = new AlarmTargetAddMenuForm(); + form.AddForm(this.zoonID); + }; + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛� + var listData = HdlSafeguardLogic.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID); + if (listData.Count == 0) + { + //杩樻病鏈夎缃姤璀︾洰鏍� + this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDoNotHadSettionTargetMsg)); + return; + } + + this.listView = new VerticalListControl(23); + listView.BackgroundColor = UserCenterColor.Current.White; + listView.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listView); + + HdlThreadLogic.Current.RunMainInThread(() => + { + for (int i = 0; i < listData.Count; i++) + { + var data = listData[i]; + //鍦烘櫙 + if (data.Type == 1) + { + this.AddSceneRow(data, i != listData.Count - 1); + } + //璁惧 + if (data.Type == 0) + { + this.AddDeviceRow(data, i != listData.Count - 1); + } + } + //璋冩暣鐪熷疄楂樺害 + this.listView.AdjustRealHeight(Application.GetRealHeight(23)); + }); + } + + #endregion + + #region 鈻� 鎶ヨ鐩爣鏄庣粏琛宊____________________ + + /// <summary> + /// 娣诲姞璁惧琛� + /// </summary> + /// <param name="data"></param> + /// <param name="addLine"></param> + private void AddDeviceRow(Safeguard.CatActionResponseObj data, bool addLine) + { + //琛屾帶浠� + var row = new DeviceRoomControl(data.DeviceAddr, data.Epoint, listView.rowSpace / 2); + listView.AddChidren(row); + row.InitControl(); + row.frameTable.UseClickStatu = false; + if (addLine == true) + { + //搴曠嚎 + row.frameTable.AddBottomLine(); + } + //鐘舵�佹樉绀� + var btnStatu = row.frameTable.AddMostRightView("", 400); + if (data.TaskList.Count > 0) + { + btnStatu.Text = HdlSafeguardLogic.Current.GetAdjustTargetStatuText(data.TaskList); + } + else + { + //鏃犲姩浣� + btnStatu.TextID = R.MyInternationalizationString.uNotAction; + } + + if (row.device != null) + { + //缂栬緫 + var btnEditor = row.AddEditorControl(); + btnEditor.ButtonClickEvent += (sender, e) => + { + //缂栬緫鎶ヨ鐩爣 + this.EditorAlarmTarget(row, btnStatu, data); + }; + } + + //鍒犻櫎 + var btnDelete = row.AddDeleteControl(); + btnDelete.ButtonClickEvent += (sender, e) => + { + //鍒犻櫎 + string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎鎶ヨ鐩爣 + this.DeleteAlarmTarget(row, data); + }); + }; + } + + /// <summary> + /// 娣诲姞鍦烘櫙琛� + /// </summary> + /// <param name="data"></param> + /// <param name="addLine"></param> + private void AddSceneRow(Safeguard.CatActionResponseObj data, bool addLine) + { + //琛屾帶浠� + var row = new SceneRoomControl(data.ScenesId, data.ESName, listView.rowSpace / 2); + listView.AddChidren(row); + row.InitControl(); + row.frameTable.UseClickStatu = false; + + if (addLine == true) + { + //搴曠嚎 + row.frameTable.AddBottomLine(); + } + + //鍒犻櫎 + var btnDelete = row.AddDeleteControl(); + btnDelete.ButtonClickEvent += (sender, e) => + { + string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎鎶ヨ鐩爣 + this.DeleteAlarmTarget(row, data); + }); + }; + } + + #endregion + + #region 鈻� 鍒犻櫎鎸囧畾鎶ヨ鐩爣___________________ + + /// <summary> + /// 鍒犻櫎鎸囧畾鎶ヨ鐩爣 + /// </summary> + /// <param name="row"></param> + /// <param name="delObj"></param> + private async void DeleteAlarmTarget(RowLayoutControl row, Safeguard.CatActionResponseObj delObj) + { + //鍙傛暟 + var Pra = new List<Safeguard.DelAlarmActionObj>(); + var actionObj = new Safeguard.DelAlarmActionObj(); + actionObj.DeviceAddr = delObj.DeviceAddr; + actionObj.Epoint = delObj.Epoint; + actionObj.ScenesId = delObj.ScenesId; + actionObj.Type = delObj.Type; + Pra.Add(actionObj); + + //鎵ц鍒犻櫎 + bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, Pra); + if (result == false) + { + return; + } + + //琛岀Щ闄� + row?.RemoveFromParent(); + //璋冩暣鐪熷疄楂樺害 + listView.AdjustRealHeight(Application.GetRealHeight(23)); + if (listView.ChildrenCount == 0) + { + //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + return; + } + } + #endregion + + #region 鈻� 缂栬緫鎸囧畾鎶ヨ鐩爣___________________ + + /// <summary> + /// 缂栬緫鎸囧畾鎶ヨ鐩爣 + /// </summary> + /// <param name="btnStatu"></param> + /// <param name="resObj"></param> + private void EditorAlarmTarget(DeviceRoomControl deviceRow, NormalViewControl btnStatu, Safeguard.CatActionResponseObj resObj) + { + var device = Common.LocalDevice.Current.GetDevice(resObj.DeviceAddr, resObj.Epoint); + if (device.Type == DeviceType.DimmableLight//璋冨厜鍣� + || device.Type == DeviceType.ColorDimmableLight)//褰╃伅 + { + var form = new AlarmTargetStatuSelectLightForm(); + form.AddForm(device, resObj.TaskList); + form.FinishSelectEvent += (statuText, listInfo) => + { + //杩樺師宸﹀彸鑿滃崟 + deviceRow?.HideMenu(); + btnStatu.Text = statuText; + //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍� + this.SaveEditorAlarmTarget(resObj, listInfo); + }; + } + else if (device.Type == DeviceType.WindowCoveringDevice)//绐楀笜 + { + var form = new AlarmTargetStatuSelectCurtainForm(); + form.AddForm(device, resObj.TaskList); + form.FinishSelectEvent += (statuText, listInfo) => + { + //杩樺師宸﹀彸鑿滃崟 + deviceRow?.HideMenu(); + btnStatu.Text = statuText; + //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍� + this.SaveEditorAlarmTarget(resObj, listInfo); + }; + } + else + { + //鍏朵粬鐩存帴褰掍负寮�鍏崇被 + var form = new AlarmTargetStatuSelectSwitchForm(); + form.AddForm(device, resObj.TaskList); + form.FinishSelectEvent += (statuText, listInfo) => + { + //杩樺師宸﹀彸鑿滃崟 + deviceRow?.HideMenu(); + btnStatu.Text = statuText; + //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍� + this.SaveEditorAlarmTarget(resObj, listInfo); + }; + } + } + + /// <summary> + /// 淇濆瓨缂栬緫鐨勬姤璀︾洰鏍� + /// </summary> + /// <param name="resObj"></param> + /// <param name="listTask"></param> + private async void SaveEditorAlarmTarget(Safeguard.CatActionResponseObj resObj, List<Safeguard.TaskListInfo> listTask) + { + //鍏堝垹闄� 鍙傛暟 + var PraDel = new List<Safeguard.DelAlarmActionObj>(); + var actionObjDel = new Safeguard.DelAlarmActionObj(); + actionObjDel.DeviceAddr = resObj.DeviceAddr; + actionObjDel.Epoint = resObj.Epoint; + actionObjDel.ScenesId = resObj.ScenesId; + actionObjDel.Type = resObj.Type; + PraDel.Add(actionObjDel); + + //鎵ц鍒犻櫎 + bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, PraDel); + if (result == false) + { + return; + } + + //鐒跺悗鍐嶆坊鍔� + var listAction = new List<Safeguard.AlarmActionObj>(); + var actionObjAdd = new Safeguard.AlarmActionObj(); + actionObjAdd.DeviceAddr = resObj.DeviceAddr; + actionObjAdd.Epoint = resObj.Epoint; + actionObjAdd.Type = 0; + actionObjAdd.TaskList = listTask; + listAction.Add(actionObjAdd); + + //娣诲姞鎶ヨ鐩爣鍒板畨闃� + bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction); + if (success == true) + { + resObj.TaskList.Clear(); + resObj.TaskList.AddRange(listTask); + } + } + + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + //閲嶆柊鍒锋柊鐣岄潰 + this.InitMiddleFrame(); + + return 1; + } + + #endregion + } +} -- Gitblit v1.8.0