WJC
2020-04-02 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7
ZigbeeApp/Shared/Phone/Device/Logic/TimePage.cs
old mode 100755 new mode 100644
@@ -3,6 +3,7 @@
using Shared;
using Shared.Common;
using Shared.Phone;
using Shared.Phone.Device.Logic.LogicView;
using Shared.R;
using ZigBee.Device;
@@ -14,183 +15,70 @@
        {
            Tag = "Logic";
        }
        public bool IsDeviceEditor1;
        public bool IsEditor;
        public string str1;
        Dictionary<string, string> timeBucketConditionsInfo = new Dictionary<string, string>();
        public void Show()
        {
            this.BackgroundColor = ZigbeeColor.Current.LogicTopViewBackgroundColor;
            this.AddChidren(new Button
            {
                Height = Application.GetRealHeight(80),
            });
            var topFrameLayout = new FrameLayout
            {
                Height = Application.GetRealHeight(140),
                Y = Application.GetRealHeight(80),
            };
            AddChidren(topFrameLayout);
            var titleName = new Button
            {
                Text = Language.StringByID(MyInternationalizationString.addtime),
                TextSize = 17,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                X = Application.GetRealWidth(150),
            };
            topFrameLayout.AddChidren(titleName);
            var back = new Button
            {
                Width = Application.GetRealWidth(110),
                Height = Application.GetRealHeight(110),
                X = Application.GetRealWidth(20),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "ZigeeLogic/Back.png",
            };
            topFrameLayout.AddChidren(back);
            back.MouseDownEventHandler += (sender, e) =>
            {
                RemoveFromParent();
                IsDeviceEditor1 = false;
            };
            var middle = new VerticalScrolViewLayout();
            middle.Y = topFrameLayout.Bottom;
            middle.Height = Application.GetRealHeight(1920- 220 - 200);
            middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
            this.AddChidren(middle);
            #region   -----立即执行
            var row = new RowLayout
            {
                Height = Application.GetRealHeight(250),
            };
            middle.AddChidren(row);
            var btnTextTitle = new Button
            {
                Height = Application.GetRealHeight(50),
                Width = Application.GetRealWidth(800),
                Y = Application.GetRealHeight(20),
                X = Application.GetRealWidth(40),
               // Text = "请选择时间类型",
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextID = MyInternationalizationString.Selectedtimetype,
            };
            row.AddChidren(btnTextTitle);
            var btnTypeTextTitle = new Button
            {
                Y = Application.GetRealHeight(20 + 50),
               // Text = "类型",
                X = Application.GetRealWidth(40),
                TextAlignment = TextAlignment.CenterLeft,
                Height = Application.GetRealHeight(180),
                Width = Application.GetRealWidth(400),
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextID = MyInternationalizationString.type,
            };
            row.AddChidren(btnTypeTextTitle);
            var btnTypeText = new Button
            {
                Y = Application.GetRealHeight(20 + 50),
                X = Application.GetRealWidth(1080 - 500 - 40),
                //Text = "时间范围",
                TextAlignment = TextAlignment.CenterRight,
                Height = Application.GetRealHeight(180),
                Width = Application.GetRealWidth(500),
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextID = MyInternationalizationString.timeframe,
            };
            row.AddChidren(btnTypeText);
            #region  上面的布局代码
            TopView view = new TopView();
            this.AddChidren(view.TopRowView());
            view.toptitleNameBtn.TextID = MyInternationalizationString.selection;
            view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
            #endregion
            var timestartrow = new RowLayout
            #region  最下面的布局代码
            var middle = new FrameLayout
            {
                Height = Application.GetRealHeight(180),
                Y = view.topRowLayout.Bottom,
                Height = Application.GetRealHeight(1920 - 184-260),
                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
            };
            middle.AddChidren(timestartrow);
            this.AddChidren(middle);
            var btnstarttimetext = new Button
            {
                TextAlignment = TextAlignment.CenterLeft,
                Width = Application.GetRealWidth(300),
                X = Application.GetRealWidth(30),
                TextID = MyInternationalizationString.starttime,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            timestartrow.AddChidren(btnstarttimetext);
            //保存
            SaveView saveView = new SaveView();
            saveView.frameLayout.Y = middle.Bottom;
            this.AddChidren(saveView.Show());
            #endregion
            var btnstarttime = new Button
            {
                X = Application.GetRealWidth(330),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(600),
                TextAlignment = TextAlignment.CenterLeft,
                Tag = "0",
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            timestartrow.AddChidren(btnstarttime);
            #region   -----时间范围  开始时间  结束时间
            #region   -----时间范围
            var btnstartback = new Button
            {
                Width = Application.GetRealWidth(110),
                Height = Application.GetRealHeight(110),
                UnSelectedImagePath = "ZigeeLogic/next.png",
                SelectedImagePath = "ZigeeLogic/NextSelecte.png",
                X = Application.GetRealWidth(1080-140),
                Gravity = Gravity.CenterVertical,
            };
            timestartrow.AddChidren(btnstartback);
            TypeView typeView = new TypeView();
            middle.AddChidren(typeView.Show());
            typeView.textBtn.TextID = MyInternationalizationString.type;
            typeView.titleBtn.Width = Application.GetRealWidth(630+70);
            typeView.titleBtn.TextID = MyInternationalizationString.timeframe;
            typeView.backBtn.Visible = false;
            var timeendrow = new RowLayout
            {
                Height = Application.GetRealHeight(180),
            };
            middle.AddChidren(timeendrow);
            var btnendtimetext = new Button
            {
                TextAlignment = TextAlignment.CenterLeft,
                Width = Application.GetRealWidth(300),
                X = Application.GetRealWidth(30),
                TextID = MyInternationalizationString.endtime,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            timeendrow.AddChidren(btnendtimetext);
            #endregion
            var btnendtime = new Button
            {
                X = Application.GetRealWidth(330),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(600),
                TextAlignment = TextAlignment.CenterLeft,
                Tag = "0",
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
            };
            timeendrow.AddChidren(btnendtime);
            #region  -----开始时间
            var btnendtimeback = new Button
            {
                Width = Application.GetRealWidth(110),
                Height = Application.GetRealHeight(110),
                UnSelectedImagePath = "ZigeeLogic/next.png",
                SelectedImagePath = "ZigeeLogic/NextSelecte.png",
                X = Application.GetRealWidth(1080-140),
                Gravity = Gravity.CenterVertical,
            };
            timeendrow.AddChidren(btnendtimeback);
            TypeView startView = new TypeView();
            startView.frameLayout.Y = typeView.frameLayout.Bottom;
            middle.AddChidren(startView.Show());
            startView.textBtn.TextID = MyInternationalizationString.starttime;
            startView.titleBtn.Tag = "0";
            #endregion
            #region  -----结束时间
            if (IsDeviceEditor1)
            TypeView endView = new TypeView();
            endView.frameLayout.Y = startView.frameLayout.Bottom;
            endView.frameLayout.Height = Application.GetRealHeight(160 + 20);//最后一行增加20高度;
            middle.AddChidren(endView.Show());
            endView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;//改变最后一行线颜色;
            endView.textBtn.TextID = MyInternationalizationString.endtime;
            endView.titleBtn.Tag = "0";
            #endregion
            #endregion
            if (IsEditor)
            {
                if (str1 != null)
                {
@@ -215,8 +103,8 @@
                    {
                        s2 = endtime[1];
                    }
                    btnstarttime.Text = starttime[0] + ":" + s1;
                    btnendtime.Text =endtime[0] + ":" + s2;
                    startView.titleBtn.Text = starttime[0] + ":" + s1;
                    endView.titleBtn.Text =endtime[0] + ":" + s2;
                    //btnstarttime.Text = timestr[0];
                    //btnendtime.Text = timestr[1];
@@ -240,16 +128,16 @@
                    timeBucketConditionsInfo.Add("StartMin", starttime[1]);
                    timeBucketConditionsInfo.Add("StopHour", endtime[0]);
                    timeBucketConditionsInfo.Add("StopMin", endtime[1]);
                    btnstarttime.Tag = int.Parse(starttime[0]) * 60 + int.Parse(starttime[1]);
                    btnendtime.Tag = int.Parse(endtime[0]) * 60 + int.Parse(endtime[1]);
                    startView.titleBtn.Tag = int.Parse(starttime[0]) * 60 + int.Parse(starttime[1]);
                    endView.titleBtn.Tag = int.Parse(endtime[0]) * 60 + int.Parse(endtime[1]);
                }
            }
            EventHandler<MouseEventArgs> stattimeclick = (sender, e) =>
            startView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
                var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
                AddChidren(flMain);
                flMain.MouseUpEventHandler += (sender11, e11) =>
                {
@@ -285,19 +173,21 @@
                    var startval = timeview.Hour * 60 + timeview.Minute;
                    if (btnendtime.Tag.ToString() != "0" &&  startval.ToString()==btnendtime.Tag.ToString())
                    if (endView.titleBtn.Tag.ToString() != "0" &&  startval.ToString()== endView.titleBtn.Tag.ToString())
                    {
                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                              Language.StringByID(MyInternationalizationString.nottime),
                                              Language.StringByID(MyInternationalizationString.confrim));
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                                        Language.StringByID(MyInternationalizationString.nottime),
                                       Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
                        return;
                    }
                    if (btnendtime.Tag.ToString() != "0" && startval > int.Parse(btnendtime.Tag.ToString()))
                    if (endView.titleBtn.Tag.ToString() != "0" && startval > int.Parse(endView.titleBtn.Tag.ToString()))
                    {
                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                              Language.StringByID(MyInternationalizationString.timesetting),
                                              Language.StringByID(MyInternationalizationString.confrim));
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                                        Language.StringByID(MyInternationalizationString.timesetting),
                                       Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
                        return;
                    }
@@ -309,21 +199,17 @@
                    {
                        timeBucketConditionsInfo.Remove("StartMin");
                    }
                    btnstarttime.Tag = timeview.Hour * 60 + timeview.Minute;
                    startView.titleBtn.Tag = timeview.Hour * 60 + timeview.Minute;
                    timeBucketConditionsInfo.Add("StartHour", timeview.Hour.ToString());
                    timeBucketConditionsInfo.Add("StartMin", timeview.Minute.ToString());
                    btnstarttime.Text = timeview.Hour.ToString() + ":" + (timeview.Minute.ToString().Length < 2?"0"+timeview.Minute.ToString():timeview.Minute.ToString());
                    startView.titleBtn.Text = timeview.Hour.ToString() + ":" + (timeview.Minute.ToString().Length < 2?"0"+timeview.Minute.ToString():timeview.Minute.ToString());
                };
            };
            timestartrow.MouseUpEventHandler += stattimeclick;
            btnstarttimetext.MouseUpEventHandler += stattimeclick;
            btnstarttime.MouseUpEventHandler += stattimeclick;
            btnstartback.MouseUpEventHandler += stattimeclick;
            EventHandler<MouseEventArgs> endtimeclick = (sender, e) =>
            endView.clickviewBtn.MouseUpEventHandler+= (sender, e) =>
            {
                var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
                var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
                AddChidren(flMain);
                flMain.MouseUpEventHandler += (sender11, e11) =>
                {
@@ -359,19 +245,21 @@
                    var endval = timeview.Hour * 60 + timeview.Minute;
                    if (btnstarttime.Tag.ToString() != "0" && endval.ToString() == btnstarttime.Tag.ToString())
                    if (startView.titleBtn.Tag.ToString() != "0" && endval.ToString() == startView.titleBtn.Tag.ToString())
                    {
                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                              Language.StringByID(MyInternationalizationString.nottime),
                                              Language.StringByID(MyInternationalizationString.confrim));
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                                        Language.StringByID(MyInternationalizationString.nottime),
                                       Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
                        return;
                    }
                    if (btnstarttime.Tag.ToString() != "0" && endval < int.Parse(btnstarttime.Tag.ToString()))
                    if (startView.titleBtn.Tag.ToString() != "0" && endval < int.Parse(startView.titleBtn.Tag.ToString()))
                    {
                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                              Language.StringByID(MyInternationalizationString.timesetting),
                                              Language.StringByID(MyInternationalizationString.confrim));
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                                        Language.StringByID(MyInternationalizationString.timesetting),
                                       Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
                        return;
                    }
@@ -384,59 +272,46 @@
                    {
                        timeBucketConditionsInfo.Remove("StopMin");
                    }
                    btnendtime.Tag = timeview.Hour * 60 + timeview.Minute;
                    endView.titleBtn.Tag = timeview.Hour * 60 + timeview.Minute;
                    timeBucketConditionsInfo.Add("StopHour",timeview.Hour.ToString());
                    timeBucketConditionsInfo.Add("StopMin", timeview.Minute.ToString());
                    btnendtime.Text = timeview.Hour.ToString() + ":" + (timeview.Minute.ToString().Length < 2?"0"+timeview.Minute.ToString():timeview.Minute.ToString());
                    endView.titleBtn.Text = timeview.Hour.ToString() + ":" + (timeview.Minute.ToString().Length < 2?"0"+timeview.Minute.ToString():timeview.Minute.ToString());
                };
            };
            timeendrow.MouseUpEventHandler += endtimeclick;
            btnendtimetext.MouseUpEventHandler += endtimeclick;
            btnendtime.MouseUpEventHandler += endtimeclick;
            btnendtimeback.MouseUpEventHandler += endtimeclick;
            var fra = new FrameLayout
            {
                Y = middle.Bottom,
                Height = Application.GetRealHeight(200),
                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
            };
            this.AddChidren(fra);
            var btncomplete = new Button
            {
                X = Application.GetRealWidth(290),
                Height = Application.GetRealHeight(150),//194
                Width = Application.GetRealWidth(500),
                Radius = (uint)Application.GetRealHeight(50),
                BackgroundColor = ZigbeeColor.Current.LogicButtonBlueColor,
                TextID = MyInternationalizationString.Save,
            };
            fra.AddChidren(btncomplete);
            timeBucketConditionsInfo.Add("Type","5");
            timeBucketConditionsInfo.Add("IsValid", "1");
            ///完成点击事件
            EventHandler<MouseEventArgs>completeclick=(sender, e) =>
            saveView.clickviewBtn.MouseUpEventHandler+= (sender, e) =>
            {
                if (string.IsNullOrEmpty(btnstarttime.Text) || string.IsNullOrEmpty(btnendtime.Text))
                if (timeBucketConditionsInfo.ContainsKey("Type"))
                {
                    var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                    timeBucketConditionsInfo.Remove("Type");
                }
                if (timeBucketConditionsInfo.ContainsKey("IsValid"))
                {
                    timeBucketConditionsInfo.Remove("IsValid");
                }
                timeBucketConditionsInfo.Add("Type", "5");
                timeBucketConditionsInfo.Add("IsValid", "1");
                if (string.IsNullOrEmpty(startView.titleBtn.Text) || string.IsNullOrEmpty(endView.titleBtn.Text))
                {
                    var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                                           Language.StringByID(MyInternationalizationString.completeNext),
                                          Language.StringByID(MyInternationalizationString.complete));
                                          Language.StringByID(MyInternationalizationString.confrim));
                    alert.Show();
                    return;
                }
                if (btnstarttime.Text == btnendtime.Text)
                if (startView.titleBtn.Text == endView.titleBtn.Text)
                {
                    var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                          Language.StringByID(MyInternationalizationString.sametime),
                                         Language.StringByID(MyInternationalizationString.complete));
                    var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                                           Language.StringByID(MyInternationalizationString.sametime),
                                          Language.StringByID(MyInternationalizationString.confrim));
                    alert.Show();
                    return;
                }
                if (IsDeviceEditor1)
                if (IsEditor)
                {
                    for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
                    {
@@ -466,9 +341,6 @@
                UserView.HomePage.Instance.PageIndex += 1;
                logicCommunalPage.Show(() => { });
            };
            fra.MouseUpEventHandler += completeclick;
            btncomplete.MouseUpEventHandler += completeclick;
        }
    }