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(); } 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 ■ 界面重新激活事件___________________ /// /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件 /// public override int FormActionAgainEvent() { //初始化中部信息 this.InitMiddleFrame(); return 1; } #endregion #region ■ 界面关闭___________________________ /// /// 界面关闭 /// public override void CloseFormBefore() { //刷新主页 UserView.UserPage.Instance.ReFreshControl(); base.CloseFormBefore(); } #endregion } }