using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter.GatewayManage { /// /// 网关产品信息的界面 /// public class GatewayProductInfoForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 当前选择的网关 /// private ZbGateway zbGateway = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 当前选择的网关 public void ShowForm(ZbGateway i_zbGateway) { this.zbGateway = i_zbGateway; //设置标题信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddGateway)); //初始化中部控件 this.InitMiddleFrame(); } /// /// 初始化中部控件 /// private void InitMiddleFrame() { //清空bodyFrame this.ClearBodyFrame(); var listBackControl = new VerticalFrameControl(); listBackControl.Height = bodyFrameLayout.Height; bodyFrameLayout.AddChidren(listBackControl); bool gateWayExist = HdlGatewayLogic.Current.IsGatewayExist(zbGateway); var framePic = new FrameLayout(); framePic.Width = Application.GetRealWidth(855); framePic.Height = Application.GetRealHeight(570); framePic.Gravity = Gravity.CenterHorizontal; framePic.Y = Application.GetRealHeight(58); listBackControl.frameTable.AddChidren(framePic); var linuxImageType = this.zbGateway.LinuxImageType.ToString(); var imageFile = "Gateway/RealGateway" + linuxImageType + ".png"; imageFile = IO.FileUtils.GetImageFilePath(imageFile); if (imageFile == string.Empty) { //如果没有指定的网关的真实图片的话,则用共通图片 imageFile = IO.FileUtils.GetImageFilePath("Gateway/RealGateway.png"); } #if Android //设备图片 var bim = Android.Graphics.BitmapFactory.DecodeFile(imageFile); var btnpictrue = new PicViewControl(bim.Width, bim.Height); #endif #if iOS //设备图片 var bim = UIKit.UIImage.FromFile(imageFile); var btnpictrue = new PicViewControl((int)bim.Size.Width, (int)bim.Size.Height); #endif bim.Dispose(); bim = null; //图片 btnpictrue.Gravity = Gravity.Center; btnpictrue.UnSelectedImagePath = imageFile; framePic.AddChidren(btnpictrue); //初始化桌布 var tableContr = new InformationEditorControl(); var listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028); //设备备注(如果这个网关没有绑定的话,只允许查看,不能更改) string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); string deviceName = HdlGatewayLogic.Current.GetGatewayName(zbGateway); FrameCaptionInputControl btnGateName = null; if (gateWayExist == true) { btnGateName = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2); btnGateName.txtInput.MaxByte = 32;//限制只能输入32个字节 listview.AddChidren(btnGateName); btnGateName.InitControl(); //划线 btnGateName.AddBottomLine(); btnGateName.txtInput.FinishInputEvent += () => { string oldName = HdlGatewayLogic.Current.GetGatewayName(zbGateway); if (btnGateName.Text == string.Empty) { btnGateName.Text = oldName; } if (oldName != btnGateName.Text) { //修改名字 this.SetGatewayName(btnGateName.Text, false); } }; } else { var btnNote = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2); btnNote.UseClickStatu = false; listview.AddChidren(btnNote); btnNote.InitControl(); //划线 btnNote.AddBottomLine(); } //设备类型 (固定智能网关) caption = Language.StringByID(R.MyInternationalizationString.uDeviceType); var infoContent = HdlDeviceCommonLogic.Current.GetDeviceModelIdNameInfo("1"); var btnType = new FrameCaptionViewControl(caption, infoContent != null ? infoContent.A类型名字 : string.Empty, listview.rowSpace / 2); btnType.UseClickStatu = false; listview.AddChidren(btnType); btnType.InitControl(); //划线 btnType.AddBottomLine(); //安装位置 var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2); listview.AddChidren(rowBeloneArea); rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.zbGateway); //底线 rowBeloneArea.AddBottomLine(); rowBeloneArea.SelectRoomEvent += (roomKeys) => { //变更网关房间 HdlRoomLogic.Current.ChangedGatewayRoom(this.zbGateway.GwId, roomKeys); }; //完成初始化桌布 tableContr.FinishInitControl(); if (gateWayExist == true) { //更多配置 var btnHelp = new NormalViewControl(listBackControl.frameTable.Width, Application.GetRealHeight(49), false); btnHelp.Y = Application.GetRealHeight(1388); btnHelp.TextSize = 12; btnHelp.TextAlignment = TextAlignment.Center; btnHelp.TextColor = UserCenterColor.Current.TextOrangeColor; btnHelp.Text = Language.StringByID(R.MyInternationalizationString.uMoreSettion); btnHelp.ButtonClickEvent += (sender, e) => { var form = new GatewayManage.GatewayInfoEditorForm(); this.AddFormAndCloseNowForm(form, zbGateway); }; listBackControl.frameTable.AddChidren(btnHelp); //底线 int lineWidth = btnHelp.GetRealWidthByText(); var btnLine = new NormalViewControl(lineWidth, HdlControlResourse.BottomLineHeight, false); btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; btnLine.Gravity = Gravity.CenterHorizontal; btnLine.Y = btnHelp.Bottom - Application.GetRealHeight(8); listBackControl.frameTable.AddChidren(btnLine); } //完成按钮 var btnFinish = new BottomClickButton(); btnFinish.TextID = R.MyInternationalizationString.uFinish; bodyFrameLayout.AddChidren(btnFinish); btnFinish.MouseUpEventHandler += (sender, e) => { if (gateWayExist == false) { //如果这个网关还没有绑定,则直接关闭界面 this.CloseForm(); return; } //完成按钮按下 this.FinishButtonClick(btnGateName.Text); }; } #endregion #region ■ 完成按钮按下_______________________ /// /// 完成按钮按下 /// /// 网关名字 private void FinishButtonClick(string gwName) { if (string.IsNullOrEmpty(gwName) == true) { //请输入网关名称 string msg = Language.StringByID(R.MyInternationalizationString.uGatewayNameMastInput); this.ShowMassage(ShowMsgType.Error, msg); return; } HdlThreadLogic.Current.RunThread(() => { //修改名字 this.SetGatewayName(gwName, true); }); } #endregion #region ■ 修改名字___________________________ /// /// 设置网关名字 /// /// 网关名称 /// 关闭界面 private void SetGatewayName(string gatewayName, bool closeForm) { //打开进度条 this.ShowProgressBar(); //修改本地网关名 var result = HdlGatewayLogic.Current.ReName(zbGateway, gatewayName); //关闭进度条 this.CloseProgressBar(); //网关修改失败 if (result == false) { return; } if (closeForm == true) { HdlThreadLogic.Current.RunMain(() => { //关闭自身 this.CloseForm(); //是否是主页添加 if (HdlFormLogic.Current.IsFormOpen("GatewayListForm") == false) { var form = new GatewayAddSuccessForm(); form.AddForm(); } }); } } #endregion } }