using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.GatewayAdd
{
///
/// 网关产品信息的界面
///
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();
bool gateWayExist = HdlGatewayLogic.Current.IsGatewayExist(zbGateway);
//图片
var btnImage = new PicViewControl(855, 570, true);
btnImage.Y = Application.GetRealHeight(58);
btnImage.Gravity = Gravity.CenterHorizontal;
HdlGatewayLogic.Current.SetRealGatewayPictrue(btnImage, zbGateway);
bodyFrameLayout.AddChidren(btnImage);
//初始化桌布
var tableContr = new InformationEditorControl();
var listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 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.uBelongArea);
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(bodyFrameLayout, listview);
if (gateWayExist == true)
{
//更多配置
var btnHelp = new NormalViewControl(bodyFrameLayout.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);
};
bodyFrameLayout.AddChidren(btnHelp);
//底线
int lineWidth = btnHelp.GetRealWidthByText(12);
var btnLine = new NormalViewControl(lineWidth, ControlCommonResourse.BottomLineHeight, false);
btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
btnLine.Gravity = Gravity.CenterHorizontal;
btnLine.Y = btnHelp.Bottom - Application.GetRealHeight(8);
bodyFrameLayout.AddChidren(btnLine);
}
//完成按钮
var btnFinish = new BottomClickButton();
btnFinish.TextID = R.MyInternationalizationString.uFinish;
bodyFrameLayout.AddChidren(btnFinish);
btnFinish.MouseUpEventHandler += (sender, e) =>
{
if (gateWayExist == false)
{
//如果这个网关还没有绑定,则直接关闭界面
this.CloseForm();
}
//完成按钮按下
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 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
}
}