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 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 ■ 完成按钮按下_______________________
|
|
/// <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 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
|
}
|
}
|