using System; using System.Collections.Generic; using Shared; using Shared.SimpleControl; using Shared.SimpleControl.R; using SmartHome; namespace SuperGateWay { public class Datecycle : FrameLayout { /// /// 显示选中星期1,2,3.... /// //Button btndisplay; public Datecycle () { Tag = "Logic"; } /// /// 开始日期 /// Button btnStartdate; /// /// 结束日期 /// Button btndateEnddate; bool IsSelected = false; public void Show (GateWay superGateWay) { this.AddChidren (new Button { Height = Application.GetRealHeight (30), BackgroundColor = 0xFF1F1F1F, }); var topFrameLayout = new FrameLayout { Height = Application.GetRealHeight (100), Y = Application.GetRealHeight (30), BackgroundColor = 0xFF1F1F1F, }; AddChidren (topFrameLayout); var titleName = new Button { TextID = MyInternationalizationString.cycle, TextSize = 17, }; topFrameLayout.AddChidren (titleName); var hdl = new Button { Width = Application.GetRealWidth (154), Height = Application.GetRealHeight (90), X = Application.GetRealWidth (486), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Logo/Logo.png", }; topFrameLayout.AddChidren (hdl); var back = new Button { Width = Application.GetRealWidth (82), Height = Application.GetRealHeight (89), X = Application.GetRealWidth (10), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/HomepageBack.png", }; topFrameLayout.AddChidren (back); back.MouseDownEventHandler += (sender, e) => { RemoveFromParent (); }; var titlerl = new RowLayout { Height = Application.GetRealHeight (100), BackgroundColor = 0xff0f0f0f, Y = Application.GetRealHeight (130), }; AddChidren (titlerl); titlerl.AddChidren ( new Button { X = Application.GetRealWidth (40), //Text = "请选择重复执行周期", TextID = MyInternationalizationString.repeat, TextSize = 17, TextAlignment = TextAlignment.CenterLeft, } ); var middle = new VerticalScrolViewLayout (); middle.Y = titlerl.Bottom; middle.Height = Application.GetRealHeight (Application.DesignHeight - 130 - 100); middle.BackgroundColor = 0xff2F2F2F; this.AddChidren (middle); var weekRowLayout = new RowLayout { Height = Application.GetRealHeight (100), }; middle.AddChidren (weekRowLayout); var btnweek = new Button { Width = Application.GetRealWidth (150), X = Application.GetRealHeight (40), TextAlignment = TextAlignment.CenterLeft, //Text = "星期", TextID = MyInternationalizationString.week, TextSize = 16, }; weekRowLayout.AddChidren (btnweek); var btndisplay = new Button { Width = Application.GetRealWidth (400), X = Application.GetRealHeight (150), TextAlignment = TextAlignment.CenterLeft, }; weekRowLayout.AddChidren (btndisplay); var btnsunriseback = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", SelectedImagePath = "MusicIcon/NextSelecte.png", X = Application.GetRealWidth (550), }; weekRowLayout.AddChidren (btnsunriseback); var dateRowLayout = new RowLayout { Y = weekRowLayout.Bottom, Height = Application.GetRealHeight (100), }; middle.AddChidren (dateRowLayout); var dateVerticalScrolViewLayout = new VerticalScrolViewLayout { Height = 0, BackgroundColor = 0xff121212, }; /// middle.AddChidren (dateVerticalScrolViewLayout); //Date var btndate = new Button { Width = Application.GetRealWidth (200), X = Application.GetRealHeight (40), TextAlignment = TextAlignment.CenterLeft, //Text = "日期", TextID = MyInternationalizationString.date, TextSize = 16, }; dateRowLayout.AddChidren (btndate); var btndisplaydate = new Button { TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (150), Width = Application.GetRealWidth (300), Gravity = Gravity.CenterVertical, }; dateRowLayout.AddChidren (btndisplaydate); var btndateback = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", SelectedImagePath = "MusicIcon/NextSelecte.png", X = Application.GetRealWidth (550), }; dateRowLayout.AddChidren (btndateback); string datetext = ""; ///星期点击事件 EventHandler weekclick = (sender, e) => { IsSelected = true; weekRowLayout.BackgroundColor = 0xffFE5E00; dateRowLayout.BackgroundColor = 0x00000000; dateVerticalScrolViewLayout.Height = 0; var weekPage = new WeekPage (); MainPage.MainFrameLayout.AddChidren (weekPage); weekPage.Show (superGateWay, (list) => { if (list.Count != 0) { btndisplay.Text = ""; for (int i = 0; i < 7; i++) { if (list.Count != 0 && list.Contains (i)) { ///周 if (i == 1) { btndisplay.Text += Language.StringByID (MyInternationalizationString.mon) + ","; } else if (i == 2) { btndisplay.Text += Language.StringByID (MyInternationalizationString.tue) + ","; } else if (i == 3) { btndisplay.Text += Language.StringByID (MyInternationalizationString.wed) + ","; } else if (i == 4) { btndisplay.Text += Language.StringByID (MyInternationalizationString.thu) + ","; } else if (i == 5) { btndisplay.Text += Language.StringByID (MyInternationalizationString.frl) + ","; } else if (i == 6) { btndisplay.Text += Language.StringByID (MyInternationalizationString.sat) + ","; } else if (i == 0) { btndisplay.Text += Language.StringByID (MyInternationalizationString.sun) + ","; } } } btndisplay.Text = btndisplay.Text.TrimEnd (','); } }); }; btnsunriseback.MouseUpEventHandler += weekclick; btndisplay.MouseUpEventHandler += weekclick; btnweek.MouseUpEventHandler += weekclick; weekRowLayout.MouseUpEventHandler += weekclick; ///日期点击事件 EventHandler dateclick = (sender, e) => { IsSelected = false; weekRowLayout.BackgroundColor = 0x00000000; dateRowLayout.BackgroundColor = 0xffFE5E00; btndisplaydate.IsSelected = !btndisplaydate.IsSelected; if (btndisplaydate.IsSelected) { dateVerticalScrolViewLayout.Height = Application.GetRealWidth (200); var startdateRowLayout = new RowLayout { Height = Application.GetRealHeight (100), }; dateVerticalScrolViewLayout.AddChidren (startdateRowLayout); var startdatetext = new Button { X = Application.GetRealWidth (40), TextAlignment = TextAlignment.CenterLeft, Gravity = Gravity.CenterVertical, //Text = "起始日期", Width = Application.GetRealWidth (210), TextID = MyInternationalizationString.startdate, }; startdateRowLayout.AddChidren (startdatetext); ///显示起始日期控件 btnStartdate = new Button { Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (100), X = Application.GetRealWidth (250), Gravity = Gravity.CenterVertical, Tag = 0, TextAlignment = TextAlignment.CenterLeft, }; startdateRowLayout.AddChidren (btnStartdate); var btnStartdateback = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", SelectedImagePath = "MusicIcon/NextSelecte.png", X = Application.GetRealWidth (550), }; startdateRowLayout.AddChidren (btnStartdateback); var enddateRowLayout = new RowLayout { Height = Application.GetRealHeight (100), }; dateVerticalScrolViewLayout.AddChidren (enddateRowLayout); var enddtaetext = new Button { X = Application.GetRealWidth (40), TextAlignment = TextAlignment.CenterLeft, Gravity = Gravity.CenterVertical, TextID = MyInternationalizationString.enddate, Width = Application.GetRealWidth (210), //Text = "结束日期", }; enddateRowLayout.AddChidren (enddtaetext); ///显示结束日期控件 btndateEnddate = new Button { Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (100), X = Application.GetRealWidth (250), Gravity = Gravity.CenterVertical, Tag = 0, TextAlignment = TextAlignment.CenterLeft, }; enddateRowLayout.AddChidren (btndateEnddate); var btnenddateback = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", SelectedImagePath = "MusicIcon/NextSelecte.png", X = Application.GetRealWidth (550), }; enddateRowLayout.AddChidren (btnenddateback); if (datetext != "") { btnStartdate.Text = datetext.Split ('-') [0]; btndateEnddate.Text = datetext.Split ('-') [1]; var startyear = btnStartdate.Text.Split ('/') [0]; var startmonth = btnStartdate.Text.Split ('/') [1]; var startday = btnStartdate.Text.Split ('/') [2]; if (startmonth.Length < 2) { startmonth = "0" + startmonth; } if (startday.Length < 2) { startday = "0" + startday; } btnStartdate.Tag = startyear + startmonth + startday; var endyear = btndateEnddate.Text.Split ('/') [0]; var endmonth = btndateEnddate.Text.Split ('/') [1]; var endday = btndateEnddate.Text.Split ('/') [2]; if (endmonth.Length < 2) { endmonth = "0" + endmonth; } if (endday.Length < 2) { endday = "0" + endday; } btndateEnddate.Tag = endyear + endmonth + endday; } ///起始日期点击事件 EventHandler startdateclick = (sender33, e33) => { // DateView FrameLayout flMain = new FrameLayout { BackgroundColor = 0x00000000 }; AddChidren (flMain); flMain.MouseUpEventHandler += (sender12, e12) => { flMain.RemoveFromParent (); }; var dateViewStart = new DateView { Y = Application.GetRealHeight (Application.DesignHeight - 320), Height = Application.GetRealHeight (320), BackgroundColor = 0xFFFFFFFF }; flMain.AddChidren (dateViewStart); var btnSave = new Button { Y = Application.GetRealHeight (Application.DesignHeight - 320), Width = Application.GetRealWidth (100), Height = Application.GetRealHeight (100), Text = Language.StringByID (MyInternationalizationString.complete), TextColor = 0xFF121212, //TextAlignment = TextAlignment.CenterRight X = Application.GetRealWidth (640 - 100), }; flMain.AddChidren (btnSave); btnSave.MouseUpEventHandler += (sender2, e2) => { flMain.RemoveFromParent (); var year = dateViewStart.Year.ToString (); var month = dateViewStart.Month.ToString (); var day = dateViewStart.Day.ToString (); if (month.Length < 2) { month = "0" + month; } if (day.Length < 2) { day = "0" + day; } var leng = year + month + day; if (btndateEnddate.Tag.ToString () != "0" && int.Parse (btndateEnddate.Tag.ToString ()) < int.Parse (leng)) { var alert = new Alert (Language.StringByID (MyInternationalizationString.Prompt), Language.StringByID (MyInternationalizationString.monthday), Language.StringByID (MyInternationalizationString.OK)); alert.Show (); } else { //btnStartdate.Text = month + Language.StringByID (MyInternationalizationString.month) + day + Language.StringByID (MyInternationalizationString.day); btnStartdate.Text = year + "/" + month + "/" + day; btnStartdate.Tag = leng; if (string.IsNullOrEmpty (btndateEnddate.Text)) { btndateEnddate.Text = year + "/" + month + "/" + day; btndateEnddate.Tag = leng; } } if (Logic.CurrentLogic.date.ContainsKey ("type")) { Logic.CurrentLogic.date.Remove ("type"); } if (Logic.CurrentLogic.date.ContainsKey ("week")) { Logic.CurrentLogic.date.Remove ("week"); } if (Logic.CurrentLogic.date.ContainsKey ("date")) { Logic.CurrentLogic.date.Remove ("date"); } Logic.CurrentLogic.date.Add ("type", "day"); Logic.CurrentLogic.date.Add ("date", btnStartdate.Text + "-" + btndateEnddate.Text); }; }; startdateRowLayout.MouseUpEventHandler += startdateclick; btnStartdate.MouseUpEventHandler += startdateclick; startdatetext.MouseUpEventHandler += startdateclick; btnStartdateback.MouseUpEventHandler += startdateclick; ///结束日期点击事件 EventHandler enddateclick = (sender1, e1) => { FrameLayout flMainend = new FrameLayout { BackgroundColor = 0x00000000 }; AddChidren (flMainend); flMainend.MouseUpEventHandler += (sender12, e12) => { flMainend.RemoveFromParent (); }; var dateViewend = new DateView { Y = Application.GetRealHeight (Application.DesignHeight - 320), Height = Application.GetRealHeight (320), BackgroundColor = 0xFFFFFFFF }; flMainend.AddChidren (dateViewend); var btnSaveend = new Button { Y = Application.GetRealHeight (Application.DesignHeight - 320), Width = Application.GetRealWidth (100), Height = Application.GetRealHeight (100), Text = Language.StringByID (MyInternationalizationString.complete), TextColor = 0xFF121212, //TextAlignment = TextAlignment.CenterRight X = Application.GetRealWidth (640 - 100), }; flMainend.AddChidren (btnSaveend); btnSaveend.MouseUpEventHandler += (sender2, e2) => { flMainend.RemoveFromParent (); var year = dateViewend.Year.ToString (); var month = dateViewend.Month.ToString (); var day = dateViewend.Day.ToString (); if (month.Length < 2) { month = "0" + month; } if (day.Length < 2) { day = "0" + day; } var leng = year + month + day; if (btnStartdate.Tag.ToString () != "0" && int.Parse (btnStartdate.Tag.ToString ()) > int.Parse (leng)) { var alert = new Alert (Language.StringByID (MyInternationalizationString.Prompt), Language.StringByID (MyInternationalizationString.monthday), Language.StringByID (MyInternationalizationString.OK)); alert.Show (); } else { //btnStartdate.Text = month + Language.StringByID (MyInternationalizationString.month) + day + Language.StringByID (MyInternationalizationString.day); btndateEnddate.Text = year + "/" + month + "/" + day; btndateEnddate.Tag = leng; if (string.IsNullOrEmpty (btnStartdate.Text)) { btnStartdate.Text = year + "/" + month + "/" + day; btnStartdate.Tag = leng; } } if (Logic.CurrentLogic.date.ContainsKey ("type")) { Logic.CurrentLogic.date.Remove ("type"); } if (Logic.CurrentLogic.date.ContainsKey ("week")) { Logic.CurrentLogic.date.Remove ("week"); } if (Logic.CurrentLogic.date.ContainsKey ("date")) { Logic.CurrentLogic.date.Remove ("date"); } Logic.CurrentLogic.date.Add ("type", "day"); Logic.CurrentLogic.date.Add ("date", btnStartdate.Text + "-" + btndateEnddate.Text); }; }; enddateRowLayout.MouseUpEventHandler += enddateclick; enddtaetext.MouseUpEventHandler += enddateclick; btndateEnddate.MouseUpEventHandler += enddateclick; btnenddateback.MouseUpEventHandler += enddateclick; } else { dateVerticalScrolViewLayout.Height = 0; } }; dateRowLayout.MouseUpEventHandler += dateclick; btndate.MouseUpEventHandler += dateclick; btndisplaydate.MouseUpEventHandler += dateclick; btndateback.MouseUpEventHandler += dateclick; if (Logic.CurrentLogic.date.ContainsKey ("type")) { var type = Logic.CurrentLogic.date ["type"]?.ToString (); switch (type) { case "week": { IsSelected = true; btndisplay.Text = ""; var weekvalue = Newtonsoft.Json.JsonConvert.DeserializeObject (Newtonsoft.Json.JsonConvert.SerializeObject (Logic.CurrentLogic.date ["week"])); for (int i = 0; i < 7; i++) { int a = Array.IndexOf (weekvalue, i); if (a != -1) { ///周 if (i == 1) { btndisplay.Text += Language.StringByID (MyInternationalizationString.mon) + ","; } else if (i == 2) { btndisplay.Text += Language.StringByID (MyInternationalizationString.tue) + ","; } else if (i == 3) { btndisplay.Text += Language.StringByID (MyInternationalizationString.wed) + ","; } else if (i == 4) { btndisplay.Text += Language.StringByID (MyInternationalizationString.thu) + ","; } else if (i == 5) { btndisplay.Text += Language.StringByID (MyInternationalizationString.frl) + ","; } else if (i == 6) { btndisplay.Text += Language.StringByID (MyInternationalizationString.sat) + ","; } else if (i == 0) { btndisplay.Text += Language.StringByID (MyInternationalizationString.sun) + ","; } } } btndisplay.Text = btndisplay.Text.TrimEnd(','); } break; case "day": { IsSelected = false; var weekvalue = Logic.CurrentLogic.date ["date"]?.ToString (); string [] s = weekvalue.Split ('-'); if (s [0] == s [1]) { btndisplaydate.Text = s [0]; } else { btndisplaydate.Text =weekvalue; datetext = weekvalue; } } break; } } } } }