陈嘉乐
2020-12-03 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -17,12 +17,32 @@
            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.sid))
            {
                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;
            }
            topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
            {
                Set set = new Set();
                MainPage.BasePageView.AddChidren(set);
                set.Show();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
            {
@@ -40,8 +60,19 @@
            ///满足以下条件的View
            LogicView.LogicTypeTitleView titleCondition = new LogicView.LogicTypeTitleView();
            titleCondition.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet;
            titleCondition.btnText.TextID = StringId.andCondition;
            viewLayout.AddChidren(titleCondition.FLayoutView());
            titleCondition.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                FrameLayout fLayout = new FrameLayout
                {
                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                };
                this.AddChidren(fLayout);
                AndOrMethod(fLayout, titleCondition.btnText);
            };
            // 条件处理方法
            InpOrOutLogicMethod.InputCondition(this, viewLayout);
            ///添加图标的View
@@ -67,6 +98,7 @@
            LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView();
            titleOutpu.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            titleOutpu.btnText.TextID = StringId.theFollowingActions;
            titleOutpu.btnNextIcon.Visible = false;
            viewLayout.AddChidren(titleOutpu.FLayoutView());
            //目标处理方法
            InpOrOutLogicMethod.OutputTarget(this, viewLayout);
@@ -115,6 +147,11 @@
            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();
@@ -132,15 +169,48 @@
            this.AddChidren(saveView.FLayoutView());
            saveView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                Logic.LogicList.Add(Logic.currlogic);
                LogicMethod.RemoveAllView();
                MainView.MainShow();
                if (string.IsNullOrEmpty(Logic.currlogic.sid))
                {
                    List<string> list = new List<string>();
                    foreach (var logic in Logic.LogicList)
                    {
                        list.Add(logic.name);
                    }
                    new LogicView.TipPopView().InputBox(StringId.editName, Logic.currlogic.name, StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
                    {
                        Logic.currlogic.name = logicName;
                        Logic.currlogic.sid = LogicMethod.NewSid();
                        //发送新加修改逻辑命令;
                        var responsePackNew = Send.AddLogic(Logic.currlogic);
                        if (responsePackNew.Code == "0")
                        {
                            Logic.LogicList.Add(Logic.currlogic);
                            LogicMethod.RemoveAllView();
                            MainView.MainShow();
                        }
                        else {
                            new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                        }
                    });
                }
                else
                {
                    //发送新加修改逻辑命令;
                    var responsePackNew = Send.updateLogic(Logic.currlogic);
                    if (responsePackNew.Code == "0")
                    {
                        LogicMethod.RemoveAllView();
                        MainView.MainShow();
                    }
                    else {
                        new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                    }
                }
            };
            //saveView.frameLayout.Y = this.Height - saveView.frameLayout.Height;
            #endregion
        }
        /// <summary>
