using System;
|
using System.Collections.Generic;
|
using Shared;
|
using Shared.SimpleControl;
|
using Shared.SimpleControl.R;
|
using SmartHome;
|
namespace SuperGateWay
|
{
|
public class Datecycle : FrameLayout
|
{
|
|
/// <summary>
|
/// 显示选中星期1,2,3....
|
/// </summary>
|
//Button btndisplay;
|
public Datecycle ()
|
{
|
Tag = "Logic";
|
}
|
/// <summary>
|
/// 开始日期
|
/// </summary>
|
Button btnStartdate;
|
/// <summary>
|
/// 结束日期
|
/// </summary>
|
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<MouseEventArgs> 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<MouseEventArgs> 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<MouseEventArgs> 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<MouseEventArgs> 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<int []> (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;
|
|
}
|
}
|
|
|
}
|
|
|
}
|
}
|