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/AddDeviceAlarmTargetListForm.cs | 249 +++++++++++++++++++++++++++++++------------------ 1 files changed, 157 insertions(+), 92 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs index 4b84955..6f72ba9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs @@ -8,12 +8,14 @@ /// <summary> /// 娣诲姞鎶ヨ鐩爣鎸囧畾璁惧绫诲瀷鐨勮澶囧垪琛� /// </summary> - public class AddDeviceAlarmTargetListForm : UserCenterCommonForm + public class AddDeviceAlarmTargetListForm : EditorCommonForm { + #region 鈻� 鍙橀噺澹版槑___________________________ + /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalScrolViewLayout listView = null; + private VerticalListControl listView = null; /// <summary> /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�) /// </summary> @@ -23,13 +25,13 @@ /// </summary> private List<uDeviceInfo> listAllDevice = null; /// <summary> - /// 鐜板瓨鐨勬姤璀︾洰鏍� - /// </summary> - private Dictionary<string, Safeguard.CatActionResponseObj> dicAlarmDevice = null; - /// <summary> /// 闇�瑕佹坊鍔犵殑鎶ヨ璁惧 /// </summary> private Dictionary<string, TaskInfoData> dicSaveDevice = new Dictionary<string, TaskInfoData>(); + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ /// <summary> /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) @@ -45,15 +47,6 @@ //璁剧疆澶撮儴淇℃伅 base.SetTitleText(i_deviceText); - //瀹屾垚 - var btnfinish = new TopLayoutFinshView(); - topFrameLayout.AddChidren(btnfinish); - btnfinish.MouseUpEventHandler += (sender, e) => - { - //淇濆瓨閫夋嫨鐨勮澶� - this.DoSaveSelectDeviceAsync(); - }; - //鍒濆鍖栦腑閮ㄤ俊鎭� this.InitMiddleFrame(i_deviceText); } @@ -64,16 +57,37 @@ /// <param name="titleText">鍒楄〃澶撮儴鍚嶇О</param> private void InitMiddleFrame(string titleText) { - //XXX鍒楄〃 - var btnTitle = new TitleViewControl(); - btnTitle.TextColor = UserCenterColor.Current.TextGrayColor; - btnTitle.Y = Application.GetRealHeight(60); - btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList); - bodyFrameLayout.AddChidren(btnTitle); + //娓呯┖bodyFrame + this.ClearBodyFrame(); - this.listView = new VerticalScrolViewLayout(); - this.listView.Y = btnTitle.Bottom; - this.listView.Height = bodyFrameLayout.Height - btnTitle.Bottom; + //瀹屾垚 + var btnfinish = new BottomClickButton(); + btnfinish.TextID = R.MyInternationalizationString.uFinish; + bodyFrameLayout.AddChidren(btnfinish); + btnfinish.ButtonClickEvent += (sender, e) => + { + //淇濆瓨閫夋嫨鐨勮澶� + this.DoSaveSelectDeviceAsync(); + }; + + //XXX鍒楄〃 + var frameTemp = new FrameLayout(); + frameTemp.Height = Application.GetRealHeight(60 + 52); + frameTemp.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameTemp); + + var btnTitle = new NormalViewControl(850, 60, true); + btnTitle.X = ControlCommonResourse.XXLeft; + btnTitle.Y = Application.GetRealHeight(52); + btnTitle.TextColor = UserCenterColor.Current.TextColor2; + btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList); + btnTitle.TextSize = 15; + frameTemp.AddChidren(btnTitle); + + this.listView = new VerticalListControl(29); + listView.Y = frameTemp.Bottom; + listView.BackgroundColor = UserCenterColor.Current.White; + listView.Height = btnfinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace - frameTemp.Bottom; bodyFrameLayout.AddChidren(this.listView); //璁剧疆涓儴淇℃伅 @@ -87,95 +101,142 @@ { new System.Threading.Thread(() => { - //鑾峰彇鐜板瓨鐨勬姤璀﹁澶� - var listData = Common.LocalSafeguard.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID); - dicAlarmDevice = new Dictionary<string, Safeguard.CatActionResponseObj>(); - foreach (var data in listData) + if (this.Parent == null) { - if (data.Type == 1) - { - //涓嶉渶瑕佸満鏅� - continue; - } - string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); - dicAlarmDevice[mainkeys] = data; + return; } - - foreach (var deviceInfo in listAllDevice) + Application.RunOnMainThread(() => { - //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀� - if (Common.LocalSafeguard.Current.IsAlarmDeviceExist(this.zoonID, deviceInfo.Device) == true) + int count = listAllDevice.Count - 1; + for (int i = 0; i < listAllDevice.Count; i++) { - continue; - } - Application.RunOnMainThread(() => - { + //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀� + if (HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, listAllDevice[i].Device) == true) + { + continue; + } //娣诲姞琛岀洰鏍� - this.AddRowLayout(deviceInfo); - }); - } + this.AddRowLayout(listAllDevice[i], i != count); + } + if (listView.ChildrenCount > 0) + { + int realHeight = (listView.GetChildren(listView.ChildrenCount - 1).Height) * listView.ChildrenCount + Application.GetRealHeight(23); + if (realHeight < listView.Height) + { + //璋冩暣鐪熷疄楂樺害 + listView.Height = realHeight; + } + } + }); }) { IsBackground = true }.Start(); } + + #endregion + + #region 鈻� 娣诲姞琛岀洰鏍嘷________________________ /// <summary> /// 娣诲姞琛岀洰鏍� /// </summary> /// <param name="deviceInfo"></param> - private void AddRowLayout(uDeviceInfo deviceInfo) + /// <param name="addLine"></param> + private void AddRowLayout(uDeviceInfo deviceInfo, bool addLine) { - var row = new DeviceRoomViewRow(this.listView, deviceInfo.Device, deviceInfo.listRoomName); + var row = new DeviceRoomControl(deviceInfo.Device, listView.rowSpace / 2); + listView.AddChidren(row); + row.InitControl(); //娣诲姞鍚戝彸鐨勫浘鏍� - row.AddRightIconControl(); + row.frameTable.AddRightArrow(); + //搴曠嚎 + if (addLine == true) + { + row.frameTable.AddBottomLine(); + } //鐘舵�佹樉绀� - var btnStatu = new RowSecondRightTextView(); - row.AddChidren(btnStatu); - + var btnStatu = row.frameTable.AddMostRightView("", 400); string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device); - List<Safeguard.TaskListInfo> listTaskinfo = null; - if (this.dicAlarmDevice.ContainsKey(mainKeys) == true) + + row.frameTable.ButtonClickEvent += (sender, e) => { - //鏄剧ず鐜板瓨鐨勭姸鎬佹枃鏈� - listTaskinfo = this.dicAlarmDevice[mainKeys].TaskList; - btnStatu.Text = SafeguardLogic.GetLightAlarmStatuText(listTaskinfo); - btnStatu.TextColor = UserCenterColor.Current.Green; + List<Safeguard.TaskListInfo> listTaskinfo = null; + if (dicSaveDevice.ContainsKey(mainKeys) == true) + { + //鍙栫紦瀛樹腑杩樻湭淇濆瓨鐨勬暟鎹� + listTaskinfo = dicSaveDevice[mainKeys].listInfos; + } + + if (deviceInfo.Device.Type == DeviceType.DimmableLight//璋冨厜鍣� + || deviceInfo.Device.Type == DeviceType.ColorDimmableLight)//褰╃伅 + { + var form = new LightAlarmSettionForm(); + form.AddForm(deviceInfo.Device, listTaskinfo); + form.ActionFormClose += (statuText, listInfo) => + { + btnStatu.Text = statuText; + //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨 + this.AddAlarmSettionDataToMemory(deviceInfo, listInfo); + }; + } + else if (deviceInfo.Device.Type == DeviceType.WindowCoveringDevice)//绐楀笜 + { + var form = new CurtainAlarmSettionForm(); + form.AddForm(deviceInfo.Device, listTaskinfo); + form.ActionFormClose += (statuText, listInfo) => + { + btnStatu.Text = statuText; + //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨 + this.AddAlarmSettionDataToMemory(deviceInfo, listInfo); + }; + } + else + { + //鍏朵粬鐩存帴褰掍负寮�鍏崇被 + var form = new SwitchAlarmSettionForm(); + form.AddForm(deviceInfo.Device, listTaskinfo); + form.ActionFormClose += (statuText, listInfo) => + { + btnStatu.Text = statuText; + //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨 + this.AddAlarmSettionDataToMemory(deviceInfo, listInfo); + }; + } + }; + } + + /// <summary> + /// 灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨 + /// </summary> + /// <param name="deviceInfo"></param> + /// <param name="listInfo"></param> + private void AddAlarmSettionDataToMemory(uDeviceInfo deviceInfo, List<Safeguard.TaskListInfo> listInfo) + { + string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device); + if (listInfo == null || listInfo.Count == 0) + { + //鎸囧畾涓烘棤鍔ㄤ綔妯″紡 + if (this.dicSaveDevice.ContainsKey(mainKeys) == true) + { + this.dicSaveDevice.Remove(mainKeys); + } } else { - //鏃犲姩浣� - btnStatu.TextID = R.MyInternationalizationString.uNotAction; - } - row.MouseUpEvent += (sender, e) => - { - var form = new LightAlarmSettionForm(); - this.AddForm(form, deviceInfo.Device, listTaskinfo); - form.formCloseEvent += (statuText, listInfo) => - { - btnStatu.Text = statuText; - if (listInfo == null) - { - //鎸囧畾涓烘棤鍔ㄤ綔妯″紡 - if (this.dicSaveDevice.ContainsKey(mainKeys) == true) - { - this.dicSaveDevice.Remove(mainKeys); - } - btnStatu.TextColor = UserCenterColor.Current.TextColor; - } - else - { - //纭娣诲姞鍔ㄤ綔 - var data = new TaskInfoData(); - this.dicSaveDevice[mainKeys] = data; - data.MacAddress = deviceInfo.Device.DeviceAddr; - data.Epoint = deviceInfo.Device.DeviceEpoint; - data.listInfos = listInfo; + //纭娣诲姞鍔ㄤ綔 + var data = new TaskInfoData(); + this.dicSaveDevice[mainKeys] = data; + data.MacAddress = deviceInfo.Device.DeviceAddr; + data.Epoint = deviceInfo.Device.DeviceEpoint; + data.listInfos.AddRange(listInfo); - btnStatu.TextColor = UserCenterColor.Current.Green; - } - }; - }; + listInfo = null; + } } + + #endregion + + #region 鈻� 淇濆瓨閫夋嫨鐨勮澶嘷______________________ /// <summary> /// 淇濆瓨閫夋嫨鐨勮澶� @@ -205,7 +266,7 @@ this.ShowProgressBar(); //娣诲姞鎶ヨ鐩爣鍒板畨闃� - bool success = await Common.LocalSafeguard.Current.AddAlarmTagetToSafety(this.zoonID, listAction); + bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction); //鍏抽棴杩涘害鏉� this.CloseProgressBar(); @@ -213,13 +274,15 @@ { Application.RunOnMainThread(() => { - //鍒锋柊涓�瑙堢敾闈� - this.LoadFormMethodByName("AlarmTargetSettionForm", "SetMiddleInfo"); //鍏抽棴鑷韩 this.CloseForm(); }); } } + + #endregion + + #region 鈻� 缁撴瀯浣揰______________________________ /// <summary> /// 鎶ヨ鐩爣鏁版嵁 @@ -239,5 +302,7 @@ /// </summary> public List<Safeguard.TaskListInfo> listInfos = new List<Safeguard.TaskListInfo>(); } + + #endregion } } -- Gitblit v1.8.0