using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.Safety
|
{
|
/// <summary>
|
/// 添加场景的列表界面
|
/// </summary>
|
public class AddSceneAlarmTargetListForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalListControl listView = null;
|
/// <summary>
|
/// 防区ID(这个东西似乎是唯一的)
|
/// </summary>
|
private int zoonID = 0;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <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;
|
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uScence));
|
|
//初始化中部信息
|
this.InitMiddleFrame(i_listScene);
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
/// <param name="listScene">现存的场景</param>
|
private void InitMiddleFrame(List<Common.SceneRoomUI> 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<int, string> 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 ■ 保存场景___________________________
|
|
/// <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 = (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
|
}
|
}
|