陈嘉乐
2020-12-11 3e7c0a6deda128e639abfa3b8ed9377dbd017526
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -14,7 +14,7 @@
        public void Show()
        {
            #region  界面布局
            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
            LogicView.TopView topView = new LogicView.TopView();
            topView.setBtn.Visible = true;
@@ -35,14 +35,7 @@
                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
            {
@@ -62,16 +55,16 @@
            titleCondition.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            titleCondition.btnText.TextID = StringId.andCondition;
            viewLayout.AddChidren(titleCondition.FLayoutView());
            titleCondition.btnClick.MouseUpEventHandler += (sender, e) =>
            if (Logic.currlogic.relation == "and")
            {
                FrameLayout fLayout = new FrameLayout
                {
                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                };
                this.AddChidren(fLayout);
                AndOrMethod(fLayout, titleCondition.btnText);
            };
                titleCondition.btnText.Text = Language.StringByID(StringId.andCondition);
            }
            else
            {
                titleCondition.btnText.Text = Language.StringByID(StringId.orCondition);
            }
            // 条件处理方法
            InpOrOutLogicMethod.InputCondition(this, viewLayout);
@@ -79,14 +72,6 @@
            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  目标
@@ -106,13 +91,7 @@
            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  循环方式
@@ -126,13 +105,7 @@
            cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
            cyclicTitle.btnText.Text = MainView.GetWeekText(Logic.currlogic);
            viewLayout.AddChidren(cyclicTitle.FLayoutView());
            cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                DateMethod(cyclicTitle.btnText);
            };
            #endregion
            #region  执行推送 发送通知
@@ -163,6 +136,52 @@
            LogicView.SaveView saveView = new LogicView.SaveView();
            saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            this.AddChidren(saveView.FLayoutView());
            #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) =>
            {
                FrameLayout fLayout = new FrameLayout
                {
                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                };
                this.AddChidren(fLayout);
                AndOrMethod(fLayout, 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 (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
@@ -209,7 +228,6 @@
            };
            #endregion
        }
        /// <summary>
        /// 循环方式(每天,每月。。)
@@ -300,13 +318,11 @@
                            break;
                        case 2:
                            {
                                // weekName = Language.StringByID(StringId.weekly);
                                WeekMethod(fLayout, button);
                            }
                            break;
                        case 3:
                            {
                                //weekName = Language.StringByID(StringId.monthly);
                                MonMethod(fLayout, button);
                            }
                            break;
@@ -393,97 +409,15 @@
        /// <param name="button">显示文本</param>
        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();
            };
            //定义一个局部monList列表用来记录选中数据;
            List<string> monList = new List<string>();
            if (Logic.currlogic.cycle.type == "mon")
            {
                //加载之前保存的数据
                monList.AddRange(Logic.currlogic.cycle.value);
            }
            //定义一个变量记录行数
            int lineSun = 0;
            for (int i = 1; i < 32; i++)
            {
                Button monTextBtn = new Button
                {
                    Width = Application.GetRealWidth(30),
                    Height = Application.GetRealWidth(30),
                    Radius = (uint)Application.GetRealWidth(15),
                    Text = i.ToString(),
                    TextSize = LogicView.TextSize.text14,
                    TextColor = CSS.CSS_Color.textColor,
                    SelectedTextColor = CSS.CSS_Color.view,
                    SelectedBackgroundColor = CSS.CSS_Color.textConfirmColor,
                    BackgroundColor = CSS.CSS_Color.viewTranslucence,
                    Tag = i,
                };
                monView.frameLayout.AddChidren(monTextBtn);
                if (lineSun > 0)
                {
                    monTextBtn.X = Application.GetRealWidth(16 + ((i - 1) - lineSun * 7) * 46);
                }
                else
                {
                    monTextBtn.X = Application.GetRealWidth(16 + (i - 1) * 46);
                }
                monTextBtn.Y = Application.GetRealWidth(58 + 10 + lineSun * (30 + 10));
            PublicInterface weekView = new PublicInterface();
            weekView.MonSelectShow(fLayout, Logic.currlogic, (monList) =>
                {
                    Logic.currlogic.cycle.type = "mon";
                    Logic.currlogic.cycle.value = monList;
                    button.Text = MainView.GetMonString(monList);
                });
                if (i % 7 == 0)
                {
                    //一定执行完再判断是否要换行.
                    lineSun = lineSun + 1;
                }
                monTextBtn.MouseUpEventHandler += (sender, e) =>
                {
                    string clickIndex = monTextBtn.Tag.ToString();
                    monTextBtn.IsSelected = !monTextBtn.IsSelected;
                    if (monTextBtn.IsSelected)
                    {
                        monTextBtn.IsSelected = true;
                        if (!monList.Contains(clickIndex))
                        {
                            //添加选中数据
                            monList.Add(clickIndex);
                        }
                    }
                    else
                    {
                        monTextBtn.IsSelected = false;
                        if (monList.Contains(clickIndex))
                        {
                            //移除选中数据
                            monList.Remove(clickIndex);
                        }
                    }
                };
                if (monList.Contains(i.ToString()))
                {
                    monTextBtn.IsSelected = true;
                }
            }
            //确定点击事件
            monView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (monList.Count == 0)
                {
                    //提示:还没选中执行周期
                    return;
                }
                Logic.currlogic.cycle.type = "mon";
                Logic.currlogic.cycle.value = monList;
                button.Text = MainView.GetMonString(monList);
                fLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 满足条件
