using System; using ZigBee.Device; using System.Collections.Generic; namespace Shared.Phone.UserCenter.Gateway { /// /// 编辑网关信息的画面UI★ /// public class GatewayInfoEditorForm : UserCenterCommonForm { #region ■ 变量声明___________________________ /// /// 网关名称 /// private RowBottomBlackView txtGateway = null; /// /// 列表控件 /// private VerticalScrolViewLayout listView = null; /// /// 当前选择的网关 /// private ZbGateway zbGateway = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 当前选择的网关 public void ShowForm(ZbGateway i_zbGateway) { this.zbGateway = i_zbGateway; //设置标题信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorGatewayInformation)); //网关定位 var btnIcon = new TopLayoutMostRightView(); btnIcon.UnSelectedImagePath = "Item/Test.png"; btnIcon.SelectedImagePath = "Item/TestSelected.png"; topFrameLayout.AddChidren(btnIcon); btnIcon.MouseUpEventHandler += (sender, e) => { //测试 Common.LocalGateway.Current.SetTestCommand(i_zbGateway); }; //初始化中部控件 this.InitMiddleFrame(); } /// /// 初始化中部控件 /// private void InitMiddleFrame() { bodyFrameLayout.RemoveAll(); //图片 var btnImage = new PicViewControl(915, 492, true); btnImage.Y = Application.GetRealHeight(10); btnImage.Gravity = Gravity.CenterHorizontal; Common.LocalGateway.Current.SetRealGatewayPictrue(btnImage, zbGateway); bodyFrameLayout.AddChidren(btnImage); listView = new VerticalScrolViewLayout(); listView.Y = btnImage.Bottom + Application.GetRealHeight(20); listView.Height = bodyFrameLayout.Height - btnImage.Bottom - Application.GetRealHeight(20); bodyFrameLayout.AddChidren(listView); //网关名称 string caption = Language.StringByID(R.MyInternationalizationString.uGatewayName); var btnGateway = new EditorNameValueRow(caption, Common.LocalGateway.Current.GetGatewayName(zbGateway)); listView.AddChidren(btnGateway); btnGateway.InitControl(); //请输入网关名称 btnGateway.SetEmptyNameTip(Language.StringByID(R.MyInternationalizationString.uGatewayNameMastInput)); //编辑网关名称 btnGateway.SetDialogTitle(Language.StringByID(R.MyInternationalizationString.uEditorGatewayName)); btnGateway.ActionNameChangedEvent += (gatewayName) => { //设置网关名称 this.SetGatewayName(gatewayName); }; this.txtGateway = btnGateway.btnName; //添加网关IP行 this.AddGatewayIpRow(); //添加网关类型行 this.AddGatewayObjectRow(); //添加固件信息行 this.AddHardWareInfoRow(); } #endregion #region ■ 添加网关IP行_______________________ /// /// 添加网关IP行 /// private void AddGatewayIpRow() { //网关ip行 var rowIp = new RowLayout(); rowIp.Height = ControlCommonResourse.ListViewRowHeight; listView.AddChidren(rowIp); //网关ip var btnIpView = new RowTopGrayView(false); btnIpView.TextID = R.MyInternationalizationString.uGatewayIP; rowIp.AddChidren(btnIpView); var btnIp = new RowBottomBlackView(false); var ipValue = Common.LocalGateway.Current.GetGatewayBaseInfoAttribute(zbGateway, "IpAddress"); btnIp.Text = ipValue.ToString(); rowIp.AddChidren(btnIp); var btnFlage = new RowMostRightTextView(); btnFlage.Gravity = Gravity.Frame; btnFlage.Y = btnIp.Y; btnFlage.TextColor = UserCenterColor.Current.TextGrayColor; int result = Common.LocalGateway.Current.IsMainGateway(this.zbGateway); if (result == 1) { //主网关 btnFlage.Text += Language.StringByID(R.MyInternationalizationString.uMainGateway); } else if (result == 0) { //子网关 btnFlage.Text += Language.StringByID(R.MyInternationalizationString.uChidrenGateway); } rowIp.AddChidren(btnFlage); } #endregion #region ■ 添加网关类型行_____________________ /// /// 添加网关类型行 /// private void AddGatewayObjectRow() { //网关类型行 var rowIp = new RowLayout(); rowIp.Height = ControlCommonResourse.ListViewRowHeight; listView.AddChidren(rowIp); //网关类型 var btnView = new RowTopGrayView(false); btnView.TextID = R.MyInternationalizationString.uGatewayType; rowIp.AddChidren(btnView); var btnObj = new RowBottomBlackView(false); btnObj.Text = Common.LocalGateway.Current.GetGatewayImageText(this.zbGateway); rowIp.AddChidren(btnObj); } #endregion #region ■ 添加固件信息行_____________________ /// /// 添加固件信息行 /// private void AddHardWareInfoRow() { var rowInfo = new StatuRowLayout(listView); //固件信息 var btnInfo = new RowCenterView(false); btnInfo.TextID = R.MyInternationalizationString.uFirmwareInformation; rowInfo.AddChidren(btnInfo); //向右图标 rowInfo.AddRightIconControl(); //新版本提示控件 var btnNewVersion = new RowNewVersionTipView(); btnNewVersion.Visible = false; rowInfo.AddChidren(btnNewVersion); rowInfo.MouseUpEvent += (sender, e) => { btnNewVersion.Visible = false; var form = new GatewayFirmwareInfoForm(); this.AddForm(form, zbGateway); }; //检测新版本 this.CheckNewVersion(btnNewVersion); } /// /// 检测新版本 /// /// 提示有新版本的控件 private async void CheckNewVersion(RowNewVersionTipView btnNewVersion) { //打开进度条 this.ShowProgressBar(); //获取网关版本信息 var result = await Common.LocalGateway.Current.GetGatewayAllNewVersion(this.zbGateway); if (result == null) { //关闭进度条 this.CloseProgressBar(ShowReLoadMode.YES); return; } //关闭进度条 this.CloseProgressBar(); Application.RunOnMainThread(() => { //设置网关名称 txtGateway.Text = Common.LocalGateway.Current.GetGatewayName(zbGateway); if (result[0] != null || result[1] != null || result[2] != null) { //提示有新版本 btnNewVersion.Visible = true; } }); } #endregion #region ■ 修改名字___________________________ /// /// 设置网关名字 /// /// 网关名称 private async void SetGatewayName(string gatewayName) { //打开进度条 this.ShowProgressBar(); //修改网关名 var result = await Common.LocalGateway.Current.ReName(zbGateway, gatewayName); //关闭进度条 this.CloseProgressBar(); //网关修改失败 if (result == false) { return; } Application.RunOnMainThread(() => { //网关列表刷新 this.LoadFormMethodByName("GatewayManagementForm", "AddRowLayout", Common.LocalGateway.Current.GetGatewayId(zbGateway)); //变更设备管理界面的网关名字 this.LoadFormMethodByName("DeviceManagementMainForm", "ChangedGatewayName", zbGateway); }); } #endregion } }