gxc
2019-10-29 081ea8d273048fd03756718ac6fb48a3c09218e9
ZigbeeApp/Shared/Phone/Device/Logic/Cycle.cs
@@ -9,213 +9,441 @@
{
    public class Cycle : FrameLayout
    {
        Action action;
        public Cycle(Action action)
        {
            this.action = action;
        }
        public Cycle()
        {
            Tag = "Logic";
        }
        /// <summary>
        /// 选中
        /// </summary>
        Button beforeClickButton = new Button();
        public void Show()
        {
            this.BackgroundColor = ZigbeeColor.Current.LogicTopViewBackgroundColor;
            var topFrameLayout = new FrameLayout
            Tag = "Logic";
            #region  最上面的布局代码
            var topRowLayout = new RowLayout
            {
                Height = Application.GetRealHeight(140),
                Y = Application.GetRealHeight(80),
                BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
                Height = Application.GetRealHeight(184),
                LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
            };
            AddChidren(topFrameLayout);
            this.AddChidren(topRowLayout);
            var titleName = new Button
            {
                TextID = MyInternationalizationString.cycle,
                TextSize = 17,
                TextSize = 16,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                X = Application.GetRealWidth(176),
                Width = Application.GetRealWidth(400),
                Height = Application.GetRealHeight(69),
                Y = Application.GetRealHeight(92),
                TextID = MyInternationalizationString.cycle,
            };
            topFrameLayout.AddChidren(titleName);
            topRowLayout.AddChidren(titleName);
            var hdl = new Button
            var clickBtn = new Button
            {
                Width = Application.GetRealWidth(154),
                Height = Application.GetRealHeight(90),
                X = Application.GetRealWidth(1080 - 170),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "Logo/Logo.png",
                Width = Application.GetRealWidth(81 + 51),
                Height = Application.GetRealHeight(58 + 40),
                Y = Application.GetRealHeight(98 - 40),
            };
            //topFrameLayout.AddChidren(hdl);
            topRowLayout.AddChidren(clickBtn);
            clickBtn.MouseDownEventHandler += (sender, e) =>
            {
                RemoveFromParent();
                //if (action != null)
                //    action();
            };
            var back = new Button
            {
                Width = Application.GetRealWidth(110),
                Height = Application.GetRealHeight(110),
                X = Application.GetRealWidth(20),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "ZigeeLogic/Back.png",
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealHeight(51),
                X = Application.GetRealWidth(81),
                Y = Application.GetRealHeight(98),
                //Gravity = Gravity.CenterVertical;
                UnSelectedImagePath = "ZigeeLogic/back.png",
            };
            topFrameLayout.AddChidren(back);
            back.MouseDownEventHandler += (sender, e) =>
            {
            topRowLayout.AddChidren(back);
            back.MouseDownEventHandler += (sender, e) => {
                //if (action != null)
                //    action();
                RemoveFromParent();
                if (action != null)
                    action();
            };
            var titlerl = new RowLayout
            #endregion
            var middle = new FrameLayout
            {
                Height = Application.GetRealHeight(180),
               // BackgroundColor = 0xff0f0f0f,
                Y = Application.GetRealHeight(220),
                Y = topRowLayout.Bottom,
                Height = Application.GetRealHeight(1920 - 184),
                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
            };
            AddChidren(titlerl);
            titlerl.AddChidren(
                new Button
                {
                    X = Application.GetRealWidth(40),
                    //Text = "请选择重复执行周期",
                    TextID = MyInternationalizationString.repeat,
                    TextSize = 17,
                    TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                }
            );
            var middle = new VerticalScrolViewLayout();
            middle.Y = titlerl.Bottom;
            middle.Height = Application.GetRealHeight(1920 - 220 - 180 - 174);
            middle.BackgroundColor =ZigbeeColor.Current.LogicBackgroundColor;
            this.AddChidren(middle);
            var cyclelist = new List<string>();
            cyclelist.AddRange(new string[] {
                Language.StringByID(MyInternationalizationString.executeonce),
                Language.StringByID(MyInternationalizationString.everyday),
                //"今年",
                //Language.StringByID(MyInternationalizationString.workingday),
                //Language.StringByID(MyInternationalizationString.weekend),
                Language.StringByID(MyInternationalizationString.monthly),
                Language.StringByID(MyInternationalizationString.everyyear),
                Language.StringByID(MyInternationalizationString.logicminute),
            });
            foreach (var name in cyclelist)
            var btnsave = new Button
            {
                var cyclerwLayout = new RowLayout
                {
                    Height = Application.GetRealHeight(180),
                };
                middle.AddChidren(cyclerwLayout);
                Y= middle.Height-Application.GetRealHeight(260),
                X = Application.GetRealWidth(85),
                Height = Application.GetRealHeight(130),
                Width = Application.GetRealWidth(910),
                Radius = (uint)Application.GetRealHeight(60),
                BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
                TextID = MyInternationalizationString.Save,
                TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
            };
            middle.AddChidren(btnsave);
                var btn = new Button
                {
                    Height = Application.GetRealHeight(180),
                    Width = LayoutParams.MatchParent,
                    SelectedBackgroundColor = 0xfffe5e00,
                };
                cyclerwLayout.AddChidren(btn);
                var btnName = new Button
                {
                    Gravity = Gravity.CenterVertical,
                    Text = name,
                    Width = Application.GetRealWidth(400),
                    Height = Application.GetRealHeight(100),
                    X = Application.GetRealWidth(30),
                    TextSize = 16,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                };
                cyclerwLayout.AddChidren(btnName);
                var btntimeback = new Button
                {
                    Width = Application.GetRealWidth(110),
                    Height = Application.GetRealHeight(110),
                    //UnSelectedImagePath = "MusicIcon/Next.png",
                    SelectedImagePath = "ZigeeLogic/next.png",
                    X = Application.GetRealWidth(1080 - 140),
                };
                if (name == Language.StringByID(MyInternationalizationString.monthly) || name == Language.StringByID(MyInternationalizationString.everyyear) || name == Language.StringByID(MyInternationalizationString.logiccustom))
                {
                    cyclerwLayout.AddChidren(btntimeback);
                }
            #region   ----执行一次----
            var onceFramelayout = new FrameLayout
            {
                Height = Application.GetRealHeight(160),
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            middle.AddChidren(onceFramelayout);
                //if (timename == name) {
                //    beforeClickButton.IsSelected = false;
                //    beforeClickButton = btn;
                //    btn.IsSelected = true;
                //}
                EventHandler<MouseEventArgs> timeclick = (sender, e) =>
                {
                    if (btnName.Text == Language.StringByID(MyInternationalizationString.logiccustom))
                    {
                        var weekPage = new WeekPage();
                        UserView.HomePage.Instance.AddChidren(weekPage);
                        UserView.HomePage.Instance.PageIndex += 1;
                        weekPage.Show();
                    }
                    else if (btnName.Text == Language.StringByID(MyInternationalizationString.monthly))
                    {
                        var everymonthPage = new EverymonthPage();
                        UserView.HomePage.Instance.AddChidren(everymonthPage);
                        UserView.HomePage.Instance.PageIndex += 1;
                        everymonthPage.Show();
                    }
                    else if (btnName.Text == Language.StringByID(MyInternationalizationString.everyyear))
                    {
                        var everyyearPage = new EveryyearPage();
                        UserView.HomePage.Instance.AddChidren(everyyearPage);
                        UserView.HomePage.Instance.PageIndex += 1;
                        everyyearPage.Show();
                    }
                    else
                    {
                        beforeClickButton.IsSelected = false;
                        beforeClickButton = btn;
                        btn.IsSelected = true;
                        if (btnName.Text == Language.StringByID(MyInternationalizationString.everyday))
                        {
                            Common.Logic.CurrentLogic.TimeAttribute.Repeat = 2;
                        }
                        else if (btnName.Text == Language.StringByID(MyInternationalizationString.executeonce))
                        {
                            Common.Logic.CurrentLogic.TimeAttribute.Repeat = 0;
                        }
                    }
                };
                cyclerwLayout.MouseUpEventHandler += timeclick;
                btn.MouseUpEventHandler += timeclick;
                btnName.MouseUpEventHandler += timeclick;
                btntimeback.MouseUpEventHandler += timeclick;
            var onceIconBtn = new Button
            {
                Width = Application.GetRealWidth(81),
                Height = Application.GetRealHeight(81),
                X = Application.GetRealWidth(58),
                Y = Application.GetRealHeight(55),
                UnSelectedImagePath = "ZigeeLogic/point.png",
            };
            onceFramelayout.AddChidren(onceIconBtn);
            var btncomplete = new Button
            var onceRow = new RowLayout
            {
                Y = middle.Bottom,
                Height = Application.GetRealHeight(174),
                TextID = MyInternationalizationString.complete,
                //BackgroundColor = 0xff1f1f1f,
                TextSize = 16,
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(850),
                Height = Application.GetRealHeight(130),
                X = Application.GetRealWidth(176),
                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
            };
            onceFramelayout.AddChidren(onceRow);
            var onceTextBtn = new Button
            {
                Text = Language.StringByID(MyInternationalizationString.executeonce),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            AddChidren(btncomplete);
            onceRow.AddChidren(onceTextBtn);
            btncomplete.MouseUpEventHandler += (sedder, e) =>
            var onceBackBtn = new SelectedButton(789);
            onceRow.AddChidren(onceBackBtn);
            #endregion
            #region   ----每天----
            var everydayFramelayout = new FrameLayout
            {
                Height = Application.GetRealHeight(160),
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                Y = onceFramelayout.Bottom,
            };
            middle.AddChidren(everydayFramelayout);
            var everydayIconBtn = new Button
            {
                Width = Application.GetRealWidth(81),
                Height = Application.GetRealHeight(81),
                X = Application.GetRealWidth(58),
                Y = Application.GetRealHeight(55),
                UnSelectedImagePath = "ZigeeLogic/point.png",
            };
            everydayFramelayout.AddChidren(everydayIconBtn);
            var everydayRow = new RowLayout
            {
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(850),
                Height = Application.GetRealHeight(130),
                X = Application.GetRealWidth(176),
                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
            };
            everydayFramelayout.AddChidren(everydayRow);
            var everydayTxetBtn = new Button
            {
                TextID = MyInternationalizationString.everyday,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            everydayRow.AddChidren(everydayTxetBtn);
            var everydayBack = new SelectedButton(789);
            everydayRow.AddChidren(everydayBack);
            #endregion
            #region   ----每周----
            var weekFramelayout = new FrameLayout
            {
                Height = Application.GetRealHeight(160),
                Y = everydayFramelayout.Bottom,
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            middle.AddChidren(weekFramelayout);
            var weekIconBtn = new Button
            {
                Width = Application.GetRealWidth(81),
                Height = Application.GetRealHeight(81),
                UnSelectedImagePath = "ZigeeLogic/point.png",
                X = Application.GetRealWidth(58),
                Y = Application.GetRealHeight(55),
            };
            weekFramelayout.AddChidren(weekIconBtn);
            var weekRow = new RowLayout
            {
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(850),
                Height = Application.GetRealHeight(130),
                X = Application.GetRealWidth(176),
                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
            };
            weekFramelayout.AddChidren(weekRow);
            var weekTextBtn = new Button
            {
                TextAlignment = TextAlignment.CenterLeft,
                TextID = MyInternationalizationString.weekly,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            weekRow.AddChidren(weekTextBtn);
            var weekBack = new Button
            {
                Width = Application.GetRealWidth(58),
                Height = Application.GetRealHeight(58),
                UnSelectedImagePath = "ZigeeLogic/next.png",
                X = Application.GetRealWidth(789),
                Gravity = Gravity.CenterVertical,
            };
            weekRow.AddChidren(weekBack);
            #endregion
            #region   ----每月----
            var monthlyFramelayout = new FrameLayout
            {
                Height = Application.GetRealHeight(160),
                Y = weekFramelayout.Bottom,
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            middle.AddChidren(monthlyFramelayout);
            var monthlyIconBtn = new Button
            {
                Width = Application.GetRealWidth(81),
                Height = Application.GetRealHeight(81),
                UnSelectedImagePath = "ZigeeLogic/point.png",
                X = Application.GetRealWidth(58),
                Y = Application.GetRealHeight(55),
            };
            monthlyFramelayout.AddChidren(monthlyIconBtn);
            var monthlyRow = new RowLayout
            {
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(850),
                Height = Application.GetRealHeight(130),
                X = Application.GetRealWidth(176),
                LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            monthlyFramelayout.AddChidren(monthlyRow);
            var monthlyTextBtn = new Button
            {
                TextAlignment = TextAlignment.CenterLeft,
                TextID = MyInternationalizationString.monthly,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            monthlyRow.AddChidren(monthlyTextBtn);
            var monthlyBack = new Button
            {
                Width = Application.GetRealWidth(58),
                Height = Application.GetRealHeight(58),
                UnSelectedImagePath = "ZigeeLogic/next.png",
                X = Application.GetRealWidth(789),
                Gravity = Gravity.CenterVertical,
            };
            monthlyRow.AddChidren(monthlyBack);
            #endregion
            #region   ----每年----
            var yearFramelayout = new FrameLayout
            {
                Height = Application.GetRealHeight(160),
                Y = monthlyFramelayout.Bottom,
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            //middle.AddChidren(yearFramelayout);
            var yearIconBtn = new Button
            {
                Width = Application.GetRealWidth(81),
                Height = Application.GetRealHeight(81),
                UnSelectedImagePath = "ZigeeLogic/point.png",
                X = Application.GetRealWidth(58),
                Y = Application.GetRealHeight(55),
            };
            yearFramelayout.AddChidren(yearIconBtn);
            var yearRow = new RowLayout
            {
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(850),
                Height = Application.GetRealHeight(130),
                X = Application.GetRealWidth(176),
                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
            };
            yearFramelayout.AddChidren(yearRow);
            var yearTextBtn = new Button
            {
                TextAlignment = TextAlignment.CenterLeft,
                TextID = MyInternationalizationString.everyyear,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            yearRow.AddChidren(yearTextBtn);
            var yearBack = new Button
            {
                Width = Application.GetRealWidth(58),
                Height = Application.GetRealHeight(58),
                UnSelectedImagePath = "ZigeeLogic/next.png",
                X = Application.GetRealWidth(789),
                Gravity = Gravity.CenterVertical,
            };
            yearRow.AddChidren(yearBack);
            EventHandler<MouseEventArgs> yearclick = (sender, e) =>
            {
                var everyyearPage = new EveryyearPage();
                UserView.HomePage.Instance.AddChidren(everyyearPage);
                UserView.HomePage.Instance.PageIndex += 1;
                everyyearPage.Show();
            };
            yearFramelayout.MouseUpEventHandler += yearclick;
            yearTextBtn.MouseUpEventHandler += yearclick;
            yearBack.MouseUpEventHandler += yearclick;
            yearIconBtn.MouseUpEventHandler += yearclick;
            yearRow.MouseUpEventHandler += yearclick;
            #endregion
            EventHandler<MouseEventArgs> onceclick = (sender, e) =>
            {
                onceBackBtn.Visible = true;
                everydayBack.Visible = false;
            };
            onceTextBtn.MouseUpEventHandler += onceclick;
            onceBackBtn.MouseUpEventHandler += onceclick;
            onceFramelayout.MouseUpEventHandler += onceclick;
            onceIconBtn.MouseUpEventHandler += onceclick;
            onceRow.MouseUpEventHandler += onceclick;
            EventHandler<MouseEventArgs> everydayclick = (sender, e) =>
            {
                onceBackBtn.Visible = false;
                everydayBack.Visible = true;
            };
            everydayFramelayout.MouseUpEventHandler += everydayclick;
            everydayTxetBtn.MouseUpEventHandler += everydayclick;
            everydayBack.MouseUpEventHandler += everydayclick;
            everydayIconBtn.MouseUpEventHandler += everydayclick;
            everydayRow.MouseUpEventHandler += everydayclick;
            EventHandler<MouseEventArgs> weekclick = (sender, e) =>
            {
                onceBackBtn.Visible = false;
                everydayBack.Visible = false;
                var weekPage = new WeekPage();
                UserView.HomePage.Instance.AddChidren(weekPage);
                UserView.HomePage.Instance.PageIndex += 1;
                weekPage.Show(weekTextBtn.Text);
            };
            weekFramelayout.MouseUpEventHandler += weekclick;
            weekTextBtn.MouseUpEventHandler += weekclick;
            weekBack.MouseUpEventHandler += weekclick;
            weekIconBtn.MouseUpEventHandler += weekclick;
            weekRow.MouseUpEventHandler += weekclick;
            EventHandler<MouseEventArgs> monthlyclick = (sender, e) =>
            {
                onceBackBtn.Visible = false;
                everydayBack.Visible = false;
                var everymonthPage = new EverymonthPage();
                UserView.HomePage.Instance.AddChidren(everymonthPage);
                UserView.HomePage.Instance.PageIndex += 1;
                everymonthPage.Show(monthlyTextBtn.Text);
            };
            monthlyFramelayout.MouseUpEventHandler += monthlyclick;
            monthlyIconBtn.MouseUpEventHandler += monthlyclick;
            monthlyRow.MouseUpEventHandler += monthlyclick;
            monthlyTextBtn.MouseUpEventHandler += monthlyclick;
            monthlyBack.MouseUpEventHandler += monthlyclick;
            if (Common.Logic.CurrentLogic.TimeAttribute.Repeat == 0)
            {
                onceBackBtn.Visible = true;
                everydayBack.Visible = false;
            }
            else if (Common.Logic.CurrentLogic.TimeAttribute.Repeat == 2)
            {
                onceBackBtn.Visible = false;
                everydayBack.Visible = true;
            }
            else
            {
                onceBackBtn.Visible = false;
                everydayBack.Visible = false;
            }
            btnsave.MouseUpEventHandler += (sedder, e) =>
            {
                if (!onceBackBtn.Visible && !everydayBack.Visible)
                {
                    var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                                     Language.StringByID(MyInternationalizationString.selectweek),
                                                 Language.StringByID(MyInternationalizationString.complete));
                    alert.Show();
                    return;
                }
                if (onceBackBtn.Visible)
                {
                    Common.Logic.CurrentLogic.TimeAttribute.Repeat = 0;
                }
                if (everydayBack.Visible)
                {
                    Common.Logic.CurrentLogic.TimeAttribute.Repeat = 2;
                }
                RemoveFromParent();
                action();
            };
        }