using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter.Safety { /// /// 添加场景的列表界面 /// public class AddSceneAlarmTargetListForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 列表控件 /// private VerticalListControl listView = null; /// /// 防区ID(这个东西似乎是唯一的) /// private int zoonID = 0; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 防区ID /// 现存的场景 public void ShowForm(int i_zoonID, List i_listScene) { this.zoonID = i_zoonID; //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uScence)); //初始化中部信息 this.InitMiddleFrame(i_listScene); } /// /// 初始化中部信息 /// /// 现存的场景 private void InitMiddleFrame(List listScene) { //清空bodyFrame this.ClearBodyFrame(); //完成 var btnfinish = new BottomClickButton(); btnfinish.TextID = R.MyInternationalizationString.uFinish; bodyFrameLayout.AddChidren(btnfinish); btnfinish.ButtonClickEvent += (sender, e) => { //保存场景到安防 this.SaveSceneToSafety(); }; this.listView = new VerticalListControl(29); listView.Y = Application.GetRealHeight(-6); listView.Height = btnfinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace + Application.GetRealHeight(6); listView.BackgroundColor = UserCenterColor.Current.White; bodyFrameLayout.AddChidren(listView); HdlThreadLogic.Current.RunThread(() => { //获取本地安防的场景 Dictionary dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID); if (this.Parent == null) { return; } Application.RunOnMainThread(() => { int count = listScene.Count - 1; for (int i = 0; i < listScene.Count; i++) { //如果安防里面已经添加有,则不再显示 if (dicScene.ContainsKey(listScene[i].sceneUI.Id) == true) { continue; } var row = new SceneSimpleSelectControl(listScene[i].sceneUI, listView.rowSpace / 2); listView.AddChidren(row); row.InitControl(); if (i != count) { //底线 row.AddBottomLine(); } } if (listView.ChildrenCount > 0) { int realHeight = (listView.GetChildren(listView.ChildrenCount - 1).Height) * listView.ChildrenCount + Application.GetRealHeight(23); if (realHeight < listView.Height) { //调整真实高度 listView.Height = realHeight; } } }); }); } #endregion #region ■ 保存场景___________________________ /// /// 保存场景到安防 /// private async void SaveSceneToSafety() { var listAction = new List(); for (int i = 0; ; i++) { var myView = this.listView.GetChildren(i); if (myView == null) { break; } var row = (SceneSimpleSelectControl)myView; if (row.IsSelected == false) { continue; } var actionObj = new Safeguard.AlarmActionObj(); actionObj.Type = 1; actionObj.ScenesId = row.Scene.Id; listAction.Add(actionObj); } if (listAction.Count == 0) { Application.RunOnMainThread(() => { //关闭自身 this.CloseForm(); }); return; } //打开进度条 this.ShowProgressBar(); //添加报警目标到安防 bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction); //关闭进度条 this.CloseProgressBar(); if (success == true) { Application.RunOnMainThread(() => { //关闭自身 this.CloseForm(); }); } } #endregion } }