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 });
}
}
}
}