| | |
| | | using System; |
| | | using Shared; |
| | | using System.Collections.Generic; |
| | | |
| | | |
| | | namespace HDL_ON.UI.UI2.Intelligence.Automation |
| | |
| | | { |
| | | public AddLogic() |
| | | { |
| | | |
| | | Tag = "Logic"; |
| | | } |
| | | |
| | | public void Show() |
| | | { |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | LogicView.TopView topView = new LogicView.TopView(); |
| | | this.AddChidren(topView.TopFLayoutView()); |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (e, sen) => |
| | | { |
| | | RemoveFromParent(); |
| | |
| | | titleCondition.frameLayout.SetCornerWithSameRadius(12,HDLUtils.RectCornerTopLeft| HDLUtils.RectCornerTopRight); |
| | | titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet; |
| | | viewLayout.AddChidren(titleCondition.FLayoutView()); |
| | | ///输入各种条件的View |
| | | LogicView.AddOutputInputView InputView = new LogicView.AddOutputInputView(); |
| | | viewLayout.AddChidren(InputView.FLayoutView()); |
| | | |
| | | for (int i = 0; i < Logic.currlogic.input.Count; i++) |
| | | { |
| | | Input inputCondition = Logic.currlogic.input[i]; |
| | | ///输入各种条件的View |
| | | LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView(); |
| | | viewLayout.AddChidren(inputView.FLayoutView()); |
| | | ///记录条件类型 |
| | | inputView.btnClick.Name = inputCondition.condition_type; |
| | | ///记录选中条件 |
| | | inputView.btnClick.Tag = i; |
| | | ///输入条件状态数组 |
| | | List<Dictionary<string, string>> dicList = inputCondition.condition as List<Dictionary<string, string>>; |
| | | //显示条件各种状态 |
| | | switch (inputCondition.condition_type) |
| | | { |
| | | case "1": |
| | | { |
| | | inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png"; |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value; |
| | | inputView.btnClick.AddTag("timepoint", value); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case "2": |
| | | { |
| | | inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png"; |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | inputView.btnText.Text = Language.StringByID(StringId.timeHorizon) + ": " + value; |
| | | inputView.btnClick.AddTag("timeHorizon", value); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | |
| | | } |
| | | //再次编辑条件状态点击事件 |
| | | inputView.btnClick.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | Button button = (Button)sen; |
| | | switch (button.Name) |
| | | { |
| | | case "1": |
| | | { //主界面控件 |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTrans60lucence, |
| | | }; |
| | | //添加主界面 |
| | | this.AddChidren(fLayout); |
| | | LogicView.TimeView timePointView = new LogicView.TimeView(); |
| | | timePointView.FLayoutView(fLayout); |
| | | EventHandler<MouseEventArgs> RemovefLayout = (sender, e1) => |
| | | { |
| | | //移除fLayout界面 |
| | | fLayout.RemoveFromParent(); |
| | | }; |
| | | //界面点击事件 |
| | | fLayout.MouseUpEventHandler += RemovefLayout; |
| | | //取消点击事件 |
| | | timePointView.btnCancel.MouseUpEventHandler += RemovefLayout; |
| | | //加载数据界面的设置方法(列表互不联动) |
| | | timePointView.mUIPickerView.setNPicker(timePointView.GethStringList(), timePointView.GetmStringList(), null); |
| | | string startingVulae = button.GetTagByKey("timepoint").ToString(); |
| | | //默认初始选中状态 |
| | | timePointView.mUIPickerView.setCurrentItems(1, 30, 0); |
| | | //定义一个局部变量记录选中时间 |
| | | string timepoint = "01:05"; |
| | | if (!string.IsNullOrEmpty(startingVulae)) |
| | | { |
| | | int hIndex = timePointView.GetValueIndex(startingVulae, 0, 1, timePointView.GethIntList()); |
| | | int mIndex = timePointView.GetValueIndex(startingVulae, 1, 0, timePointView.GetmIntList()); |
| | | //更新初始状态 |
| | | timePointView.mUIPickerView.setCurrentItems(hIndex - 1, mIndex, 0); |
| | | timepoint = startingVulae; |
| | | } |
| | | |
| | | //选中时间回调方法,时间变化一次回调一次 |
| | | timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) => |
| | | { |
| | | string hour = timePointView.GethStringList()[index1].Split(' ')[0]; |
| | | string minuet = timePointView.GetmStringList()[index2].Split(' ')[0]; |
| | | timepoint = hour + ":" + minuet; |
| | | }; |
| | | //确定点击事件 |
| | | timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) => |
| | | { |
| | | if (startingVulae == timepoint) |
| | | { |
| | | ///编辑新时间和之前时间一样,直接关闭界面返回; |
| | | fLayout.RemoveFromParent(); |
| | | return; |
| | | } |
| | | Input inputTime = new Input(); |
| | | inputTime.sid = LogicMethod.NewSid(); |
| | | inputTime.condition_type = "1"; |
| | | Dictionary<string, string> dic = new Dictionary<string, string>(); |
| | | LogicMethod.dictionary(dic, "key", "timepoint"); |
| | | LogicMethod.dictionary(dic, "comparator", "="); |
| | | LogicMethod.dictionary(dic, "data_type", "string"); |
| | | LogicMethod.dictionary(dic, "value", timepoint); |
| | | inputTime.condition.Add(dic); |
| | | //旧数据索引 |
| | | int indexValue = int.Parse(inputView.btnClick.Tag.ToString()); |
| | | //移除旧数据 |
| | | Logic.currlogic.input.RemoveAt(indexValue); |
| | | //新数据插入旧数据的位置; |
| | | Logic.currlogic.input.Insert(indexValue, inputTime); |
| | | //添加一个新的时间点条件 |
| | | RemoveViewByTag("Logic"); |
| | | AddLogic addLogic = new AddLogic(); |
| | | MainPage.BasePageView.AddChidren(addLogic); |
| | | addLogic.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | |
| | | }; |
| | | } |
| | | break; |
| | | case "2": |
| | | { |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTrans60lucence, |
| | | }; |
| | | this.AddChidren(fLayout); |
| | | TimeTpye timeTpye = new TimeTpye(); |
| | | timeTpye.TimeHorizon(fLayout,true,int.Parse(inputView.btnClick.Tag.ToString())); |
| | | } |
| | | break; |
| | | } |
| | | }; |
| | | } |
| | | ///添加图标的View |
| | | LogicView.LogicAddView addInputIcon = new LogicView.LogicAddView(); |
| | | addInputIcon.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); |