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
}
}