xm
2020-04-16 6fa9d69da922c8049f5acfcbb9ce9fd26811024c
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayProductInfoForm.cs
New file
@@ -0,0 +1,231 @@
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.GatewayManage
{
    /// <summary>
    /// 网关产品信息的界面
    /// </summary>
    public class GatewayProductInfoForm : EditorCommonForm
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 当前选择的网关
        /// </summary>
        private ZbGateway zbGateway = null;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        /// <param name="i_zbGateway">当前选择的网关</param>
        public void ShowForm(ZbGateway i_zbGateway)
        {
            this.zbGateway = i_zbGateway;
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddGateway));
            //初始化中部控件
            this.InitMiddleFrame();
        }
        /// <summary>
        /// 初始化中部控件
        /// </summary>
        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 btnImage = new PicViewControl(380, 328, true);
            btnImage.Gravity = Gravity.Center;
            btnImage.UnSelectedImagePath = "Gateway/RealGateway.png";
            framePic.AddChidren(btnImage);
            //初始化桌布
            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);
                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 btnType = new FrameCaptionViewControl(caption, string.Empty, listview.rowSpace / 2);
            btnType.UseClickStatu = false;
            listview.AddChidren(btnType);
            btnType.InitControl();
            //划线
            btnType.AddBottomLine();
            HdlGatewayLogic.Current.SetGatewayImageText(btnType.txtView, zbGateway);
            //所属住宅
            caption = Language.StringByID(R.MyInternationalizationString.uBelongResidence);
            var btnBeloneArea = new FrameCaptionViewControl(caption, Common.Config.Instance.Home.Name, listview.rowSpace / 2);
            btnBeloneArea.UseClickStatu = false;
            listview.AddChidren(btnBeloneArea);
            btnBeloneArea.InitControl();
            //划线
            btnBeloneArea.AddBottomLine();
            //完成初始化桌布
            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.AddFromAndRemoveNowForm(form, zbGateway);
                };
                listBackControl.frameTable.AddChidren(btnHelp);
                //底线
                int lineWidth = btnHelp.GetRealWidthByText();
                var btnLine = new NormalViewControl(lineWidth, ControlCommonResourse.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 ■ 完成按钮按下_______________________
        /// <summary>
        /// 完成按钮按下
        /// </summary>
        /// <param name="gwName">网关名字</param>
        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 ■ 修改名字___________________________
        /// <summary>
        /// 设置网关名字
        /// </summary>
        /// <param name="gatewayName">网关名称</param>
        /// <param name="closeForm">关闭界面</param>
        private async void SetGatewayName(string gatewayName, bool closeForm)
        {
            //打开进度条
            this.ShowProgressBar();
            //修改本地网关名
            var result = await HdlGatewayLogic.Current.ReName(zbGateway, gatewayName);
            //关闭进度条
            this.CloseProgressBar();
            //网关修改失败
            if (result == false)
            {
                return;
            }
            if (closeForm == true)
            {
                HdlThreadLogic.Current.RunMain(() =>
                {
                    //关闭自身
                    this.CloseForm();
                    //是否是主页添加
                    if (UserCenterResourse.DicActionForm.ContainsKey("GatewayListForm") == false)
                    {
                        var form = new GatewayAddSuccessForm();
                        form.AddForm();
                    }
                });
            }
        }
        #endregion
    }
}