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 timeBucketConditionsInfo = new Dictionary(); 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 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 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; ///完成点击事件 EventHandlercompleteclick=(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; } } }