using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.GatewayManage
|
{
|
/// <summary>
|
/// 搜索得到的网关的列表界面
|
/// </summary>
|
public class GatewaySearchListForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 搜索到的网关列表
|
/// </summary>
|
private List<ZbGateway> listZbGateway = null;
|
/// <summary>
|
/// 搜索到的网关类别 0:第一次绑定 1:已经绑定 2:需要换绑
|
/// </summary>
|
private Dictionary<string, int> dicZbGatewayDiv = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_listZbGateway">搜索到的网关列表</param>
|
/// <param name="i_dicZbGatewayDiv">搜索到的网关类别 0:第一次绑定 1:已经绑定 2:需要换绑</param>
|
public void ShowForm(List<ZbGateway> i_listZbGateway, Dictionary<string, int> i_dicZbGatewayDiv)
|
{
|
this.listZbGateway = i_listZbGateway;
|
this.dicZbGatewayDiv = i_dicZbGatewayDiv;
|
|
//设置头部信息
|
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddGateway));
|
|
//初始化中部信息
|
this.InitMiddleFrame();
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
var frameBack = new FrameLayout();
|
frameBack.Height = Application.GetRealHeight(23);
|
frameBack.BackgroundColor = UserCenterColor.Current.White;
|
bodyFrameLayout.AddChidren(frameBack);
|
|
var listView = new VerticalListControl(12);
|
listView.Y = frameBack.Bottom;
|
listView.BackgroundColor = UserCenterColor.Current.White;
|
listView.Height = bodyFrameLayout.Height - frameBack.Height;
|
bodyFrameLayout.AddChidren(listView);
|
|
HdlThreadLogic.Current.RunMainInThread(() =>
|
{
|
//添加网关行
|
for (int i = 0; i < listZbGateway.Count; i++)
|
{
|
this.AddGatewayRow(listView, listZbGateway[i], i != listZbGateway.Count - 1);
|
}
|
listView.AdjustRealHeight(Application.GetRealHeight(23));
|
});
|
}
|
|
#endregion
|
|
#region ■ 添加网关行_________________________
|
|
/// <summary>
|
/// 添加网关行
|
/// </summary>
|
/// <param name="listView"></param>
|
/// <param name="gateway"></param>
|
/// <param name="addLine"></param>
|
private void AddGatewayRow(VerticalListControl listView, ZbGateway gateway, bool addLine)
|
{
|
string gwid = gateway.GwId;
|
if (this.dicZbGatewayDiv[gwid] != 2)
|
{
|
//如果本地没有,那么应该是在之后的编辑界面删除了
|
if (HdlGatewayLogic.Current.IsGatewayExist(gwid) == false)
|
{
|
return;
|
}
|
}
|
|
var frameRow = new RowLayoutControl(listView.rowSpace / 2);
|
listView.AddChidren(frameRow);
|
//图标
|
var btnIcon = frameRow.frameTable.AddLeftIcon(81);
|
HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, gateway);
|
//网关名
|
var wayName = HdlGatewayLogic.Current.GetGatewayName(gateway);
|
if (wayName == string.Empty)
|
{
|
//无法识别的网关设备
|
wayName = Language.StringByID(R.MyInternationalizationString.uUnDistinguishTheGatewayDevice);
|
}
|
if (dicZbGatewayDiv[gwid] == 0)
|
{
|
//xxx(新)
|
wayName += Language.StringByID(R.MyInternationalizationString.uNewTip1);
|
}
|
var btnName = frameRow.frameTable.AddLeftCaption(wayName, 700);
|
btnName.TextSize = 15;
|
//右箭头
|
frameRow.frameTable.AddRightArrow();
|
if (addLine == true)
|
{
|
//底线
|
frameRow.frameTable.AddBottomLine();
|
}
|
if (dicZbGatewayDiv[gwid] == 2)
|
{
|
//需重新绑定
|
frameRow.frameTable.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNeedToRebind), 300);
|
}
|
|
frameRow.frameTable.ButtonClickEvent += (sender, e) =>
|
{
|
if (dicZbGatewayDiv[gwid] == 2)
|
{
|
//确认绑定旧网关?
|
string msg = Language.StringByID(R.MyInternationalizationString.uRebindGatewayMsg);
|
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
|
{
|
var form = new GatewayRebindForm();
|
form.AddForm(gateway, dicZbGatewayDiv);
|
});
|
}
|
else
|
{
|
var form = new GatewayProductInfoForm();
|
form.AddForm(gateway);
|
}
|
};
|
|
//定位
|
var btnPosition = frameRow.AddEditorControl(false);
|
btnPosition.TextID = R.MyInternationalizationString.uFixedPosition;
|
btnPosition.ButtonClickEvent += (sender, e) =>
|
{
|
//发送定位命令
|
HdlGatewayLogic.Current.SetFixedPositionCommand(gateway);
|
};
|
}
|
|
#endregion
|
|
#region ■ 界面重新激活事件___________________
|
|
/// <summary>
|
/// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
|
/// </summary>
|
public override int FormActionAgainEvent()
|
{
|
//初始化中部信息
|
this.InitMiddleFrame();
|
return 1;
|
}
|
|
#endregion
|
|
#region ■ 界面关闭___________________________
|
|
/// <summary>
|
/// 界面关闭
|
/// </summary>
|
public override void CloseFormBefore()
|
{
|
//刷新主页
|
UserView.UserPage.Instance.ReFreshControl();
|
|
base.CloseFormBefore();
|
}
|
|
#endregion
|
}
|
}
|