From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 30 九月 2019 13:22:40 +0800 Subject: [PATCH] 合并了徐梅的按键面板绑定 --- ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs | 325 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 241 insertions(+), 84 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs index a9d9944..ec32d7c 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs @@ -8,8 +8,10 @@ /// <summary> /// 鎶ヨ鐩爣璁剧疆鐢婚潰 /// </summary> - public class AlarmTargetSettionForm : UserCenterCommonForm + public class AlarmTargetSettionForm : EditorCommonForm { + #region 鈻� 鍙橀噺澹版槑___________________________ + /// <summary> /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�) /// </summary> @@ -17,11 +19,15 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalScrolViewLayout listView = null; + private VerticalListControl listView = null; /// <summary> - /// 鏍囬鎺т欢 + /// 搴曢儴鐨勩�愭坊鍔犵洰鏍囥�戠殑琛� /// </summary> - private TitleViewControl btnTitle = null; + private FrameRowControl frameBottomAddRow = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ /// <summary> /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) @@ -32,18 +38,7 @@ this.zoonID = i_zoonID; //璁剧疆澶撮儴淇℃伅 - base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion)); - - //鍙充笂娣诲姞鎸夐挳 - var btnAddDeviceIcon = new TopLayoutMostRightView(); - btnAddDeviceIcon.UnSelectedImagePath = "Item/Add.png"; - btnAddDeviceIcon.SelectedImagePath = "Item/AddSelected.png"; - topFrameLayout.AddChidren(btnAddDeviceIcon); - btnAddDeviceIcon.MouseUpEventHandler += (sender, e) => - { - var form = new AddAlarmTargetTypeListForm(); - this.AddForm(form, this.zoonID); - }; + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion)); //鍒濆鍖栦腑閮ㄤ俊鎭� this.InitMiddleFrame(); @@ -54,44 +49,151 @@ /// </summary> private void InitMiddleFrame() { - //褰撹闃插尯鎶ヨ鏃讹紝浠ヤ笅鐩爣灏嗕細鍝嶅簲 - btnTitle = new TitleViewControl(); - btnTitle.TextColor = UserCenterColor.Current.TextGrayColor; - btnTitle.Visible = false; - btnTitle.Y = Application.GetRealHeight(40); - btnTitle.TextID = R.MyInternationalizationString.uTargetViewAlarmAfterZoonAlarm; - bodyFrameLayout.AddChidren(btnTitle); + //娓呯┖bodyFrame + this.ClearBodyFrame(); - this.listView = new VerticalScrolViewLayout(); - this.listView.Y = btnTitle.Bottom + Application.GetRealHeight(20); - this.listView.Height = bodyFrameLayout.Height - btnTitle.Bottom - Application.GetRealHeight(20); + //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛� + var listData = HdlSafeguardLogic.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID); + if (listData.Count == 0) + { + //鐗规畩鐗规晥,濡傛灉娌℃湁鎶ヨ鐩爣鐨勮瘽,鍒欐樉绀虹殑鐣岄潰鏁堟灉闈炲父鐨勫ぇ + this.ShowNotAlarmTargetAppeal(); + frameBottomAddRow = null; + return; + } + + //褰撹闃插尯鎶ヨ鏃讹紝浠ヤ笅鐩爣灏嗕細鍝嶅簲 + var frameBack = new FrameLayout(); + frameBack.Height = Application.GetRealHeight(92); + frameBack.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameBack); + + var btnTitle = new NormalViewControl(860, 49, true); + btnTitle.X = ControlCommonResourse.XXLeft; + btnTitle.Y = Application.GetRealHeight(35); + btnTitle.TextSize = 12; + btnTitle.TextColor = UserCenterColor.Current.TextGrayColor2; + btnTitle.TextID = R.MyInternationalizationString.uTargetViewAlarmAfterZoonAlarm; + frameBack.AddChidren(btnTitle); + + int maxRowCount = listData.Count; + if (maxRowCount > 8) + { + //鐗规晥闂,瀹冨彧鑳芥樉绀�8涓�,瓒呰繃8涓彧鑳界敤婊戝姩 + maxRowCount = 8; + } + this.listView = new VerticalListControl(29); + this.listView.Y = frameBack.Bottom; + this.listView.BackgroundColor = UserCenterColor.Current.White; + this.listView.Height = (ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29)) * maxRowCount; bodyFrameLayout.AddChidren(this.listView); - //璁剧疆涓棿閮ㄥ垎淇℃伅 - this.SetMiddleInfo(); + //娣诲姞搴曢儴 娣诲姞鎶ヨ鐩爣鐨勮彍鍗曡 + this.AddBottomAlarmTargetMenu(); + + new System.Threading.Thread(() => + { + //璁剧疆涓棿閮ㄥ垎淇℃伅 + this.SetMiddleInfo(listData); + }) + { IsBackground = true }.Start(); } /// <summary> /// 璁剧疆涓棿閮ㄥ垎淇℃伅 /// </summary> - public void SetMiddleInfo() + public void SetMiddleInfo(List<Safeguard.CatActionResponseObj> listData) { - this.listView.RemoveAll(); - - //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛� - var listData = Common.LocalSafeguard.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID); - if (listData.Count > 0) + if (this.Parent == null) { - btnTitle.Visible = true; + return; } - new System.Threading.Thread(() => + //娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚S + Application.RunOnMainThread(() => { - //娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚 - this.AddAlarmTargetList(listData); - }) - { IsBackground = true }.Start(); + foreach (var data in listData) + { + //鍦烘櫙 + if (data.Type == 1) + { + this.AddSceneRow(data); + } + //璁惧 + if (data.Type == 0) + { + CommonDevice device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint); + if (device != null) + { + this.AddDeviceRow(data, device); + } + } + } + }); } + + #endregion + + #region 鈻� 鎶ヨ鐩爣鑿滃崟琛宊____________________ + + /// <summary> + /// 鏄剧ず鏃犳姤璀︾洰鏍囩壒鏁� + /// </summary> + private void ShowNotAlarmTargetAppeal() + { + var frameTemp = new FrameRowControl(); + frameTemp.Height = Application.GetRealHeight(173); + frameTemp.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameTemp); + + //娣诲姞鐩爣 + var btnText = frameTemp.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAddTarget), 400); + btnText.TextSize = 15; + + //鍔犲彿 + var btnAdd = frameTemp.AddMostRightEmptyIcon(58, 58); + btnAdd.UnSelectedImagePath = "Item/Add.png"; + + frameTemp.ButtonClickEvent += (sender, e) => + { + var form = new AddAlarmTargetTypeListForm(); + form.AddForm(this.zoonID); + }; + } + + /// <summary> + /// 娣诲姞搴曢儴 娣诲姞鎶ヨ鐩爣鐨勮彍鍗曡 + /// </summary> + private void AddBottomAlarmTargetMenu() + { + //娣诲姞鐩爣 + frameBottomAddRow = new FrameRowControl(); + frameBottomAddRow.Y = this.listView.Bottom; + frameBottomAddRow.Height = ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29 + 29); + frameBottomAddRow.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameBottomAddRow); + + var frameTemp = new FrameRowControl(); + frameTemp.Gravity = Gravity.CenterVertical; + frameBottomAddRow.AddChidren(frameTemp); + var btnText = frameTemp.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAddTarget), 400); + btnText.TextSize = 15; + //鍔犲彿 + var btnAdd = frameTemp.AddMostRightEmptyIcon(58, 58); + btnAdd.UnSelectedImagePath = "Item/Add.png"; + //搴曠嚎 + frameTemp.AddBottomLine(); + + frameTemp.ButtonClickEvent += (sender, e) => + { + var form = new AddAlarmTargetTypeListForm(); + form.AddForm(this.zoonID); + }; + } + + #endregion + + #region 鈻� 鎶ヨ鐩爣鏄庣粏琛宊____________________ /// <summary> /// 娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚 @@ -105,7 +207,10 @@ { Application.RunOnMainThread(() => { - this.AddDeviceRow(data); + if (this.Parent != null) + { + this.AddSceneRow(data); + } }); } //璁惧 @@ -120,9 +225,55 @@ Application.RunOnMainThread(() => { - this.AddSceneRow(data, device); + if (this.Parent != null) + { + this.AddDeviceRow(data, device); + } }); } + } + } + + /// <summary> + /// 娣诲姞璁惧琛� + /// </summary> + /// <param name="data"></param> + /// <param name="device"></param> + private void AddDeviceRow(Safeguard.CatActionResponseObj data, CommonDevice device) + { + //琛屾帶浠� + var row = new DeviceRoomControl(device, listView.rowSpace / 2); + listView.AddChidren(row); + row.InitControl(); + row.frameTable.UseClickStatu = false; + //搴曠嚎 + row.frameTable.AddBottomLine(); + + //鍒犻櫎鍥炬爣 + var btnDelete = row.frameTable.AddMostRightEmptyIcon(58, 58); + btnDelete.UnSelectedImagePath = "Item/DeleteIcon1.png"; + row.frameTable.ChangedChidrenBindMode(btnDelete, ChidrenBindMode.NotBind); + btnDelete.ButtonClickEvent += (sender, e) => + { + //鍒犻櫎 + string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎鎶ヨ鐩爣 + this.DeleteAlarmTarget(row, data); + }); + }; + + //鐘舵�佹樉绀� + var btnStatu = row.frameTable.AddMostRightView("", 400); + if (data.TaskList.Count > 0) + { + btnStatu.Text = HdlSafeguardLogic.Current.GetLightAlarmStatuText(data.TaskList); + } + else + { + //鏃犲姩浣� + btnStatu.TextID = R.MyInternationalizationString.uNotAction; } } @@ -130,60 +281,42 @@ /// 娣诲姞鍦烘櫙琛� /// </summary> /// <param name="data"></param> - /// <param name="device"></param> - private void AddSceneRow(Safeguard.CatActionResponseObj data, CommonDevice device) + private void AddSceneRow(Safeguard.CatActionResponseObj data) { //琛屾帶浠� - var row = new DeviceRoomViewRow(this.listView, device); - //鐘舵�佹樉绀� - var btnStatu = new RowSecondRightTextView(); - row.AddChidren(btnStatu); - if (data.TaskList.Count > 0) - { - btnStatu.Text = SafeguardLogic.GetLightAlarmStatuText(data.TaskList); - btnStatu.TextColor = UserCenterColor.Current.Green; - } - else - { - //鏃犲姩浣� - btnStatu.TextID = R.MyInternationalizationString.uNotAction; - } + var row = new SceneRoomControl(data.ScenesId, data.ESName, listView.rowSpace / 2); + listView.AddChidren(row); + row.InitControl(); + row.frameTable.UseClickStatu = false; + //搴曠嚎 + row.frameTable.AddBottomLine(); - var btnDelete = new RowDeleteButton(); - row.AddRightView(btnDelete); - btnDelete.MouseUpEventHandler += (sender, e) => + //鍒犻櫎鍥炬爣 + var btnDelete = row.frameTable.AddMostRightEmptyIcon(58, 58); + btnDelete.UnSelectedImagePath = "Item/DeleteIcon1.png"; + row.frameTable.ChangedChidrenBindMode(btnDelete, ChidrenBindMode.NotBind); + btnDelete.ButtonClickEvent += (sender, e) => { //鍒犻櫎 string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg); - this.ShowConfirmMsg(msg, "DeleteAlarmTarget", row, data); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎鎶ヨ鐩爣 + this.DeleteAlarmTarget(row, data); + }); }; } - /// <summary> - /// 娣诲姞璁惧琛� - /// </summary> - /// <param name="data"></param> - private void AddDeviceRow(Safeguard.CatActionResponseObj data) - { - //琛屾帶浠� - var row = new SceneRoomViewRow(this.listView, data.ScenesId, data.ESName); + #endregion - var btnDelete = new RowDeleteButton(); - row.AddRightView(btnDelete); - btnDelete.MouseUpEventHandler += (sender, e) => - { - //鍒犻櫎 - string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg); - this.ShowConfirmMsg(msg, "DeleteAlarmTarget", row, data); - }; - } + #region 鈻� 鍒犻櫎鎸囧畾鎶ヨ鐩爣___________________ /// <summary> /// 鍒犻櫎鎸囧畾鎶ヨ鐩爣 /// </summary> /// <param name="row"></param> /// <param name="delObj"></param> - public async void DeleteAlarmTarget(StatuRowLayout row, Safeguard.CatActionResponseObj delObj) + private async void DeleteAlarmTarget(RowLayoutControl row, Safeguard.CatActionResponseObj delObj) { //鍙傛暟 var Pra = new List<Safeguard.DelAlarmActionObj>(); @@ -198,7 +331,7 @@ this.ShowProgressBar(); //鎵ц鍒犻櫎 - bool result = await Common.LocalSafeguard.Current.DeleteAlarmTaget(this.zoonID, Pra); + bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, Pra); //鍏抽棴杩涘害鏉� this.CloseProgressBar(); @@ -211,12 +344,36 @@ Application.RunOnMainThread(() => { //琛岀Щ闄� - row.RemoveFromParent(); - if (listView.ChildrenCount == 0) + row?.RemoveFromParent(); + if (listView != null && listView.ChildrenCount == 0) { - btnTitle.Visible = false; + //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + return; + } + var realHeight = listView.ChildrenCount * listView.GetChildren(listView.ChildrenCount - 1).Height; + if (realHeight < listView.Height) + { + //缂╁皬鎺т欢楂樺害 + listView.Height = realHeight; + //绉诲姩琛屾帶浠� + frameBottomAddRow.Y = this.listView.Bottom; } }); } + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override void FormActionAgainEvent() + { + //閲嶆柊鍒锋柊鐣岄潰 + this.InitMiddleFrame(); + } + + #endregion } } -- Gitblit v1.8.0