using System;
namespace Shared.Phone.UserCenter.GatewayAdd
{
///
/// 添加网关的选择画面
///
public class NewGateWayMenuSelectForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 是否显示提示设置住宅地理位置
///
private bool showSettion = true;
///
/// 提示的FrameLayout
///
private FrameLayout frameTip = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
public void ShowForm()
{
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddGateway));
//初始化中部信息
this.InitMiddleFrame();
}
///
/// 初始化中部信息
///
private void InitMiddleFrame()
{
//清空bodyFrame
this.ClearBodyFrame();
var listView = new VerticalListControl(29);
listView.Height = bodyFrameLayout.Height;
listView.BackgroundColor = UserCenterColor.Current.White;
bodyFrameLayout.AddChidren(listView);
//有线网关
var row1 = new FrameRowControl(listView.rowSpace / 2);
listView.AddChidren(row1);
var btnIcon1 = row1.AddLeftIcon(81);
btnIcon1.UnSelectedImagePath = "Gateway/WiredGateway.png";
var btntext1 = row1.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uWiredGateway), 500);
btntext1.TextSize = 15;
row1.AddRightArrow();
row1.AddBottomLine();
row1.ButtonClickEvent += (sender, e) =>
{
//菜单按钮的点击事件
this.MenuButtonClickEvent(1);
};
//无线网关
var row2 = new FrameRowControl(listView.rowSpace / 2);
listView.AddChidren(row2);
var btnIcon2 = row2.AddLeftIcon(81);
btnIcon2.UnSelectedImagePath = "Gateway/WirelessGateway.png";
var btntext2 = row2.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uWirelessGateway), 500);
btntext2.TextSize = 15;
row2.AddRightArrow();
row2.AddBottomLine();
row2.ButtonClickEvent += (sender, e) =>
{
//菜单按钮的点击事件
this.MenuButtonClickEvent(2);
};
//Mini网关
var row3 = new FrameRowControl(listView.rowSpace / 2);
listView.AddChidren(row3);
var btnIcon3 = row3.AddLeftIcon(81);
btnIcon3.UnSelectedImagePath = "Gateway/MiniGateway.png";
var btntext3 = row3.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uMiniGateway), 500);
btntext3.TextSize = 15;
row3.AddRightArrow();
row3.ButtonClickEvent += (sender, e) =>
{
//菜单按钮的点击事件
this.MenuButtonClickEvent(3);
};
listView.AdjustRealHeight(Application.GetRealHeight(23));
//如果还没有设置地理位置
if (Common.Config.Instance.Home.Latitude == 0 && Common.Config.Instance.Home.Longitude == 0)
{
this.frameTip = new FrameLayout();
frameTip.X = Application.GetRealWidth(179);
frameTip.Y = Application.GetRealHeight(1426);
frameTip.Height = Application.GetRealHeight(100);
frameTip.Width = Application.GetRealWidth(714);
bodyFrameLayout.AddChidren(frameTip);
var btnIcon = new IconViewControl(58);
btnIcon.UnSelectedImagePath = "Item/Tips.png";
frameTip.AddChidren(btnIcon);
//如果不设置住宅的地理位置,则会影响自动化地理围栏功能的设置
var btnTip = new NormalViewControl(Application.GetRealWidth(636), Application.GetRealHeight(100), false);
btnTip.X = btnIcon.Right + Application.GetRealWidth(20);
btnTip.TextAlignment = TextAlignment.Center;
btnTip.TextColor = UserCenterColor.Current.TextGrayColor1;
btnTip.TextSize = 12;
btnTip.IsMoreLines = true;
btnTip.Text = Language.StringByID(R.MyInternationalizationString.uNotSetLocationWillAffectTheAutomaticGeofencingFunction);
frameTip.AddChidren(btnTip);
}
}
#endregion
#region ■ 按键点击___________________________
///
/// 菜单按钮的点击事件
///
/// 1:有线网关 2:无线网关 3:mini网关
private void MenuButtonClickEvent(int menuDiv)
{
//只弹一次
if (this.showSettion == true && Common.Config.Instance.Home.Latitude == 0 && Common.Config.Instance.Home.Longitude == 0)
{
this.showSettion = false;
//请前往住宅管理{0}设置住宅的地理位置
string msg = Language.StringByID(R.MyInternationalizationString.uGotoResidenceAndSetLocation).Replace("{0}", "\r\n");
var alert = new ShowMsgControl(ShowMsgType.Confirm, msg,
Language.StringByID(R.MyInternationalizationString.uGotoSettion),
Language.StringByID(R.MyInternationalizationString.uNeglect));
alert.Show();
//忽略
alert.CancelClickEvent += () =>
{
//显示指定的界面
this.ShowFormByMenuDiv(menuDiv);
};
//去设置
alert.ConfirmClickEvent += () =>
{
var form = new Residence.ResidenceManagementForm();
form.AddForm(false);
};
return;
}
//显示指定的界面
this.ShowFormByMenuDiv(menuDiv);
}
///
/// 显示指定的界面
///
/// 1:有线网关 2:无线网关 3:mini网关
private void ShowFormByMenuDiv(int menuDiv)
{
if (menuDiv == 1)
{
var form = new WiredGatewayDirectionForm();
form.AddForm();
}
else if (menuDiv == 2)
{
var menuContr = new BottomMenuSelectForm();
menuContr.AddForm(2);
//UDP模式(推荐)
menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uUdpModeRecommend), () =>
{
var form = new WirelessUdpDirectionForm();
form.AddForm();
});
//AP模式
menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uApMode), () =>
{
var form = new WirelessApDirection1Form();
form.AddForm();
});
}
else if (menuDiv == 3)
{
var form = new MiniGatewayDirection1Form();
form.AddForm();
}
}
#endregion
#region ■ 一般方法___________________________
///
/// 检测住宅经纬度
///
///
private bool CheckResidencePoint()
{
//只弹一次
if (this.showSettion == false)
{
return true;
}
this.showSettion = false;
if (Common.Config.Instance.Home.Latitude == 0 && Common.Config.Instance.Home.Longitude == 0)
{
//请前往住宅管理{0}设置住宅的地理位置
string msg = Language.StringByID(R.MyInternationalizationString.uGotoResidenceAndSetLocation).Replace("{0}", "\r\n");
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
{
var form = new Residence.ResidenceManagementForm();
form.AddForm(false);
}, Language.StringByID(R.MyInternationalizationString.uGotoSettion));
return false;
}
return true;
}
#endregion
#region ■ 界面重新激活事件___________________
///
/// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
///
public override int FormActionAgainEvent()
{
if (frameTip == null)
{
return 0;
}
if (Common.Config.Instance.Home.Latitude != 0 || Common.Config.Instance.Home.Longitude != 0)
{
//移除掉提示
frameTip.RemoveFromParent();
return 1;
}
return 1;
}
#endregion
}
}