@@ -492,91 +426,29 @@
        /// <param name="button">显示文本</param>
        public void AndOrMethod(FrameLayout fLayout, Button button)
        {
            LogicView.DateView meetTheConditionView = new LogicView.DateView();
            meetTheConditionView.btnTitle.TextID = StringId.meetTheCondition;
            meetTheConditionView.FLayoutView(fLayout, 2);
            meetTheConditionView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
            {
                fLayout.RemoveFromParent();
            List<string> strList = new List<string> {
             Language.StringByID(StringId.andCondition),
             Language.StringByID(StringId.orCondition),
            };
            ///之前的状态文本
            string currCondition = button.Text;
            //定义一个局部变量记录选中文本状态
            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.GetRealWidth(28);
            andConditionViews.btnNextIcon.Height = Application.GetRealWidth(28);
            andConditionViews.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
            andConditionViews.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
            meetTheConditionView.frameLayout.AddChidren(andConditionViews.FLayoutView());
            PublicInterface conditionView = new PublicInterface();
            conditionView.SingleSelectionShow(fLayout, strList, Language.StringByID(StringId.meetTheCondition), currCondition
               , (stateValue) =>
               {
                   if (stateValue == Language.StringByID(StringId.orCondition))
                   {
                       Logic.currlogic.relation = "or";
                   }
                   else
                   {
                       Logic.currlogic.relation = "and";
                   }
                   button.Text = stateValue;
               });
            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.GetRealWidth(28);
            orConditionView.btnNextIcon.Height = Application.GetRealWidth(28);
            orConditionView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
            orConditionView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
            meetTheConditionView.frameLayout.AddChidren(orConditionView.FLayoutView());
            if (Logic.currlogic.relation == "and")
            {
                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))
                {
                    //提示:还没选中执行周期
                    return;
                }
                Logic.currlogic.relation = condition;
                if (condition == "or")
                {
                    button.Text = Language.StringByID(StringId.orCondition);
                }
                else
                {
                    button.Text = Language.StringByID(StringId.andCondition);
                }
                fLayout.RemoveFromParent();
            };
        }
        /// <summary>
@@ -671,5 +543,22 @@
            return stateList;
        }
        /// <summary>
        /// 灰色弹框父控件
        /// </summary>
        /// <param name="frame">显示在哪个界面</param>
        /// <returns></returns>
        public FrameLayout GetFrame(FrameLayout frame, string tagKey)
        {
            FrameLayout fLayout = new FrameLayout
            {
                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                Tag = tagKey,
            };
            frame.AddChidren(fLayout);
            return fLayout;
        }
    }
}