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