using System;
using System.Collections.Generic;
using Shared;
using Shared.Common;
using Shared.Phone.Device;
using Shared.R;
using ZigBee.Device;
using Shared.Phone.Device.Logic.LogicView;
namespace Shared.Phone.Device.Logic
{
public class AddLogicPage : FrameLayout
{
public AddLogicPage()
{
Tag = "Logic";
}
public void Show()
{
#region 界面的布局代码
TopView view = new TopView();
this.AddChidren(view.TopRowView());
view.toptitleNameBtn.TextID = MyInternationalizationString.selection;
view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
var middle = new FrameLayout
{
Y = view.topRowLayout.Bottom,
Height = Application.GetRealHeight(Method.H - 184),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
this.AddChidren(middle);
///时间
FunView timeView = new FunView();
timeView.iconBtn.UnSelectedImagePath = "ZigeeLogic/time.png";
timeView.funnameBtn.TextID = MyInternationalizationString.timecondition;
middle.AddChidren(timeView.FunFrameView());
///设备
FunView functionView = new FunView();
functionView.funFrameLayout.Y = timeView.funFrameLayout.Bottom;
functionView.iconBtn.UnSelectedImagePath = "ZigeeLogic/function.png";
functionView.funnameBtn.TextID = MyInternationalizationString.device;
middle.AddChidren(functionView.FunFrameView());
///安防
FunView securityView = new FunView();
securityView.funFrameLayout.Y = functionView.funFrameLayout.Bottom;
securityView.iconBtn.UnSelectedImagePath = "ZigeeLogic/security.png";
securityView.funnameBtn.TextID = MyInternationalizationString.security;
middle.AddChidren(securityView.FunFrameView());
///地理围栏
FunView positionView = new FunView();
positionView.funFrameLayout.Y = securityView.funFrameLayout.Bottom;
positionView.funFrameLayout.Height = Application.GetRealHeight(160+20);//最后一行增加20高度;
positionView.iconBtn.UnSelectedImagePath = "ZigeeLogic/position.png";
positionView.funnameBtn.TextID = MyInternationalizationString.location;
positionView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
middle.AddChidren(positionView.FunFrameView());
#endregion
timeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
TimeView();
};
functionView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
var roomAndDeviceView = new RoomAndDeviceView();
UserView.HomePage.Instance.AddChidren(roomAndDeviceView);
UserView.HomePage.Instance.PageIndex += 1;
roomAndDeviceView.IfType = LogicView.IfString.Condition_Logic;
roomAndDeviceView.Show(Language.StringByID(MyInternationalizationString.devicestate));
};
securityView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
SecurityView(flMain, false);
};
positionView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
LocationView(flMain, false);
};
}
///
/// 安防条件View
///
/// Fl main.
/// If set to true edit.
public static void SecurityView(FrameLayout flMain, bool edit)
{
UserView.HomePage.Instance.ScrollEnabled = false;
Dictionary SecurityConditionsInfo = new Dictionary();
#region ---界面布局部分---
CompleteView completeView = new CompleteView();
flMain.AddChidren(completeView.Show(4));
completeView.Btntitle.TextID = MyInternationalizationString.security;
EventHandler clickcancel = (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;
flMain.RemoveFromParent();
};
flMain.MouseUpEventHandler += clickcancel;
completeView.Btncancel.MouseUpEventHandler += clickcancel;
//在家布防
mFunView athomeView = new mFunView();
athomeView.frameLayout.Y = Application.GetRealHeight(140 + 20);
completeView.Show(4).AddChidren(athomeView.Show());
athomeView.titleBtn.TextID = MyInternationalizationString.logicathomegarrison;
//离家布防
mFunView removeView = new mFunView();
removeView.frameLayout.Y = athomeView.frameLayout.Bottom;
completeView.Show(4).AddChidren(removeView.Show());
removeView.titleBtn.TextID = MyInternationalizationString.logicremovehomegarrison;
//撤防
mFunView withdrawalView = new mFunView();
withdrawalView.frameLayout.Y = removeView.frameLayout.Bottom;
completeView.Show(4).AddChidren(withdrawalView.Show());
withdrawalView.titleBtn.TextID = MyInternationalizationString.withdrawal;
//胁迫撤防
mFunView urgentwithdrawalView = new mFunView();
urgentwithdrawalView.frameLayout.Y = withdrawalView.frameLayout.Bottom;
completeView.Show(4).AddChidren(urgentwithdrawalView.Show());
urgentwithdrawalView.titleBtn.TextID = MyInternationalizationString.urgentwithdrawal;
urgentwithdrawalView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
athomeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.selectedIconBtn.Visible = true;
removeView.selectedIconBtn.Visible = false;
withdrawalView.selectedIconBtn.Visible = false;
urgentwithdrawalView.selectedIconBtn.Visible = false;
};
removeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.selectedIconBtn.Visible = false;
removeView.selectedIconBtn.Visible = true;
withdrawalView.selectedIconBtn.Visible = false;
urgentwithdrawalView.selectedIconBtn.Visible = false;
};
withdrawalView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.selectedIconBtn.Visible = false;
removeView.selectedIconBtn.Visible = false;
withdrawalView.selectedIconBtn.Visible = true;
urgentwithdrawalView.selectedIconBtn.Visible = false;
};
urgentwithdrawalView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
athomeView.selectedIconBtn.Visible = false;
removeView.selectedIconBtn.Visible = false;
withdrawalView.selectedIconBtn.Visible = false;
urgentwithdrawalView.selectedIconBtn.Visible = true;
};
if (edit)
{
foreach (var securityifon in Common.Logic.CurrentLogic.Conditions)
{
if (securityifon["Type"] == "6")
{
if (securityifon["EnOrWithdrawMode"] == "0")
{
if (securityifon["ModeId"] == "1")
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.selectedIconBtn.Visible = true;
removeView.selectedIconBtn.Visible = false;
withdrawalView.selectedIconBtn.Visible = false;
urgentwithdrawalView.selectedIconBtn.Visible = false;
}
else
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.selectedIconBtn.Visible = false;
removeView.selectedIconBtn.Visible = true;
withdrawalView.selectedIconBtn.Visible = false;
urgentwithdrawalView.selectedIconBtn.Visible = false;
}
}
else if (securityifon["EnOrWithdrawMode"] == "1")
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.selectedIconBtn.Visible = false;
removeView.selectedIconBtn.Visible = false;
withdrawalView.selectedIconBtn.Visible = true;
urgentwithdrawalView.selectedIconBtn.Visible = false;
}
else if (securityifon["EnOrWithdrawMode"] == "2")
{
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
removeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
withdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
urgentwithdrawalView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
athomeView.selectedIconBtn.Visible = false;
removeView.selectedIconBtn.Visible = false;
withdrawalView.selectedIconBtn.Visible = false;
urgentwithdrawalView.selectedIconBtn.Visible = true;
}
break;
}
}
}
completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
{
if (!athomeView.selectedIconBtn.Visible && !removeView.selectedIconBtn.Visible && !withdrawalView.selectedIconBtn.Visible && !urgentwithdrawalView.selectedIconBtn.Visible)
{
return;
}
UserView.HomePage.Instance.ScrollEnabled = true;
if (SecurityConditionsInfo.ContainsKey("Type"))
{
SecurityConditionsInfo.Remove("Type");
}
if (SecurityConditionsInfo.ContainsKey("IsValid"))
{
SecurityConditionsInfo.Remove("IsValid");
}
if (SecurityConditionsInfo.ContainsKey("ModeId"))
{
SecurityConditionsInfo.Remove("ModeId");
}
SecurityConditionsInfo.Add("Type", "6");
SecurityConditionsInfo.Add("IsValid", "1");
if (SecurityConditionsInfo.ContainsKey("EnOrWithdrawMode"))
{
SecurityConditionsInfo.Remove("EnOrWithdrawMode");
}
if (SecurityConditionsInfo.ContainsKey("ModeId"))
{
SecurityConditionsInfo.Remove("ModeId");
}
//在家布防
if (athomeView.selectedIconBtn.Visible)
{
SecurityConditionsInfo.Add("EnOrWithdrawMode", "0");
SecurityConditionsInfo.Add("ModeId", "1");
}
//离家布防
if (removeView.selectedIconBtn.Visible)
{
SecurityConditionsInfo.Add("EnOrWithdrawMode", "0");
SecurityConditionsInfo.Add("ModeId", "2");
}
//撤防
if (withdrawalView.selectedIconBtn.Visible)
{
SecurityConditionsInfo.Add("EnOrWithdrawMode", "1");
SecurityConditionsInfo.Add("ModeId", "0");
}
//胁迫撤防
if (urgentwithdrawalView.selectedIconBtn.Visible)
{
SecurityConditionsInfo.Add("EnOrWithdrawMode", "2");
SecurityConditionsInfo.Add("ModeId", "0");
}
LogicIfon.AddSecurityconditions(SecurityConditionsInfo);
var logicCommunalPage = new LogicCommunalPage();
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
UserView.HomePage.Instance.PageIndex += 1;
logicCommunalPage.Show(() => { });
};
}
///
/// 地理围栏View
///
/// Fl main.
/// If set to true edit.
public static void LocationView(FrameLayout flMain, bool edit)
{
UserView.HomePage.Instance.ScrollEnabled = false;
Dictionary LocationConditionsInfo = new Dictionary();
#region ------界面布局部分
CompleteView completeView = new CompleteView();
flMain.AddChidren(completeView.Show(2));
completeView.Btntitle.TextID = MyInternationalizationString.location;
EventHandler clickcancel = (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;
flMain.RemoveFromParent();
};
flMain.MouseUpEventHandler += clickcancel;
completeView.Btncancel.MouseUpEventHandler += clickcancel;
//到达地点
mFunView athomeView = new mFunView();
athomeView.frameLayout.Y = Application.GetRealHeight(140 + 20);
completeView.Show(2).AddChidren(athomeView.Show());
athomeView.titleBtn.TextID = MyInternationalizationString.athome;
//离开地点
mFunView leaveView = new mFunView();
leaveView.frameLayout.Y = athomeView.frameLayout.Bottom;
completeView.Show(2).AddChidren(leaveView.Show());
leaveView.titleBtn.TextID = MyInternationalizationString.leavehome;
leaveView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
string strname = "";
//到达地点点击事件
athomeView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
strname = athomeView.titleBtn.Text;
leaveView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
leaveView.selectedIconBtn.Visible = false;
athomeView.selectedIconBtn.Visible = true;
};
//离开地点点击事件
leaveView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
strname = leaveView.titleBtn.Text;
leaveView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
leaveView.selectedIconBtn.Visible = true;
athomeView.selectedIconBtn.Visible = false;
};
double latitude = Config.Instance.Home.Latitude;//纬度
double longitude = Config.Instance.Home.Longitude;//经度
int r = 500;//半径
if (edit)
{
string guid = "";
foreach (var Locationifon in Common.Logic.CurrentLogic.Conditions)
{
if (Locationifon["Type"] == "7")
{
guid = Locationifon["WhoSiteUId"];
if (Locationifon["AtHome"] == "1")
{
strname = athomeView.titleBtn.Text;
leaveView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
leaveView.selectedIconBtn.Visible = false;
athomeView.selectedIconBtn.Visible = true;
}
else
{
strname = leaveView.titleBtn.Text;
leaveView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
athomeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
leaveView.selectedIconBtn.Visible = true;
athomeView.selectedIconBtn.Visible = false;
}
break;
}
}
foreach (var accounts in Common.Logic.CurrentLogic.Accounts)
{
if (accounts["Type"] == "7" && accounts["Account"] == guid)
{
///转换为double类型;
latitude = Convert.ToDouble(accounts["Latitude"]) / 1000000.0;
longitude = Convert.ToDouble(accounts["Longitude"]) / 1000000.0;
r = int.Parse(accounts["Radius"]);
break;
}
}
}
completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
{
if (!leaveView.selectedIconBtn.Visible && !athomeView.selectedIconBtn.Visible)
{
///可以提示未选中状态;
return;
}
UserView.HomePage.Instance.ScrollEnabled = true;
if (LocationConditionsInfo.ContainsKey("Type"))
{
LocationConditionsInfo.Remove("Type");
}
if (LocationConditionsInfo.ContainsKey("IsValid"))
{
LocationConditionsInfo.Remove("IsValid");
}
if (LocationConditionsInfo.ContainsKey("WhoSiteUId"))
{
LocationConditionsInfo.Remove("WhoSiteUId");
}
LocationConditionsInfo.Add("Type", "7");
LocationConditionsInfo.Add("IsValid", "1");
LocationConditionsInfo.Add("WhoSiteUId", Config.Instance.Guid);
if (leaveView.selectedIconBtn.Visible)
{
if (LocationConditionsInfo.ContainsKey("AtHome"))
{
LocationConditionsInfo.Remove("AtHome");
}
LocationConditionsInfo.Add("AtHome", "0");
}
else
{
if (LocationConditionsInfo.ContainsKey("AtHome"))
{
LocationConditionsInfo.Remove("AtHome");
}
LocationConditionsInfo.Add("AtHome", "1");
}
//调用方法,跳转页面
GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
{
//截取字符串后第6位;
//var len = name.Substring(name.Length - 6, 6);
//点击保存按钮,回调当前选择的纬度,经度,半径范围
var latitudW = (int)Math.Truncate(mLatitude * 1000000);
var longitudeH = (int)Math.Truncate(mLongitude * 1000000);
Dictionary accounts = new Dictionary();
if (accounts.ContainsKey("Account"))
{
accounts.Remove("Account");
}
if (accounts.ContainsKey("Type"))
{
accounts.Remove("Type");
}
if (accounts.ContainsKey("Latitude"))
{
accounts.Remove("latitude");
}
if (accounts.ContainsKey("Longitude"))
{
accounts.Remove("Longitude");
}
if (accounts.ContainsKey("Radius"))
{
accounts.Remove("radius");
}
accounts.Add("Account", Config.Instance.Guid);
accounts.Add("Type", "7");
accounts.Add("Latitude", latitudW.ToString());
accounts.Add("Longitude", longitudeH.ToString());
accounts.Add("Radius", mRadius.ToString());
LogicIfon.Addaccounts(accounts);
LogicIfon.AddLocationconditions(LocationConditionsInfo);
var logicCommunalPage = new LogicCommunalPage();
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
UserView.HomePage.Instance.PageIndex += 1;
logicCommunalPage.Show(() => { });
}, strname, Language.StringByID(R.MyInternationalizationString.uSave), true, latitude, longitude, r);
};
}
///
/// 时间条件View
///
void TimeView()
{
UserView.HomePage.Instance.ScrollEnabled = false;
Dictionary SecurityConditionsInfo = new Dictionary();
#region ------界面布局部分
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
this.AddChidren(flMain);
CompleteView completeView = new CompleteView();
flMain.AddChidren(completeView.Show(2));
completeView.Btntitle.TextID = MyInternationalizationString.type;
EventHandler clickcancel = (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;
flMain.RemoveFromParent();
};
flMain.MouseUpEventHandler += clickcancel;
completeView.Btncancel.MouseUpEventHandler += clickcancel;
//立即执行
mFunView timepointView = new mFunView();
timepointView.frameLayout.Y = Application.GetRealHeight(140 + 20);
completeView.Show(2).AddChidren(timepointView.Show());
timepointView.titleBtn.TextID = MyInternationalizationString.immediateexecution;
//时间范围
mFunView timeView = new mFunView();
timeView.frameLayout.Y = timepointView.frameLayout.Bottom;
completeView.Show(2).AddChidren(timeView.Show());
timeView.titleBtn.TextID = MyInternationalizationString.timeframe;
timeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
#endregion
//立即执行点击事件
timepointView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
timeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
timepointView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
timeView.selectedIconBtn.Visible = false;
timepointView.selectedIconBtn.Visible = true;
};
//时间范围点击事件
timeView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
timeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
timepointView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
timeView.selectedIconBtn.Visible = true;
timepointView.selectedIconBtn.Visible = false;
};
completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
{
if (!timepointView.selectedIconBtn.Visible && !timeView.selectedIconBtn.Visible)
{
///可以提示未选中状态;
return;
}
UserView.HomePage.Instance.ScrollEnabled = true;
flMain.RemoveFromParent();
if (timepointView.selectedIconBtn.Visible)
{
Dictionary timeConditionsInfo = new Dictionary();
timeConditionsInfo.Add("Type", "0");
timeConditionsInfo.Add("IsValid", "1");
timeConditionsInfo.Add("DateType", "1");
timeConditionsInfo.Add("RemindTime", "0");
timeConditionsInfo.Add("EnDelay", "0");
timeConditionsInfo.Add("DelayTime", "0");
timeConditionsInfo.Add("AdjustTime", "0");
var timePoint = new TimePoint();
UserView.HomePage.Instance.AddChidren(timePoint);
UserView.HomePage.Instance.PageIndex += 1;
timePoint.Show(timeConditionsInfo);
}
else
{
var timePage = new TimePage();
UserView.HomePage.Instance.AddChidren(timePage);
UserView.HomePage.Instance.PageIndex += 1;
timePage.Show();
}
};
}
}
}