using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.Safety
|
{
|
/// <summary>
|
/// 添加场景的列表界面
|
/// </summary>
|
public class AddSceneAlarmTargetListForm : UserCenterCommonForm
|
{
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalScrolViewLayout listView = null;
|
/// <summary>
|
/// 防区ID(这个东西似乎是唯一的)
|
/// </summary>
|
private int zoonID = 0;
|
/// <summary>
|
/// 本地存在的场景
|
/// </summary>
|
private List<Common.SceneRoomUI> listScene = null;
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_zoonID">防区ID</param>
|
/// <param name="i_listScene">现存的场景</param>
|
public void ShowForm(int i_zoonID, List<Common.SceneRoomUI> i_listScene)
|
{
|
this.zoonID = i_zoonID;
|
this.listScene = i_listScene;
|
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uScence));
|
|
//完成
|
var btnfinish = new TopLayoutFinshView();
|
topFrameLayout.AddChidren(btnfinish);
|
btnfinish.MouseUpEventHandler += (sender, e) =>
|
{
|
//保存场景到安防
|
this.SaveSceneToSafety();
|
};
|
|
//初始化中部信息
|
this.InitMiddleFrame();
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//场景列表
|
var btnTitle = new TitleViewControl();
|
btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
|
btnTitle.Y = Application.GetRealHeight(60);
|
btnTitle.Text = Language.StringByID(R.MyInternationalizationString.uScence) + Language.StringByID(R.MyInternationalizationString.uList);
|
bodyFrameLayout.AddChidren(btnTitle);
|
|
this.listView = new VerticalScrolViewLayout();
|
this.listView.Y = btnTitle.Bottom;
|
this.listView.Height = bodyFrameLayout.Height - btnTitle.Bottom;
|
bodyFrameLayout.AddChidren(this.listView);
|
|
new System.Threading.Thread(() =>
|
{
|
//获取本地安防的场景
|
Dictionary<int, string> dicScene = Common.LocalSafeguard.Current.GetLocalSceneByZoneID(this.zoonID);
|
foreach (var scene in this.listScene)
|
{
|
//如果安防里面已经添加有,则不再显示
|
if (dicScene.ContainsKey(scene.sceneUI.Id) == true)
|
{
|
continue;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
//添加场景行
|
this.AddSceneRowLayout(scene);
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 添加场景行
|
/// </summary>
|
/// <param name="i_Scene"></param>
|
private void AddSceneRowLayout(Common.SceneRoomUI i_Scene)
|
{
|
var row = new SceneSelectRow(this.listView, i_Scene);
|
}
|
|
/// <summary>
|
/// 保存场景到安防
|
/// </summary>
|
private async void SaveSceneToSafety()
|
{
|
var listAction = new List<Safeguard.AlarmActionObj>();
|
|
for (int i = 0; ; i++)
|
{
|
var myView = this.listView.GetChildren(i);
|
if (myView == null)
|
{
|
break;
|
}
|
var row = (SceneSelectRow)myView;
|
if (row.IsSelected == false)
|
{
|
continue;
|
}
|
var actionObj = new Safeguard.AlarmActionObj();
|
actionObj.Type = 1;
|
actionObj.ScenesId = row.sceneRoomUI.sceneUI.Id;
|
listAction.Add(actionObj);
|
}
|
if (listAction.Count == 0)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
//关闭自身
|
this.CloseForm();
|
});
|
return;
|
}
|
|
//打开进度条
|
this.ShowProgressBar();
|
|
//添加报警目标到安防
|
bool success = await Common.LocalSafeguard.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
|
//关闭进度条
|
this.CloseProgressBar();
|
|
if (success == true)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
//刷新一览画面
|
this.LoadFormMethodByName("AlarmTargetSettionForm", "SetMiddleInfo");
|
//关闭自身
|
this.CloseForm();
|
});
|
}
|
}
|
}
|
}
|