@@ -259,7 +329,7 @@
            //确定保存
            dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) =>
            {
                if (weekName == Language.StringByID(StringId.monthly)|| weekName!= Language.StringByID(StringId.weekly)) {
                if (weekName == Language.StringByID(StringId.monthly)|| weekName== Language.StringByID(StringId.weekly)) {
                    //提示:还未选
                    return;
@@ -404,7 +474,7 @@
                }
                Logic.currlogic.cycle.type = "week";
                Logic.currlogic.cycle.value = weekList;
                button.Text = GetWeekString(weekList);
                button.Text = MainView.GetWeekString(weekList);
                fLayout.RemoveFromParent();
            };
@@ -503,70 +573,103 @@
                }
                Logic.currlogic.cycle.type = "mon";
                Logic.currlogic.cycle.value = monList;
                button.Text = GetMonString(monList);
                button.Text = MainView.GetMonString(monList);
                fLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 获取星期的字符串
        /// 满足条件
        /// </summary>
        /// <param name="weekList"></param>
        /// <returns></returns>
        public string GetWeekString(List<string> weekList)
        /// <param name="fLayout">弹框主控件</param>
        /// <param name="button">显示文本</param>
        public void AndOrMethod(FrameLayout fLayout, Button button)
        {
            string weekTextName = "";
            LogicView.DateView meetTheConditionView = new LogicView.DateView();
            meetTheConditionView.btnTitle.TextID = StringId.meetTheCondition;
            meetTheConditionView.FLayoutView(fLayout, 2);
            meetTheConditionView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
            {
                fLayout.RemoveFromParent();
            };
            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(',');
        }
        /// <summary>
        /// 获取每月的字符串
        /// </summary>
        /// <param name="monList"></param>
        /// <returns></returns>
        public string GetMonString(List<string> monList)
        {
            string monTextName = Language.StringByID(StringId.monthly);
            //定义一个局部变量记录选中文本状态
            string condition = "";
            LogicView.SelectTypeView andConditionViews = new LogicView.SelectTypeView();
            andConditionViews.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
            andConditionViews.frameLayout.Y = Application.GetRealHeight(56);
            andConditionViews.btnIcon.Visible = false;
            andConditionViews.btnText.X = Application.GetRealWidth(20);
            andConditionViews.btnText.TextID = StringId.andCondition;
            andConditionViews.btnLine.X = Application.GetRealWidth(20);
            andConditionViews.btnLine.Width = Application.GetRealWidth(303);
            andConditionViews.btnNextIcon.X = Application.GetRealWidth(303);
            andConditionViews.btnNextIcon.Width = Application.GetMinRealAverage(28);
            andConditionViews.btnNextIcon.Height = Application.GetMinRealAverage(28);
            andConditionViews.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
            andConditionViews.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
            meetTheConditionView.frameLayout.AddChidren(andConditionViews.FLayoutView());
            for (int i = 1; i < 32; i++)
            LogicView.SelectTypeView orConditionView = new LogicView.SelectTypeView();
            orConditionView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
            orConditionView.frameLayout.Y = Application.GetRealHeight(56 + 50);
            orConditionView.btnIcon.Visible = false;
            orConditionView.btnText.X = Application.GetRealWidth(20);
            orConditionView.btnText.TextID = StringId.orCondition;
            orConditionView.btnLine.X = Application.GetRealWidth(20);
            orConditionView.btnLine.Width = Application.GetRealWidth(303);
            orConditionView.btnNextIcon.X = Application.GetRealWidth(303);
            orConditionView.btnNextIcon.Width = Application.GetMinRealAverage(28);
            orConditionView.btnNextIcon.Height = Application.GetMinRealAverage(28);
            orConditionView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
            orConditionView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
            meetTheConditionView.frameLayout.AddChidren(orConditionView.FLayoutView());
            if (Logic.currlogic.relation == "and")
            {
                if (monList.Contains(i.ToString()))
                andConditionViews.btnNextIcon.IsSelected = true;
                condition = "and";
            }
            else
            {
                orConditionView.btnNextIcon.IsSelected = true;
                condition = "or";
            }
            andConditionViews.btnClick.MouseUpEventHandler += (sen1, e) =>
            {
                condition = "and";
                andConditionViews.btnNextIcon.IsSelected = true;
                orConditionView.btnNextIcon.IsSelected = false;
            };
            orConditionView.btnClick.MouseUpEventHandler += (sen1, e) =>
            {
                condition = "or";
                andConditionViews.btnNextIcon.IsSelected = false;
                orConditionView.btnNextIcon.IsSelected = true;
            };
            //确定点击事件
            meetTheConditionView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (string.IsNullOrEmpty(condition))
                {
                    monTextName += i.ToString() + ",";
                    //提示:还没选中执行周期
                    return;
                }
            }
            return monTextName.TrimEnd(',');
                Logic.currlogic.relation = condition;
                if (condition == "or")
                {
                    button.Text = Language.StringByID(StringId.orCondition);
                }
                else
                {
                    button.Text = Language.StringByID(StringId.andCondition);
                }
                fLayout.RemoveFromParent();
            };
        }
    }
}