old mode 100644
new mode 100755
| | |
| | | |
| | | public void Show() |
| | | { |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | LogicView.TopView topView = new LogicView.TopView(); |
| | | topView.setBtn.Visible = true; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (e, sen) => |
| | | { |
| | | RemoveFromParent(); |
| | | }; |
| | | topView.topNameBtn.TextID = StringId.newAutomation; |
| | | if (string.IsNullOrEmpty(Logic.currlogic.userLogicId)) |
| | | { |
| | | topView.topNameBtn.TextID = StringId.newAutomation; |
| | | topView.setBtn.Visible = false; |
| | | topView.clickSetBtn.Visible = false; |
| | | } |
| | | else |
| | | { |
| | | topView.topNameBtn.TextID = StringId.editAutomation; |
| | | topView.setBtn.Visible = true; |
| | | topView.clickSetBtn.Visible = true; |
| | | } |
| | | |
| | | |
| | | VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Width = Application.GetRealWidth(LogicView.TextSize.view375), |
| | | Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64-76), |
| | | Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64 - 76), |
| | | BackgroundColor = CSS.CSS_Color.viewMiddle, |
| | | }; |
| | | this.AddChidren(viewLayout); |
| | |
| | | viewLayout.AddChidren(addInputTextView.FLayoutView(46, 12)); |
| | | ///满足以下条件的View |
| | | LogicView.LogicTypeTitleView titleCondition = new LogicView.LogicTypeTitleView(); |
| | | titleCondition.frameLayout.SetCornerWithSameRadius(12,HDLUtils.RectCornerTopLeft| HDLUtils.RectCornerTopRight); |
| | | titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet; |
| | | titleCondition.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | titleCondition.btnText.TextID = StringId.andCondition; |
| | | viewLayout.AddChidren(titleCondition.FLayoutView()); |
| | | |
| | | for (int i = 0; i < Logic.currlogic.input.Count; i++) |
| | | if (Logic.currlogic.relation == "and") |
| | | { |
| | | 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; |
| | | } |
| | | }; |
| | | titleCondition.btnText.Text = Language.StringByID(StringId.andCondition); |
| | | } |
| | | else |
| | | { |
| | | titleCondition.btnText.Text = Language.StringByID(StringId.orCondition); |
| | | |
| | | } |
| | | |
| | | // 条件处理方法 |
| | | InpOrOutLogicMethod.InputCondition(this, viewLayout); |
| | | ///添加图标的View |
| | | LogicView.LogicAddView addInputIcon = new LogicView.LogicAddView(); |
| | | addInputIcon.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); |
| | | 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 目标 |
| | |
| | | viewLayout.AddChidren(addOutpuTextView.FLayoutView(54, 20)); |
| | | ///以下动作View |
| | | LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView(); |
| | | titleOutpu.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | titleOutpu.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | titleOutpu.btnText.TextID = StringId.theFollowingActions; |
| | | titleOutpu.btnNextIcon.Visible = false; |
| | | viewLayout.AddChidren(titleOutpu.FLayoutView()); |
| | | ///输出各种动作的View |
| | | LogicView.AddOutputInputView outputView = new LogicView.AddOutputInputView(); |
| | | viewLayout.AddChidren(outputView.FLayoutView()); |
| | | //目标处理方法 |
| | | InpOrOutLogicMethod.OutputTarget(this, viewLayout); |
| | | ///添加图标的View |
| | | LogicView.LogicAddView addOutputIcon = new LogicView.LogicAddView(); |
| | | addOutputIcon.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); |
| | | addOutputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); |
| | | viewLayout.AddChidren(addOutputIcon.FLayoutView()); |
| | | |
| | | #endregion |
| | | |
| | | #region 循环方式 |
| | |
| | | cyclicTextView.btnIf.TextID = StringId.cyclic; |
| | | viewLayout.AddChidren(cyclicTextView.FLayoutView(54, 20)); |
| | | ///选择周期类型View |
| | | LogicView.LogicTypeTitleView cyclicTitle= new LogicView.LogicTypeTitleView(); |
| | | cyclicTextView.frameLayout.Height = Application.GetRealHeight(50); |
| | | cyclicTitle.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight|HDLUtils.RectCornerBottomLeft|HDLUtils.RectCornerBottomRight); |
| | | //cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12); |
| | | cyclicTitle.btnText.TextID = StringId.days; |
| | | LogicView.LogicTypeTitleView cyclicTitle = new LogicView.LogicTypeTitleView(); |
| | | cyclicTitle.frameLayout.Height = Application.GetRealHeight(50); |
| | | cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12); |
| | | cyclicTitle.btnText.Text = MainView.GetCyclicText(Logic.currlogic); |
| | | viewLayout.AddChidren(cyclicTitle.FLayoutView()); |
| | | |
| | | #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(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | push.btnText.TextID = StringId.push; |
| | | viewLayout.AddChidren(push.FLayoutView()); |
| | | ///发送通知View |
| | | LogicView.LogicTypeTitleView notification = new LogicView.LogicTypeTitleView(); |
| | | notification.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight); |
| | | notification.btnText.TextID = StringId.notification; |
| | | viewLayout.AddChidren(notification.FLayoutView()); |
| | | ///上下间隔62像素 |
| | | viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(62)}); |
| | | 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; |
| | | //push.btnNextIcon.Width = Application.GetMinRealAverage(36); |
| | | //push.btnNextIcon.Height = Application.GetMinRealAverage(36); |
| | | //push.btnNextIcon.X = Application.GetRealWidth(305); |
| | | //push.btnNextIcon.UnSelectedImagePath = "LogicIcon/off.png"; |
| | | //push.btnNextIcon.SelectedImagePath = "LogicIcon/on.png"; |
| | | //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(24,HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | this.AddChidren(saveView.FLayoutView()); |
| | | //saveView.frameLayout.Y = this.Height - saveView.frameLayout.Height; |
| | | |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region 界面各种点击事件 |
| | | ///设置图标点击事件 |
| | | topView.clickSetBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | Set set = new Set(); |
| | | MainPage.BasePageView.AddChidren(set); |
| | | set.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | |
| | | }; |
| | | ///或和与点击事件 |
| | | titleCondition.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | AndOrMethod(titleCondition.btnText); |
| | | }; |
| | | ///条件添加点击事件 |
| | | addInputIcon.btnClick.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | var addInputType = new AddInputType(); |
| | | MainPage.BasePageView.AddChidren(addInputType); |
| | | addInputType.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | ///目标添加点击事件 |
| | | addOutputIcon.btnClick.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | var addTarget = new AddTarget(); |
| | | MainPage.BasePageView.AddChidren(addTarget); |
| | | addTarget.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | ///循环方式点击事件 |
| | | cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DateMethod(cyclicTitle.btnText); |
| | | }; |
| | | ///保存点击事件 |
| | | saveView.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if (Logic.currlogic.input.Count == 0&& Logic.currlogic.output.Count == 0) |
| | | { |
| | | new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNullOrtargetNull); |
| | | return; |
| | | } |
| | | if (Logic.currlogic.input.Count == 0) |
| | | { |
| | | new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNull); |
| | | return; |
| | | } |
| | | if (Logic.currlogic.output.Count == 0) |
| | | { |
| | | new LogicView.TipPopView().TipBox(StringId.tip, StringId.targetNull); |
| | | return; |
| | | } |
| | | Loading loading = new Loading(); |
| | | this.AddChidren(loading); |
| | | HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null; |
| | | if (string.IsNullOrEmpty(Logic.currlogic.userLogicId)) |
| | | { |
| | | List<string> list = new List<string>(); |
| | | foreach (var logic in Logic.LogicList) |
| | | { |
| | | list.Add(logic.name); |
| | | } |
| | | new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) => |
| | | { |
| | | Logic.currlogic.name = logicName; |
| | | Logic.currlogic.sid = LogicMethod.NewSid(); |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | |
| | | try |
| | | { |
| | | //发送新加逻辑命令; |
| | | responsePackNew = Send.AddLogic(Logic.currlogic); |
| | | |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | loading.Hide(); |
| | | if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") |
| | | { |
| | | |
| | | |
| | | //获取逻辑详细返回是一个数组(object类型转换为数组); |
| | | var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString()); |
| | | for (int a = 0; a < jArray.Count; a++) |
| | | { |
| | | var jay = jArray[a]; |
| | | //数据返序列化为Logic对象 |
| | | var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay); |
| | | var logic = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic>(str); |
| | | if (logic.userLogicId != "") |
| | | { |
| | | //更新云端唯一自动化id; |
| | | Logic.currlogic.userLogicId = logic.userLogicId; |
| | | } |
| | | else |
| | | { |
| | | //自己看的所以不需要支持中英文 |
| | | new LogicView.TipPopView().FlashingBox("没有返回云端唯一自动化id"); |
| | | } |
| | | |
| | | } |
| | | |
| | | Logic.LogicList.Add(Logic.currlogic); |
| | | LogicMethod.RemoveAllView(); |
| | | MainView.MainShow(); |
| | | } |
| | | else if (responsePackNew != null && responsePackNew.Code == "14005") |
| | | { |
| | | new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline)); |
| | | } |
| | | else |
| | | { |
| | | new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | }); |
| | | |
| | | } |
| | | else |
| | | { |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | |
| | | try |
| | | { |
| | | //发送修改逻辑命令; |
| | | responsePackNew = Send.UpdateLogic(Logic.currlogic); |
| | | |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | loading.Hide(); |
| | | if (responsePackNew != null && responsePackNew.Code == "0") |
| | | { |
| | | LogicMethod.RemoveAllView(); |
| | | MainView.MainShow(); |
| | | } |
| | | else if (responsePackNew != null && responsePackNew.Code == "14005") |
| | | { |
| | | new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline)); |
| | | } |
| | | else |
| | | { |
| | | new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | |
| | | }; |
| | | #endregion |
| | | } |
| | | /// <summary> |
| | | /// 循环方式(每天,每月。。) |
| | | /// </summary> |
| | | /// <param name="button">显示文本</param> |
| | | public void DateMethod(Button button) |
| | | { |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTrans60lucence, |
| | | }; |
| | | this.AddChidren(fLayout); |
| | | 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() { Text = "" }; |
| | | 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: |
| | | { |
| | | WeekMethod(fLayout, button); |
| | | } |
| | | break; |
| | | case 3: |
| | | { |
| | | MonMethod(fLayout, button); |
| | | } |
| | | break; |
| | | |
| | | |
| | | } |
| | | }; |
| | | |
| | | |
| | | //显示之前的状态 |
| | | if (button.Text == weekName) |
| | | { |
| | | dateTypeView.btnText.TextColor = CSS.CSS_Color.textConfirmColor; |
| | | selecetdBtn = dateTypeView.btnText; |
| | | |
| | | } |
| | | } |
| | | //确定保存 |
| | | dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) => |
| | | { |
| | | if (selecetdBtn.Text == Language.StringByID(StringId.performA)) |
| | | { |
| | | //执行一次 |
| | | Logic.currlogic.cycle.type = "once"; |
| | | } |
| | | else if (selecetdBtn.Text == Language.StringByID(StringId.days)) |
| | | { |
| | | //每天 |
| | | Logic.currlogic.cycle.type = "day"; |
| | | |
| | | } |
| | | else |
| | | { |
| | | //提示:还未选 |
| | | return; |
| | | } |
| | | //选中保存之后显示文本 |
| | | button.Text = selecetdBtn.Text; |
| | | //移除fLayout界面 |
| | | fLayout.RemoveFromParent(); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 选中星期几(周一,周二 。。。) |
| | | /// </summary> |
| | | /// <param name="fLayout">弹框主控件</param> |
| | | /// <param name="button">显示文本</param> |
| | | public void WeekMethod(FrameLayout fLayout, Button button) |
| | | { |
| | | //定义一个局部weekList列表用来记录选中数据; |
| | | List<string> weekStateList = new List<string>(); |
| | | |
| | | PublicInterface weekView = new PublicInterface(); |
| | | if (Logic.currlogic.cycle.type == "week") |
| | | { |
| | | //数据转换 |
| | | var list = weekView.GetWeekString(Logic.currlogic.cycle.value, "int"); |
| | | //加载之前保存的数据 |
| | | weekStateList.AddRange(list); |
| | | } |
| | | var weekListStr= weekView.GetViewList("week"); |
| | | weekView.MultiSelectShow(fLayout, weekListStr, Language.StringByID(StringId.cyclic), weekStateList |
| | | , (list) => |
| | | { |
| | | |
| | | //选中数据处理 |
| | | var statelist = weekView.GetWeekString(list, "str"); |
| | | string textStr = MainView.GetWeekString(statelist); |
| | | //显示选中数据 |
| | | button.Text = textStr; |
| | | //封装数据 |
| | | Logic.currlogic.cycle.type = "week"; |
| | | Logic.currlogic.cycle.value = statelist; |
| | | |
| | | }); |
| | | } |
| | | /// <summary> |
| | | /// 每月 |
| | | /// </summary> |
| | | /// <param name="fLayout">弹框主控件</param> |
| | | /// <param name="button">显示文本</param> |
| | | public void MonMethod(FrameLayout fLayout, Button button) |
| | | { |
| | | |
| | | PublicInterface weekView = new PublicInterface(); |
| | | weekView.MonSelectShow(fLayout, Logic.currlogic, (monList) => |
| | | { |
| | | //选中数据处理 |
| | | string textStr= MainView.GetMonString(monList); |
| | | //显示选中数据 |
| | | button.Text = textStr; |
| | | //封装数据 |
| | | Logic.currlogic.cycle.type = "mon"; |
| | | Logic.currlogic.cycle.value = monList; |
| | | }); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 满足条件 |
| | | /// </summary> |
| | | /// <param name="button">显示文本</param> |
| | | public void AndOrMethod(Button button) |
| | | { |
| | | |
| | | ///之前的状态文本 |
| | | string currCondition = button.Text; |
| | | PublicInterface conditionView = new PublicInterface(); |
| | | var strList = conditionView.GetViewList("andor"); |
| | | conditionView.SingleSelectionShow(this, strList, Language.StringByID(StringId.meetTheCondition), currCondition |
| | | , (stateValue) => |
| | | { |
| | | //界面显示选中值 |
| | | button.Text = stateValue; |
| | | //封装数据 |
| | | if (stateValue == Language.StringByID(StringId.orCondition)) |
| | | { |
| | | Logic.currlogic.relation = "or"; |
| | | } |
| | | else |
| | | { |
| | | Logic.currlogic.relation = "and"; |
| | | } |
| | | |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |