using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.UserCenter.GatewayAdd { /// /// 编辑新添加的网关信息的画面UI /// public class GatewayInfoAddForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 网关名称控件 /// private FrameCaptionInputControl rowGateway = null; /// /// 网关名字修改后的回调函数 /// public Action ActionGatewayReName = null; /// /// 当前选择的网关 /// private ZbGateway zbGateway = null; /// /// 设备明细列表控件的桌布 /// private DeviceInformationListControl listDeviceControl = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 当前选择的网关 public void ShowForm(ZbGateway i_zbGateway) { this.zbGateway = i_zbGateway; //设置标题信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorGatewayInformation)); //网关定位 var btnIcon = new MostRightIconControl(69, 69); btnIcon.UnSelectedImagePath = "Item/Test.png"; topFrameLayout.AddChidren(btnIcon); btnIcon.InitControl(); btnIcon.ButtonClickEvent += (sender, e) => { //测试 HdlGatewayLogic.Current.SetTestCommand(i_zbGateway); }; //初始化中部控件 this.InitMiddleFrame(); } /// /// 初始化中部控件 /// private void InitMiddleFrame() { //清空bodyFrame this.ClearBodyFrame(); //图片上下的间距(上下间距一致) int picSpcae = Application.GetRealHeight(100); //图片 var btnImage = new PicViewControl(838, 530, true); btnImage.Y = picSpcae; btnImage.Gravity = Gravity.CenterHorizontal; HdlGatewayLogic.Current.SetRealGatewayPictrue(btnImage, zbGateway); bodyFrameLayout.AddChidren(btnImage); //完成按钮 var btnFinish = new BottomClickButton(); btnFinish.TextID = R.MyInternationalizationString.uFinish; bodyFrameLayout.AddChidren(btnFinish); btnFinish.MouseUpEventHandler += (sender, e) => { //完成按钮按下 this.FinishButtonClick(); }; //白色底部背景 var frameBottomWhite = new FrameLayout(); frameBottomWhite.Y = btnFinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace; frameBottomWhite.Height = bodyFrameLayout.Height - btnFinish.Y + ControlCommonResourse.BottomButtonAndListViewSpace; frameBottomWhite.BackgroundColor = UserCenterColor.Current.White; bodyFrameLayout.AddChidren(frameBottomWhite); //将完成按钮置顶 btnFinish.BringToFront(); //自定义的设备列表容器 this.listDeviceControl = new DeviceInformationListControl(); //列表控件最大的高度(完成按钮的Y轴 - 设置的间隔 - 图片Y轴 - 图片的三分之一) int listViewMaxHeight = btnFinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace - btnImage.Y - btnImage.Height / 3; //明细Frame的最小高度(底部frame的Y轴 - 图片底部 - 图片与弧度圆的间距 - 弧度圆高度) int minDetailHeight = frameBottomWhite.Y - btnImage.Bottom - picSpcae - listDeviceControl.halfRoundHeigth; //初始化控件 listDeviceControl.InitControl(bodyFrameLayout, frameBottomWhite.Height, listViewMaxHeight, minDetailHeight, 3); //设备编辑 var btnTitle = new DetailTitleControl(Application.GetRealWidth(800), listDeviceControl.titleHeight, false); btnTitle.TextID = R.MyInternationalizationString.uDeviceEditor; listDeviceControl.AddChidren(btnTitle); //添加全部菜单行 this.AddAllMenuRow(); } #endregion #region ■ 添加全部菜单行_____________________ /// /// 添加全部菜单行 /// private void AddAllMenuRow() { //网关名称 string caption = Language.StringByID(R.MyInternationalizationString.uGatewayName); string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway); this.rowGateway = new FrameCaptionInputControl(caption, nameValue); listDeviceControl.AddChidren(rowGateway); rowGateway.InitControl(); rowGateway.AddBottomLine(); //网关IP caption = Language.StringByID(R.MyInternationalizationString.uGatewayIP); nameValue = HdlGatewayLogic.Current.GetGatewayBaseInfoAttribute(zbGateway, "IpAddress").ToString(); var btnIp = new FrameCaptionViewControl(caption, nameValue); listDeviceControl.AddChidren(btnIp); btnIp.InitControl(); btnIp.txtView.TextColor = UserCenterColor.Current.TextGrayColor; btnIp.AddBottomLine(); //网关类型 caption = Language.StringByID(R.MyInternationalizationString.uGatewayType); nameValue = HdlGatewayLogic.Current.GetGatewayImageText(this.zbGateway); var btnObject = new FrameCaptionViewControl(caption, nameValue); listDeviceControl.AddChidren(btnObject); btnObject.InitControl(); btnObject.txtView.TextColor = UserCenterColor.Current.TextGrayColor; btnObject.AddBottomLine(); } #endregion #region ■ 完成按钮按下_______________________ /// /// 完成按钮按下 /// private void FinishButtonClick() { if (string.IsNullOrEmpty(this.rowGateway.Text) == true) { //请输入网关名称 this.rowGateway.Text = string.Empty; string msg = Language.StringByID(R.MyInternationalizationString.uGatewayNameMastInput); this.ShowMassage(ShowMsgType.Error, msg); return; } string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway); if (nameValue == this.rowGateway.Text) { //同名不需要处理 this.CloseForm(); return; } //修改名字 this.SetGatewayName(this.rowGateway.Text); } #endregion #region ■ 修改名字___________________________ /// /// 设置网关名字 /// /// 网关名称 private async void SetGatewayName(string gatewayName) { //打开进度条 this.ShowProgressBar(); //修改本地网关名 var result = await HdlGatewayLogic.Current.ReName(zbGateway, gatewayName); //关闭进度条 this.CloseProgressBar(); //网关修改失败 if (result == false) { return; } Application.RunOnMainThread(() => { this.ActionGatewayReName?.Invoke(zbGateway); //关闭界面 this.CloseForm(); }); } #endregion #region ■ 关闭界面___________________________ /// /// 画面关闭 /// public override void CloseForm() { this.ActionGatewayReName = null; base.CloseForm(); } #endregion } }