using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter.Safety { /// /// 添加报警目标(场景)的列表界面 /// public class AlarmTargetAddSceneForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 列表控件 /// private VerticalListControl listView = null; /// /// 防区ID(这个东西似乎是唯一的) /// private int zoonID = 0; /// /// 选择的场景 /// private Dictionary dicSelectScene = new Dictionary(); #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(); this.listView = new VerticalListControl(29); listView.Y = Application.GetRealHeight(-6); listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6); listView.BackgroundColor = UserCenterColor.Current.White; bodyFrameLayout.AddChidren(listView); HdlThreadLogic.Current.RunThread(() => { //获取本地安防的场景 Dictionary dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID); HdlThreadLogic.Current.RunMain(() => { int count = listScene.Count - 1; for (int i = 0; i < listScene.Count; i++) { //如果安防里面已经添加有,则不再显示 if (dicScene.ContainsKey(listScene[i].Id) == true) { continue; } //添加行 this.AddRowControl(listScene[i], i != count); } //调整真实高度 listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23)); }); }); //完成 var btnfinish = new BottomClickButton(); btnfinish.TextID = R.MyInternationalizationString.uFinish; bodyFrameLayout.AddChidren(btnfinish); btnfinish.ButtonClickEvent += (sender, e) => { if (this.dicSelectScene.Count == 0) { //关闭界面 this.CloseForm(); return; } //保存场景到安防 this.SaveSceneToSafety(); }; } #endregion #region ■ 添加行_____________________________ /// /// 添加行 /// /// /// private void AddRowControl(Common.SceneUI scene, bool addLine) { var rowContr = new FrameRowControl(listView.rowSpace / 2); listView.AddChidren(rowContr); //图标 var btnIcon = rowContr.AddLeftIcon(81); btnIcon.UnSelectedImagePath = "Scene/SceneIcon.png"; //场景名 var btnName = rowContr.AddLeftCaption(scene.Name, 700); btnName.TextSize = 15; //选择 var btnSelect = rowContr.AddMostRightEmptyIcon(58, 58); btnSelect.Visible = false; btnSelect.UnSelectedImagePath = "Item/ItemSelected.png"; if (addLine == true) { //底线 rowContr.AddBottomLine(); } rowContr.ButtonClickEvent += (sender, e) => { btnSelect.Visible = !btnSelect.Visible; if (btnSelect.Visible == true) { dicSelectScene[scene.Id] = scene; } else { dicSelectScene.Remove(scene.Id); } }; } #endregion #region ■ 保存场景___________________________ /// /// 保存场景到安防 /// private async void SaveSceneToSafety() { var listAction = new List(); foreach (var scene in this.dicSelectScene.Values) { var actionObj = new Safeguard.AlarmActionObj(); actionObj.Type = 1; actionObj.ScenesId = scene.Id; listAction.Add(actionObj); } //添加报警目标到安防 bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction); if (success == true) { //关闭自身 this.CloseForm(); } } #endregion } }