using System; using System.Collections.Generic; using Shared; using Shared.SimpleControl; using Shared.SimpleControl.R; using SmartHome; namespace SuperGateWay { public class Cycle : FrameLayout { Action action; public Cycle (Action action) { this.action = action; } public Cycle () { Tag = "Logic"; } /// /// 选中 /// Button beforeClickButton = new Button (); 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 (); if (action != null) action (); }; 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 - 80); middle.BackgroundColor = 0xff2F2F2F; this.AddChidren (middle); string timename = ""; if (Logic.CurrentLogic.date.ContainsKey ("type")) { var type = Logic.CurrentLogic.date ["type"]?.ToString (); switch (type) { case "week": { var weekvalue = Newtonsoft.Json.JsonConvert.DeserializeObject (Newtonsoft.Json.JsonConvert.SerializeObject (Logic.CurrentLogic.date ["week"])); if (weekvalue != null) { int a0 = Array.IndexOf (weekvalue, 0); int a1 = Array.IndexOf (weekvalue, 1); int a2 = Array.IndexOf (weekvalue, 2); int a3 = Array.IndexOf (weekvalue, 3); int a4 = Array.IndexOf (weekvalue, 4); int a5 = Array.IndexOf (weekvalue, 5); int a6 = Array.IndexOf (weekvalue, 6); if (weekvalue.Length == 2 && a0 != -1 && a6 != -1) { ///周未 timename = Language.StringByID (MyInternationalizationString.weekend); } else if (weekvalue.Length == 5 && a1 != -1 && a2 != -1 && a3 != -1 && a4 != -1 && a5 != -1) { ///工作日 timename = Language.StringByID (MyInternationalizationString.workingday); } else { var datecycle = new Datecycle (); MainPage.MainFrameLayout.AddChidren (datecycle); datecycle.Show (superGateWay); } } } break; case "day": { var datecycle = new Datecycle (); MainPage.MainFrameLayout.AddChidren (datecycle); datecycle.Show (superGateWay); } break; case "every_day": { timename = Language.StringByID (MyInternationalizationString.everyday); } break; case "every_month": { var everymonthPage = new EverymonthPage (); MainPage.MainFrameLayout.AddChidren (everymonthPage); everymonthPage.Show (superGateWay); } break; case "every_year": { var everyyearPage = new EveryyearPage (); MainPage.MainFrameLayout.AddChidren (everyyearPage); everyyearPage.Show (superGateWay); } break; } }else{ //timename = Language.StringByID (MyInternationalizationString.executeonce); } var cyclelist = new List (); cyclelist.AddRange (new string [] { //Language.StringByID(MyInternationalizationString.executeonce), Language.StringByID(MyInternationalizationString.everyday), Language.StringByID(MyInternationalizationString.workingday), Language.StringByID(MyInternationalizationString.weekend), Language.StringByID(MyInternationalizationString.monthly), Language.StringByID(MyInternationalizationString.everyyear), Language.StringByID(MyInternationalizationString.custom1), }); foreach (var name in cyclelist) { var cyclerwLayout = new RowLayout { Height = Application.GetRealHeight (100), }; middle.AddChidren (cyclerwLayout); var btn = new Button { Height = Application.GetRealHeight (100), Width = LayoutParams.MatchParent, SelectedBackgroundColor = 0xfffe5e00, }; cyclerwLayout.AddChidren (btn); var btnName = new Button { Gravity = Gravity.CenterVertical, Text = name, Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (100), X=Application.GetRealWidth(30), TextSize = 16, TextAlignment=TextAlignment.CenterLeft, }; cyclerwLayout.AddChidren (btnName); var btntimeback = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", SelectedImagePath = "MusicIcon/NextSelecte.png", X = Application.GetRealWidth (550), }; if (name ==Language.StringByID (MyInternationalizationString.monthly) || name ==Language.StringByID (MyInternationalizationString.everyyear) || name == Language.StringByID (MyInternationalizationString.custom1)) { cyclerwLayout.AddChidren (btntimeback); } if (timename == name) { beforeClickButton.IsSelected = false; beforeClickButton = btn; btn.IsSelected = true; } EventHandlertimeclick= (sender,e) => { if (btnName.Text == Language.StringByID (MyInternationalizationString.custom1)) { var datecycle = new Datecycle (); MainPage.MainFrameLayout.AddChidren (datecycle); datecycle.Show (superGateWay); } else if (btnName.Text ==Language.StringByID (MyInternationalizationString.monthly)) { var everymonthPage = new EverymonthPage (); MainPage.MainFrameLayout.AddChidren (everymonthPage); everymonthPage.Show (superGateWay); } else if (btnName.Text ==Language.StringByID (MyInternationalizationString.everyyear)) { var everyyearPage = new EveryyearPage (); MainPage.MainFrameLayout.AddChidren (everyyearPage); everyyearPage.Show (superGateWay); } else { beforeClickButton.IsSelected = false; beforeClickButton = btn; btn.IsSelected = true; selectedMode (btnName.Text); } }; cyclerwLayout.MouseUpEventHandler += timeclick; btn.MouseUpEventHandler += timeclick; btnName.MouseUpEventHandler += timeclick; btntimeback.MouseUpEventHandler += timeclick; }; var btncomplete = new Button { Y = middle.Bottom, Height = Application.GetRealHeight (80), TextID = MyInternationalizationString.complete, BackgroundColor = 0xff1f1f1f, TextSize = 16, }; AddChidren (btncomplete); btncomplete.MouseUpEventHandler += (sedder, e) => { RemoveFromParent (); action (); }; } void selectedMode (string text) { if (Logic.CurrentLogic.date.ContainsKey ("type")) { Logic.CurrentLogic.date.Remove ("type"); } if (Logic.CurrentLogic.date.ContainsKey ("date")) { Logic.CurrentLogic.date.Remove ("date"); } if (Logic.CurrentLogic.date.ContainsKey ("week")) { Logic.CurrentLogic.date.Remove ("week"); } if (text == Language.StringByID (MyInternationalizationString.everyday)) { Logic.CurrentLogic.date.Add ("type", "every_day"); } else if (text == Language.StringByID (MyInternationalizationString.workingday)) { Logic.CurrentLogic.date.Add ("type", "week"); Logic.CurrentLogic.date.Add ("week", new object [] { 1, 2, 3, 4, 5, }); } else if (text == Language.StringByID (MyInternationalizationString.weekend)) { Logic.CurrentLogic.date.Add ("type", "week"); Logic.CurrentLogic.date.Add ("week", new object [] { 0, 6 }); } } } }