using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.GatewayManage
{
///
/// 搜索得到的网关的列表界面
///
public class GatewaySearchListForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 搜索到的网关列表
///
private List listZbGateway = null;
///
/// 搜索到的网关类别 0:第一次绑定 1:已经绑定 2:需要换绑
///
private Dictionary dicZbGatewayDiv = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 搜索到的网关列表
/// 搜索到的网关类别 0:第一次绑定 1:已经绑定 2:需要换绑
public void ShowForm(List i_listZbGateway, Dictionary i_dicZbGatewayDiv)
{
this.listZbGateway = i_listZbGateway;
this.dicZbGatewayDiv = i_dicZbGatewayDiv;
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddGateway));
//初始化中部信息
this.InitMiddleFrame();
}
///
/// 初始化中部信息
///
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 ■ 添加网关行_________________________
///
/// 添加网关行
///
///
///
///
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();
}
frameRow.frameTable.ButtonClickEvent += (sender, e) =>
{
var form = new GatewayProductInfoForm();
form.AddForm(gateway);
};
if (dicZbGatewayDiv[gwid] == 2)
{
//换绑
var btnBind = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
btnBind.BackgroundColor = 0xfffb744a;
btnBind.TextAlignment = TextAlignment.Center;
btnBind.TextColor = UserCenterColor.Current.White;
btnBind.TextSize = 12;
btnBind.TextID = R.MyInternationalizationString.uReBindAgain;
frameRow.AddRightView(btnBind);
btnBind.ButtonClickEvent += (sender, e) =>
{
//确认绑定旧网关?
string msg = Language.StringByID(R.MyInternationalizationString.uRebindGatewayMsg);
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
{
var form = new GatewayRebindForm();
form.AddForm(gateway, dicZbGatewayDiv);
});
};
}
//定位
var btnPosition = frameRow.AddEditorControl(false);
btnPosition.TextID = R.MyInternationalizationString.uFixedPosition;
btnPosition.ButtonClickEvent += (sender, e) =>
{
//发送定位命令
HdlGatewayLogic.Current.SetFixedPositionCommand(gateway);
};
}
#endregion
#region ■ 界面重新激活事件___________________
///
/// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
///
public override int FormActionAgainEvent()
{
//初始化中部信息
this.InitMiddleFrame();
return 1;
}
#endregion
#region ■ 界面关闭___________________________
///
/// 界面关闭
///
public override void CloseFormBefore()
{
var userPageForm = UserView.UserPage.Instance.GetNowActionForm();
if (userPageForm != null && userPageForm.FormID == "UserMainForm")
{
//刷新主页
UserView.UserPage.Instance.ReFreshControl();
}
base.CloseFormBefore();
}
#endregion
}
}