using System;
|
using System.Collections.Generic;
|
using Shared;
|
using Shared.Common;
|
using Shared.Phone;
|
using Shared.R;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.Device.Logic
|
{
|
public class TimePage : FrameLayout
|
{
|
public TimePage()
|
{
|
Tag = "Logic";
|
}
|
public bool IsEditor;
|
public string str1;
|
|
Dictionary<string, string> timeBucketConditionsInfo = new Dictionary<string, string>();
|
public void Show()
|
{
|
|
#region 最上面的布局代码
|
var topRowLayout = new RowLayout
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
|
Height = Application.GetRealHeight(184),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
|
};
|
this.AddChidren(topRowLayout);
|
|
var titleName = new Button
|
{
|
TextSize = 16,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
X = Application.GetRealWidth(176),
|
Width = Application.GetRealWidth(600),
|
Height = Application.GetRealHeight(69),
|
Y = Application.GetRealHeight(92),
|
TextID = MyInternationalizationString.addtime,
|
};
|
topRowLayout.AddChidren(titleName);
|
|
var clickBtn = new Button
|
{
|
Width = Application.GetRealWidth(81 + 51),
|
Height = Application.GetRealHeight(58 + 40),
|
Y = Application.GetRealHeight(98 - 40),
|
};
|
topRowLayout.AddChidren(clickBtn);
|
clickBtn.MouseDownEventHandler += (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
|
var back = new Button
|
{
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealHeight(51),
|
X = Application.GetRealWidth(81),
|
Y = Application.GetRealHeight(98),
|
//Gravity = Gravity.CenterVertical;
|
UnSelectedImagePath = "ZigeeLogic/back.png",
|
};
|
topRowLayout.AddChidren(back);
|
back.MouseDownEventHandler += (sender, e) => {
|
RemoveFromParent();
|
};
|
#endregion
|
|
|
|
|
#region 最下面的布局代码
|
var middle = new FrameLayout
|
{
|
Y = topRowLayout.Bottom,
|
Height = Application.GetRealHeight(1920 - 184-260),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(middle);
|
|
var fra = new FrameLayout
|
{
|
Y = middle.Bottom,
|
Height = Application.GetRealHeight(260),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(fra);
|
var btnsave = new Button
|
{
|
X = Application.GetRealWidth(85),
|
Height = Application.GetRealHeight(130),//194
|
Width = Application.GetRealWidth(910),
|
Radius = (uint)Application.GetRealHeight(60),
|
BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
|
TextID = MyInternationalizationString.Save,
|
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
|
};
|
fra.AddChidren(btnsave);
|
#endregion
|
|
#region -----时间范围 开始时间 结束时间
|
#region -----时间范围
|
|
|
var typeFramelayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
middle.AddChidren(typeFramelayout);
|
|
|
var typeRowlayout = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
typeFramelayout.AddChidren(typeRowlayout);
|
|
var btnTypeTextTitle = new Button
|
{
|
Text = Language.StringByID(MyInternationalizationString.type),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(265)
|
};
|
typeRowlayout.AddChidren(btnTypeTextTitle);
|
|
|
var btnimmediateexecution = new Button
|
{
|
X = btnTypeTextTitle.Right,
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetRealWidth(630),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
TextID = MyInternationalizationString.timeframe,
|
};
|
typeRowlayout.AddChidren(btnimmediateexecution);
|
|
|
var btnimmediateexecutionBack = new Button
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/next.png",
|
X = btnimmediateexecution.Right + Application.GetRealWidth(12),
|
Gravity = Gravity.CenterVertical,
|
};
|
typeRowlayout.AddChidren(btnimmediateexecutionBack);
|
|
|
#endregion
|
|
#region -----开始时间
|
var timestarFramelayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
Y= typeFramelayout.Bottom,
|
};
|
middle.AddChidren(timestarFramelayout);
|
|
var timestartrow = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
|
};
|
timestarFramelayout.AddChidren(timestartrow);
|
|
var btnstarttimetext = new Button
|
{
|
Text = Language.StringByID(MyInternationalizationString.starttime),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(265)
|
|
};
|
timestartrow.AddChidren(btnstarttimetext);
|
|
var btnstarttime = new Button
|
{
|
X = btnstarttimetext.Right,
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetRealWidth(630),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Tag = "0",
|
};
|
timestartrow.AddChidren(btnstarttime);
|
|
var btnstartback = new Button
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/next.png",
|
X = btnstarttime.Right + Application.GetRealWidth(12),
|
Gravity = Gravity.CenterVertical,
|
};
|
timestartrow.AddChidren(btnstartback);
|
|
#endregion
|
|
#region -----结束时间
|
var timeendFramelayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(160),
|
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
Y = timestarFramelayout.Bottom,
|
};
|
middle.AddChidren(timeendFramelayout);
|
|
var timeendrow = new RowLayout
|
{
|
Y = Application.GetRealHeight(30),
|
Width = Application.GetRealWidth(965),
|
Height = Application.GetRealHeight(130),
|
X = Application.GetRealWidth(58),
|
LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
|
};
|
timeendFramelayout.AddChidren(timeendrow);
|
var btnendtimetext = new Button
|
{
|
Text = Language.StringByID(MyInternationalizationString.endtime),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Width = Application.GetRealWidth(265),
|
|
};
|
timeendrow.AddChidren(btnendtimetext);
|
|
var btnendtime = new Button
|
{
|
X = btnendtimetext.Right,
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetRealWidth(630),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Tag = "0",
|
};
|
timeendrow.AddChidren(btnendtime);
|
|
var btnendtimeback = new Button
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "ZigeeLogic/next.png",
|
X = btnendtime.Right + Application.GetRealWidth(12),
|
Gravity = Gravity.CenterVertical,
|
};
|
timeendrow.AddChidren(btnendtimeback);
|
|
#endregion
|
#endregion
|
|
if (IsEditor)
|
{
|
if (str1 != null)
|
{
|
|
string[] timestr = str1.Split('-');
|
string[] starttime = timestr[0].Split(':');
|
string[] endtime = timestr[1].Split(':');
|
string s1 = "", s2 = "";
|
if (starttime[1].Length < 2)
|
{
|
s1 = "0" + starttime[1];
|
}
|
else
|
{
|
s1 = starttime[1];
|
}
|
if (endtime[1].Length < 2)
|
{
|
s2 = "0" + endtime[1];
|
}
|
else
|
{
|
s2 = endtime[1];
|
}
|
btnstarttime.Text = starttime[0] + ":" + s1;
|
btnendtime.Text =endtime[0] + ":" + s2;
|
|
//btnstarttime.Text = timestr[0];
|
//btnendtime.Text = timestr[1];
|
if (timeBucketConditionsInfo.ContainsKey("StartHour"))
|
{
|
timeBucketConditionsInfo.Remove("StartHour");
|
}
|
if (timeBucketConditionsInfo.ContainsKey("StartMin"))
|
{
|
timeBucketConditionsInfo.Remove("StartMin");
|
}
|
if (timeBucketConditionsInfo.ContainsKey("StopHour"))
|
{
|
timeBucketConditionsInfo.Remove("StopHour");
|
}
|
if (timeBucketConditionsInfo.ContainsKey("StopMin"))
|
{
|
timeBucketConditionsInfo.Remove("StopMin");
|
}
|
timeBucketConditionsInfo.Add("StartHour", starttime[0]);
|
timeBucketConditionsInfo.Add("StartMin", starttime[1]);
|
timeBucketConditionsInfo.Add("StopHour", endtime[0]);
|
timeBucketConditionsInfo.Add("StopMin", endtime[1]);
|
btnstarttime.Tag = int.Parse(starttime[0]) * 60 + int.Parse(starttime[1]);
|
btnendtime.Tag = int.Parse(endtime[0]) * 60 + int.Parse(endtime[1]);
|
}
|
|
}
|
EventHandler<MouseEventArgs> stattimeclick = (sender, e) =>
|
{
|
|
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
|
AddChidren(flMain);
|
flMain.MouseUpEventHandler += (sender11, e11) =>
|
{
|
flMain.RemoveFromParent();
|
};
|
|
var timeview = new TimeView
|
{
|
Y = Application.GetRealHeight(1920 - 600),
|
Height = Application.GetRealHeight(600),
|
BackgroundColor =ZigbeeColor.Current.LogicTimeViewColor,
|
Width = Application.GetRealWidth(1080),
|
};
|
flMain.AddChidren(timeview);
|
|
|
var btnSave = new Button
|
{
|
Y = Application.GetRealHeight(1920 - 600),
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetRealHeight(150),
|
Text = Language.StringByID(MyInternationalizationString.complete),
|
// TextColor = 0xFF121212,
|
TextColor =ZigbeeColor.Current.LogicTimeViewSaveButton,
|
//TextAlignment = TextAlignment.CenterRight
|
X = Application.GetRealWidth(1080 - 200),
|
};
|
flMain.AddChidren(btnSave);
|
|
btnSave.MouseUpEventHandler += (sender2, e2) =>
|
{
|
flMain.RemoveFromParent();
|
|
var startval = timeview.Hour * 60 + timeview.Minute;
|
|
if (btnendtime.Tag.ToString() != "0" && startval.ToString()==btnendtime.Tag.ToString())
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.nottime),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
return;
|
}
|
if (btnendtime.Tag.ToString() != "0" && startval > int.Parse(btnendtime.Tag.ToString()))
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.timesetting),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
return;
|
}
|
if (timeBucketConditionsInfo.ContainsKey("StartHour"))
|
{
|
timeBucketConditionsInfo.Remove("StartHour");
|
}
|
if (timeBucketConditionsInfo.ContainsKey("StartMin"))
|
{
|
timeBucketConditionsInfo.Remove("StartMin");
|
}
|
btnstarttime.Tag = timeview.Hour * 60 + timeview.Minute;
|
timeBucketConditionsInfo.Add("StartHour", timeview.Hour.ToString());
|
timeBucketConditionsInfo.Add("StartMin", timeview.Minute.ToString());
|
btnstarttime.Text = timeview.Hour.ToString() + ":" + (timeview.Minute.ToString().Length < 2?"0"+timeview.Minute.ToString():timeview.Minute.ToString());
|
};
|
};
|
timestartrow.MouseUpEventHandler += stattimeclick;
|
btnstarttimetext.MouseUpEventHandler += stattimeclick;
|
btnstarttime.MouseUpEventHandler += stattimeclick;
|
btnstartback.MouseUpEventHandler += stattimeclick;
|
timestarFramelayout.MouseUpEventHandler += stattimeclick;
|
EventHandler<MouseEventArgs> endtimeclick = (sender, e) =>
|
{
|
|
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
|
AddChidren(flMain);
|
flMain.MouseUpEventHandler += (sender11, e11) =>
|
{
|
flMain.RemoveFromParent();
|
};
|
|
var timeview = new TimeView
|
{
|
Y = Application.GetRealHeight(1920 - 600),
|
Height = Application.GetRealHeight(600),
|
BackgroundColor =ZigbeeColor.Current.LogicTimeViewColor,
|
Width = Application.GetRealWidth(1080),
|
};
|
flMain.AddChidren(timeview);
|
|
|
var btnSave = new Button
|
{
|
Y = Application.GetRealHeight(1920 - 600),
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetRealHeight(150),
|
Text = Language.StringByID(MyInternationalizationString.complete),
|
//TextColor = 0xFF121212,
|
TextColor =ZigbeeColor.Current.LogicTimeViewSaveButton,
|
//TextAlignment = TextAlignment.CenterRight
|
X = Application.GetRealWidth(1080 - 200),
|
};
|
flMain.AddChidren(btnSave);
|
|
btnSave.MouseUpEventHandler += (sender2, e2) =>
|
{
|
flMain.RemoveFromParent();
|
|
var endval = timeview.Hour * 60 + timeview.Minute;
|
|
if (btnstarttime.Tag.ToString() != "0" && endval.ToString() == btnstarttime.Tag.ToString())
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.nottime),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
return;
|
}
|
if (btnstarttime.Tag.ToString() != "0" && endval < int.Parse(btnstarttime.Tag.ToString()))
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.timesetting),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
return;
|
}
|
|
if (timeBucketConditionsInfo.ContainsKey("StopHour"))
|
{
|
timeBucketConditionsInfo.Remove("StopHour");
|
}
|
if (timeBucketConditionsInfo.ContainsKey("StopMin"))
|
{
|
timeBucketConditionsInfo.Remove("StopMin");
|
}
|
btnendtime.Tag = timeview.Hour * 60 + timeview.Minute;
|
timeBucketConditionsInfo.Add("StopHour",timeview.Hour.ToString());
|
timeBucketConditionsInfo.Add("StopMin", timeview.Minute.ToString());
|
btnendtime.Text = timeview.Hour.ToString() + ":" + (timeview.Minute.ToString().Length < 2?"0"+timeview.Minute.ToString():timeview.Minute.ToString());
|
};
|
};
|
timeendrow.MouseUpEventHandler += endtimeclick;
|
btnendtimetext.MouseUpEventHandler += endtimeclick;
|
btnendtime.MouseUpEventHandler += endtimeclick;
|
btnendtimeback.MouseUpEventHandler += endtimeclick;
|
timeendFramelayout.MouseUpEventHandler += endtimeclick;
|
|
///完成点击事件
|
EventHandler<MouseEventArgs>completeclick=(sender, e) =>
|
{
|
|
timeBucketConditionsInfo.Add("Type", "5");
|
timeBucketConditionsInfo.Add("IsValid", "1");
|
|
if (string.IsNullOrEmpty(btnstarttime.Text) || string.IsNullOrEmpty(btnendtime.Text))
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.completeNext),
|
Language.StringByID(MyInternationalizationString.complete));
|
alert.Show();
|
return;
|
}
|
if (btnstarttime.Text == btnendtime.Text)
|
{
|
var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
|
Language.StringByID(MyInternationalizationString.sametime),
|
Language.StringByID(MyInternationalizationString.complete));
|
alert.Show();
|
return;
|
}
|
|
if (IsEditor)
|
{
|
for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
|
{
|
if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "5")
|
{
|
|
var timeBucketInfo = Common.Logic.CurrentLogic.Conditions[i];
|
var s = timeBucketInfo["StartHour"] + ":" + timeBucketInfo["StartMin"] + "-" + timeBucketInfo["StopHour"] + ":" + timeBucketInfo["StopMin"];
|
if (str1 == s)
|
{
|
Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
|
Common.Logic.CurrentLogic.Conditions.Insert(i, timeBucketConditionsInfo);
|
}
|
|
}
|
}
|
}
|
else
|
{
|
Common.Logic.CurrentLogic.Conditions.Add(timeBucketConditionsInfo);
|
}
|
|
//LogicIfon.logicIfon.Addconditions(timeBucketConditionsInfo,timeBucketConditionsInfo.Type);
|
|
var logicCommunalPage = new LogicCommunalPage { };
|
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
logicCommunalPage.Show(() => { });
|
};
|
fra.MouseUpEventHandler += completeclick;
|
btnsave.MouseUpEventHandler += completeclick;
|
}
|
|
}
|
}
|