using System; using System.Collections.Generic; using Shared; namespace HDL_ON.UI.UI2.Intelligence.Automation { public class Time3:FrameLayout { public Time3() { Tag = "Logic"; } public void Show(string titelText, bool edit, int index) { #region 界面布局 LogicView.TopView topView = new LogicView.TopView(); topView.frameLayout.Height = Application.GetRealHeight(64 + 20); this.AddChidren(topView.FLayoutView()); topView.topNameBtn.Text = titelText; //获取宽度 int widthValue = topView.topNameBtn.GetTextWidth(); int textWidth = (Application.GetRealWidth(255) - widthValue) / 2; Button locationBtn = new Button { Width = Application.GetRealWidth(18), Height = Application.GetRealWidth(18), X = Application.GetRealWidth(60 + 4) + textWidth + widthValue, Y = Application.GetRealHeight(34 + 1), UnSelectedImagePath = "LogicIcon/location.png", }; topView.frameLayout.AddChidren(locationBtn); Button textBtn = new Button { Height = Application.GetRealHeight(14), Y = Application.GetRealHeight(57), TextSize = LogicView.TextSize.text10, TextColor = CSS.CSS_Color.textCancelColor, Text = "广东广州市番禺区石楼镇", }; topView.frameLayout.AddChidren(textBtn); topView.clickBackBtn.MouseUpEventHandler += (e, sen) => { RemoveFromParent(); }; FrameLayout viewLayout = new FrameLayout { Y = Application.GetRealHeight(64 + 20), Width = Application.GetRealWidth(LogicView.TextSize.view375), Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64 - 20), BackgroundColor = CSS.CSS_Color.viewMiddle, }; this.AddChidren(viewLayout); #endregion //(日出时,日落时,正午时) string str1 = ""; //(提前,延时) string str2 = ""; //(提前,延时多少分钟) string value = ""; if (edit) { new SpeciaTime().GetText(index, (s1, s2, s3) => { str1 = s1; str2 = s2; value = s3; }); } var list = new List { Language.StringByID(StringId.punctually), Language.StringByID(StringId.advanced), Language.StringByID(StringId.delayLogic), }; for (int i = 0; i < list.Count; i++) { LogicView.SelectTypeView timeView = new LogicView.SelectTypeView(); timeView.frameLayout.Y = Application.GetRealHeight(i * 50); timeView.btnIcon.Visible = false; timeView.btnText.X = Application.GetRealWidth(16); timeView.btnLine.X = Application.GetRealWidth(16); timeView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16); timeView.btnText.Text = list[i]; timeView.btnClick.Tag = list[i]; if (i == 0) { timeView.btnNextIcon.Visible = false; } //判断是(日出,日落,正午) if (str1 == titelText) { //判断是(提前,延时) if (str2 == list[i]) { string s = ""; if (value != "0") { if (value == "30") { s = value + Language.StringByID(StringId.s); } else { s =value + Language.StringByID(StringId.minute); } } timeView.btnState.Visible = true; timeView.btnState.Text = s; } } viewLayout.AddChidren(timeView.FLayoutView()); timeView.btnClick.MouseUpEventHandler += (sen, e) => { string clickText = timeView.btnClick.Tag.ToString(); string keyValue = GetKeyValue(clickText, titelText); if (clickText == Language.StringByID(StringId.punctually)) { //正点 AddDic(keyValue, "0", edit, index); } else { //定义一个局部变量 string stateValue = ""; //判断是(日出,日落,正午) if (str1 == titelText) { //判断是(提前,延时) if (str2 == clickText) { string s = ""; if (value != "0") { if (value == "30") { s = value + " s"; } else { s = value + " min"; } } //更新值stateValue //为了显示之前的状态 stateValue = s; } } PublicInterface timePublicInterface = new PublicInterface(); var timelist = timePublicInterface.GetViewList("time"); timePublicInterface.SingleSelectionShow(this, timelist, clickText, stateValue , (value1) => { string timeValue = value1.Split(" ")[0]; AddDic(keyValue, timeValue, edit, index); }); } }; } } /// /// 获取键值 /// /// 当前选中文本 /// 标题文本 /// private string GetKeyValue(string clickText, string titelText) { string keyValue = ""; if (titelText == Language.StringByID(StringId.sunrise) + Language.StringByID(StringId.h)) { if (clickText == Language.StringByID(StringId.advanced)) { keyValue = "before_sunrise"; } else if (clickText == Language.StringByID(StringId.delayLogic)) { keyValue = "after_sunrise"; } else { keyValue = "after_sunrise"; } } else if (titelText == Language.StringByID(StringId.sunset) + Language.StringByID(StringId.h)) { if (clickText == Language.StringByID(StringId.advanced)) { keyValue = "before_sunset"; } else if (clickText == Language.StringByID(StringId.delayLogic)) { keyValue = "after_sunset"; } else { keyValue = "after_sunset"; } } else { if (clickText == Language.StringByID(StringId.advanced)) { keyValue = "before_noon"; } else if (clickText == Language.StringByID(StringId.delayLogic)) { keyValue = "after_noon"; } else { keyValue = "after_noon"; } } return keyValue; } /// /// 封装数据 /// /// /// /// /// private void AddDic(string keyValue, string value, bool edit, int index) { Input inputTime = new Input(); inputTime.sid = LogicMethod.NewSid(); inputTime.condition_type = "1"; Dictionary dic = new Dictionary(); LogicMethod.dictionary(dic, "key", keyValue); LogicMethod.dictionary(dic, "comparator", "="); LogicMethod.dictionary(dic, "data_type", "string"); LogicMethod.dictionary(dic, "value", value); inputTime.condition.Add(dic); AddCondition(inputTime, edit, index); } /// /// 添加条件 /// /// private void AddCondition(Input input, bool edit, int index) { if (edit) { //移除旧数据 Logic.currlogic.input.RemoveAt(index); //新数据插入旧数据的位置 Logic.currlogic.input.Insert(index, input); } else { //添加一个新的时间条件 Logic.currlogic.input.Add(input); } LogicMethod.RemoveAllView(); AddLogic addLogic = new AddLogic(); MainPage.BasePageView.AddChidren(addLogic); addLogic.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } } }