using System;
using Shared;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class AddLogic : FrameLayout
{
public AddLogic()
{
Tag = "Logic";
}
public void Show()
{
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
LogicView.TopView topView = new LogicView.TopView();
this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
{
RemoveFromParent();
};
topView.topNameBtn.TextID = StringId.newAutomation;
VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
{
Y = Application.GetRealHeight(64),
Width = Application.GetRealWidth(LogicView.TextSize.view375),
Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64 - 76),
BackgroundColor = CSS.CSS_Color.viewMiddle,
};
this.AddChidren(viewLayout);
#region 条件
///如果的View
LogicView.AddOutputInputTextView addInputTextView = new LogicView.AddOutputInputTextView();
addInputTextView.btnIf.TextID = StringId.ifCondition;
viewLayout.AddChidren(addInputTextView.FLayoutView(46, 12));
///满足以下条件的View
LogicView.LogicTypeTitleView titleCondition = new LogicView.LogicTypeTitleView();
titleCondition.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet;
viewLayout.AddChidren(titleCondition.FLayoutView());
// 条件处理方法
InpOrOutLogicMethod.InputCondition(this, viewLayout);
///添加图标的View
LogicView.LogicAddView addInputIcon = new LogicView.LogicAddView();
addInputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
viewLayout.AddChidren(addInputIcon.FLayoutView());
addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
{
var addInputType = new AddInputType();
MainPage.BasePageView.AddChidren(addInputType);
addInputType.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
#region 目标
///就执行View
LogicView.AddOutputInputTextView addOutpuTextView = new LogicView.AddOutputInputTextView();
addOutpuTextView.btnIf.TextID = StringId.isExecuted;
viewLayout.AddChidren(addOutpuTextView.FLayoutView(54, 20));
///以下动作View
LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView();
titleOutpu.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
titleOutpu.btnText.TextID = StringId.theFollowingActions;
viewLayout.AddChidren(titleOutpu.FLayoutView());
//目标处理方法
InpOrOutLogicMethod.OutputTarget(this, viewLayout);
///添加图标的View
LogicView.LogicAddView addOutputIcon = new LogicView.LogicAddView();
addOutputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
viewLayout.AddChidren(addOutputIcon.FLayoutView());
addOutputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
{
var addTarget = new AddTarget();
MainPage.BasePageView.AddChidren(addTarget);
addTarget.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
#region 循环方式
///循环方式iew
LogicView.AddOutputInputTextView cyclicTextView = new LogicView.AddOutputInputTextView();
cyclicTextView.btnIf.TextID = StringId.cyclic;
viewLayout.AddChidren(cyclicTextView.FLayoutView(54, 20));
///选择周期类型View
LogicView.LogicTypeTitleView cyclicTitle = new LogicView.LogicTypeTitleView();
cyclicTitle.frameLayout.Height = Application.GetRealHeight(50);
cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
cyclicTitle.btnText.TextID = StringId.days;
viewLayout.AddChidren(cyclicTitle.FLayoutView());
cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) =>
{
FrameLayout fLayout = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(fLayout);
DateMethod(fLayout,cyclicTitle.btnText);
};
#endregion
#region 执行推送 发送通知
///上下间隔12像素
viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) });
///执行推送iew
LogicView.LogicTypeTitleView push = new LogicView.LogicTypeTitleView();
push.frameLayout.Height = Application.GetRealHeight(50);
push.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
push.btnText.TextID = StringId.push;
viewLayout.AddChidren(push.FLayoutView());
///发送通知View
LogicView.LogicTypeTitleView notification = new LogicView.LogicTypeTitleView();
notification.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
notification.btnText.TextID = StringId.notification;
viewLayout.AddChidren(notification.FLayoutView());
///上下间隔62像素
viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(62) });
#endregion
#region 保存
///保存View
LogicView.SaveView saveView = new LogicView.SaveView();
saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
this.AddChidren(saveView.FLayoutView());
saveView.btnClick.MouseUpEventHandler += (sender, e) =>
{
Logic.LogicList.Add(Logic.currlogic);
LogicMethod.RemoveAllView();
MainView.MainShow();
};
//saveView.frameLayout.Y = this.Height - saveView.frameLayout.Height;
#endregion
}
///
/// 循环方式(每天,每月。。)
///
/// 弹框主控件
/// 显示文本
public void DateMethod(FrameLayout fLayout,Button button)
{
LogicView.DateView dateView = new LogicView.DateView();
dateView.btnTitle.TextID = StringId.cyclic;
dateView.FLayoutView(fLayout, 4);
dateView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
{
//移除fLayout界面
fLayout.RemoveFromParent();
};
//定义一个局部变量记录选中文本状态
string weekName = "";
//定义一个局部Btn用来记录选中Btn;
var selecetdBtn = new Button();
for (int i = 0; i < 4; i++)
{
LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView();
dateTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
dateTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
dateTypeView.btnIcon.Visible = false;
dateTypeView.btnText.X = Application.GetRealWidth(20);
dateTypeView.btnNextIcon.X = Application.GetRealWidth(307);
dateTypeView.btnLine.X = Application.GetRealWidth(20);
dateTypeView.btnLine.Width = Application.GetRealWidth(303);
dateView.frameLayout.AddChidren(dateTypeView.FLayoutView());
dateTypeView.btnClick.Tag = i;//标记类型
switch (i)
{
case 0:
{
weekName = Language.StringByID(StringId.performA);
dateTypeView.btnNextIcon.Visible = false;
}
break;
case 1:
{
weekName = Language.StringByID(StringId.days);
dateTypeView.btnNextIcon.Visible = false;
}
break;
case 2:
{
weekName = Language.StringByID(StringId.weekly);
}
break;
case 3:
{
weekName = Language.StringByID(StringId.monthly);
}
break;
}
dateTypeView.btnText.Text = weekName;
//循环类型(例如:每月,每天)点击事件
dateTypeView.btnClick.MouseUpEventHandler += (sender, e) => {
int clickIndex = int.Parse(dateTypeView.btnClick.Tag.ToString());
switch (clickIndex)
{
case 0:
{
weekName = Language.StringByID(StringId.performA);
selecetdBtn.TextColor = CSS.CSS_Color.textColor;
dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
selecetdBtn = dateTypeView.btnText;
}
break;
case 1:
{
weekName = Language.StringByID(StringId.days);
selecetdBtn.TextColor = CSS.CSS_Color.textColor;
dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
selecetdBtn = dateTypeView.btnText;
}
break;
case 2:
{
// weekName = Language.StringByID(StringId.weekly);
WeekMethod(fLayout, button);
}
break;
case 3:
{
//weekName = Language.StringByID(StringId.monthly);
MonMethod(fLayout, button);
}
break;
}
};
//显示之前的状态
if (button.Text == weekName)
{
dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
selecetdBtn = dateTypeView.btnText;
}
else if (button.Text == weekName)
{
dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor;
selecetdBtn = dateTypeView.btnText;
}
}
//确定保存
dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) =>
{
if (weekName == Language.StringByID(StringId.performA))
{
//执行一次
Logic.currlogic.cycle.type = "once";
}
else if (weekName == Language.StringByID(StringId.performA))
{
//每天
Logic.currlogic.cycle.type = "day";
}
//选中保存之后显示文本
button.Text = weekName;
//移除fLayout界面
fLayout.RemoveFromParent();
};
}
///
/// 选中星期几(周一,周二 。。。)
///
/// 弹框主控件
/// 显示文本
public void WeekMethod(FrameLayout fLayout, Button button)
{
LogicView.DateView weekView = new LogicView.DateView();
weekView.btnTitle.TextID = StringId.cyclic;
weekView.FLayoutView(fLayout, 7);
weekView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
{
weekView.frameLayout.RemoveFromParent();
};
//定义一个局部weekList列表用来记录选中数据;
List weekList = new List();
if (Logic.currlogic.cycle.type == "mon")
{
//加载之前保存的数据
weekList.AddRange(Logic.currlogic.cycle.value);
}
//定义一个局部变量记录选中文本状态
string weekName = "";
for (int i = 0; i < 7; i++)
{
LogicView.SelectTypeView weekTypeView = new LogicView.SelectTypeView();
weekTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
weekTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
weekTypeView.btnIcon.Visible = false;
weekTypeView.btnText.X = Application.GetRealWidth(20);
weekTypeView.btnLine.X = Application.GetRealWidth(20);
weekTypeView.btnLine.Width = Application.GetRealWidth(303);
weekTypeView.btnNextIcon.X = Application.GetRealWidth(303);
weekTypeView.btnNextIcon.Width = Application.GetMinRealAverage(28);
weekTypeView.btnNextIcon.Height = Application.GetMinRealAverage(28);
weekTypeView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
weekTypeView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
weekView.frameLayout.AddChidren(weekTypeView.FLayoutView());
weekTypeView.btnClick.Tag = i;//标记索引
switch (i)
{
case 0:
{
weekName = Language.StringByID(StringId.monday);
}
break;
case 1:
{
weekName = Language.StringByID(StringId.tuesday);
}
break;
case 2:
{
weekName = Language.StringByID(StringId.wednesday);
}
break;
case 3:
{
weekName = Language.StringByID(StringId.thursday);
}
break;
case 4:
{
weekName = Language.StringByID(StringId.friday);
}
break;
case 5:
{
weekName = Language.StringByID(StringId.saturday);
}
break;
case 6:
{
weekName = Language.StringByID(StringId.sunday);
}
break;
}
weekTypeView.btnText.Text = weekName;
if (weekList.Contains(i.ToString()))
{
//显示之前的选中状态
weekTypeView.btnNextIcon.IsSelected = true;
}
//星期的点击事件
weekTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
{
string clickIndex = weekTypeView.btnClick.Tag.ToString();
weekTypeView.btnClick.IsSelected = !weekTypeView.btnClick.IsSelected;
if (weekTypeView.btnClick.IsSelected)
{
weekTypeView.btnNextIcon.IsSelected = true;
if (!weekList.Contains(clickIndex))
{
//添加选中数据
weekList.Add(clickIndex);
}
}
else
{
weekTypeView.btnNextIcon.IsSelected = false;
if (weekList.Contains(clickIndex))
{
//移除选中数据
weekList.Remove(clickIndex);
}
}
};
}
//确定点击事件
weekView.btnConfirm.MouseUpEventHandler += (sender1, e1) => {
if (weekList.Count==0) {
//提示:还没选中执行周期
return;
}
Logic.currlogic.cycle.type = "mon";
Logic.currlogic.cycle.value = weekList;
button.Text = GetWeekString(weekList);
fLayout.RemoveFromParent();
};
}
///
/// 每月
///
/// 弹框主控件
/// 显示文本
public void MonMethod(FrameLayout fLayout, Button button)
{
LogicView.MonView monView = new LogicView.MonView();
monView.btnTitle.TextID = StringId.monthly;
monView.FLayoutView(fLayout);
monView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
{
monView.frameLayout.RemoveFromParent();
};
//58
int lineSun = 0;
for (int i = 0; i < 32; i++)
{
Button monTextBtn = new Button
{
Width = Application.GetMinRealAverage(30),
Height = Application.GetMinRealAverage(30),
};
if (i % 7 == 0)
{
}
else { }
}
}
///
/// 获取星期的字符串
///
///
///
public string GetWeekString(List weekList)
{
string weekTextName = "";
if (weekList.Contains("0")) {
weekTextName += Language.StringByID(StringId.monday)+",";
}
if (weekList.Contains("1"))
{
weekTextName += Language.StringByID(StringId.tuesday) + ",";
}
if (weekList.Contains("2"))
{
weekTextName += Language.StringByID(StringId.wednesday) + ",";
}
if (weekList.Contains("3"))
{
weekTextName += Language.StringByID(StringId.thursday) + ",";
}
if (weekList.Contains("4"))
{
weekTextName += Language.StringByID(StringId.friday) + ",";
}
if (weekList.Contains("5"))
{
weekTextName += Language.StringByID(StringId.saturday) + ",";
}
if (weekList.Contains("6"))
{
weekTextName += Language.StringByID(StringId.sunday) + ",";
}
if (weekTextName=="") {
return "";
}
return weekTextName.TrimEnd(',');
}
}
}