From b7b3e92bed9c4553e30e2901a1877f088a5f8823 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期一, 04 十一月 2019 17:20:52 +0800
Subject: [PATCH] 2019.11.4

---
 ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs | 1739 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,739 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs
new file mode 100755
index 0000000..f78d342
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs
@@ -0,0 +1,1739 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
+using Shared;
+using Shared.Common;
+using Shared.Phone;
+using Shared.R;
+using ZigBee.Device;
+
+namespace Shared.Phone.Device.Logic
+{
+    public class TemplatePage : FrameLayout
+    {
+
+        public TemplatePage()
+        {
+            UserView.HomePage.Instance.RemoveViewByTag("Logic");
+            Tag = "Logic";
+        }
+        EditText logicTextBox;
+        /// <summary>
+        /// 鍥炬爣鐨勭储寮�
+        /// </summary>
+        public static string s;
+        public void Show()
+        {
+
+            #region  鏈�涓婇潰鐨勫竷灞�浠g爜
+            var topRowLayout = new RowLayout
+            {
+                BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
+                Height = Application.GetRealHeight(184),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
+            };
+            this.AddChidren(topRowLayout);
+
+            var titleName = new Button
+            {
+                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.selection,
+            };
+            topRowLayout.AddChidren(titleName);
+            if (Common.Logic.CurrentLogic.LogicId != 0)
+            {
+                titleName.Text = Language.StringByID(MyInternationalizationString.editautomation);
+            }
+            else
+            {
+                titleName.Text = Language.StringByID(MyInternationalizationString.newautomation);
+            }
+
+            var clickBtn = new Button
+            {
+                Width = Application.GetRealWidth(81 + 51),
+                Height = Application.GetRealHeight(58 + 40),
+                Y = Application.GetRealHeight(98 - 40),
+            };
+            topRowLayout.AddChidren(clickBtn);
+            clickBtn.MouseDownEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+            var back = new Button
+            {
+                Width = Application.GetRealWidth(30),
+                Height = Application.GetRealHeight(51),
+                X = Application.GetRealWidth(81),
+                Y = Application.GetRealHeight(98),
+                //Gravity = Gravity.CenterVertical;
+                UnSelectedImagePath = "ZigeeLogic/back.png",
+            };
+            topRowLayout.AddChidren(back);
+            back.MouseDownEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+
+
+            #endregion
+
+
+
+            var middle = new VerticalScrolViewLayout
+            {
+                Y = topRowLayout.Bottom,
+                Height = Application.GetRealHeight(1920 - 184 - 180),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+            };
+            this.AddChidren(middle);
+
+            var logiciconfl = new FrameLayout
+            {
+                Height = Application.GetRealHeight(436 + 30),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+            };
+            middle.AddChidren(logiciconfl);
+            var iconBtn = new Button
+            {
+                Width = Application.GetRealWidth(936),
+                Height = Application.GetRealHeight(436),
+                X = Application.GetRealWidth(72),
+                Y = Application.GetRealHeight(30),
+                UnSelectedImagePath = "ZigeeLogic/logicbj" + s + ".png",
+            };
+            logiciconfl.AddChidren(iconBtn);
+
+
+            #region -----鑷姩鍖栧悕绉� 璁剧疆鍚嶇О-----
+            var logicnamefl = new FrameLayout
+            {
+                Height = Application.GetRealHeight(130),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+            };
+            middle.AddChidren(logicnamefl);
+
+            var text = new Button
+            {
+                Width = Application.GetRealWidth(300),
+                Height = Application.GetRealHeight(60),
+                X = Application.GetRealWidth(58),
+                TextAlignment = TextAlignment.CenterLeft,
+                //Text = "鑷姩鍖栧悕绉�",
+                TextID = MyInternationalizationString.automationname,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                Y = Application.GetRealHeight(35),
+            };
+            logicnamefl.AddChidren(text);
+
+            logicTextBox = new EditText
+            {
+                Y = Application.GetRealHeight(35),
+                Width = Application.GetRealWidth(900),
+                Height = Application.GetRealHeight(60),
+                X = text.Right,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                TextSize = 13,
+                Text = Common.Logic.CurrentLogic.LogicName,
+                //TextID=MyInternationalizationString.automation1,
+            };
+            logicnamefl.AddChidren(logicTextBox);
+
+            var fraline = new FrameLayout
+            {
+                Height = Application.GetRealHeight(30),
+            };
+            middle.AddChidren(fraline);
+            #endregion
+
+            #region -----鏄剧ず閫昏緫鏉′欢-----
+
+
+            var conditionFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+            };
+            middle.AddChidren(conditionFrameLayout);
+
+
+            var conditionRowLayout = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(58),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            conditionFrameLayout.AddChidren(conditionRowLayout);
+
+
+            conditionRowLayout.AddChidren(new Button
+            {
+
+                Text = Language.StringByID(MyInternationalizationString.ifcondition),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                Width = Application.GetRealWidth(300),
+                Height = Application.GetRealHeight(60),
+                TextSize = 16,
+                Gravity = Gravity.CenterVertical,
+            });
+
+            var conditionadd1 = new Button
+            {
+
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(57),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(965 + 58),
+
+            };
+            conditionFrameLayout.AddChidren(conditionadd1);
+
+            var conditionadd = new Button
+            {
+
+                Width = Application.GetRealWidth(58),
+                Height = Application.GetRealHeight(58),
+                UnSelectedImagePath = "ZigeeLogic/add.png",
+                X = Application.GetRealWidth(965 - 58),
+                Gravity = Gravity.CenterVertical,
+
+            };
+            conditionRowLayout.AddChidren(conditionadd);
+            ///娣诲姞鏉′欢鐨勭偣鍑讳簨浠�
+            EventHandler<MouseEventArgs> conditionaddclick = (sender, e) =>
+            {
+                if (Common.Logic.CurrentLogic.Conditions.Count == 1)
+                {
+                    ConditionView(false);
+                }
+                else
+                {
+                    Common.Logic.LogicDviceList.Clear();
+                    if (Common.Logic.LogicDviceList.Count == 0)
+                    {
+                        Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+                    }
+                    var templateDeviceCondition = new TemplateDeviceCondition();
+                    UserView.HomePage.Instance.AddChidren(templateDeviceCondition);
+                    UserView.HomePage.Instance.PageIndex += 1;
+                    templateDeviceCondition.Show();
+                }
+            };
+            conditionadd.MouseUpEventHandler += conditionaddclick;
+            conditionadd1.MouseUpEventHandler += conditionaddclick;
+            List<Dictionary<string, string>> ListConditions = new List<Dictionary<string, string>>();
+            ListConditions.Clear();
+            ListConditions.AddRange(Common.Logic.CurrentLogic.Conditions);
+            ListConditions.Add(new Dictionary<string, string>());
+            if (Common.Logic.CurrentLogic.Conditions.Count > 1)
+            {
+                var row = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(60),
+                    BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                };
+                middle.AddChidren(row);
+                var relationship = new Button
+                {
+                    Width = Application.GetRealWidth(600),
+                    Height = Application.GetRealHeight(60),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    X = Application.GetRealWidth(58),
+                    TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
+                };
+                row.AddChidren(relationship);
+                if (Common.Logic.CurrentLogic.Relationship == 0)
+                {
+                    relationship.Text = Language.StringByID(MyInternationalizationString.followingconditions) + Language.StringByID(MyInternationalizationString.Allconditions);
+                }
+                else
+                {
+                    relationship.Text = Language.StringByID(MyInternationalizationString.followingconditions) + Language.StringByID(MyInternationalizationString.anycondition);
+                }
+                EventHandler<MouseEventArgs> editclick = (sender, e) =>
+                {
+
+                    ConditionView(true);
+                };
+                row.MouseUpEventHandler += editclick;
+                relationship.MouseUpEventHandler += editclick;
+
+            }
+            for (int i = 0; i < ListConditions.Count; i++)
+            {
+                if (i == (ListConditions.Count - 1))
+                {
+
+                    var addfl = new FrameLayout
+                    {
+                        Height = Application.GetRealHeight(160 + 30 + 50),
+                        BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                    };
+                    middle.AddChidren(addfl);
+                    var addbtn = new Button
+                    {
+                        Height = Application.GetRealHeight(130 + 50),
+                        Width = Application.GetRealWidth(908),
+                        Y = Application.GetRealHeight(30),
+                        X = Application.GetRealWidth(86),
+                        UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png",
+                    };
+                    addfl.AddChidren(addbtn);
+
+
+                    var addtextbtn = new Button
+                    {
+                        Height = Application.GetRealHeight(58),
+                        Width = Application.GetRealWidth(300),
+                        Y = Application.GetRealHeight(45 + 30),
+                        TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                        TextID = MyInternationalizationString.addconditions,
+                        X = Application.GetRealWidth(390),
+                    };
+                    addfl.AddChidren(addtextbtn);
+
+                    EventHandler<MouseEventArgs> addconditionsclick = (sender, e) =>
+                    {
+                        if (Common.Logic.CurrentLogic.Conditions.Count == 1)
+                        {
+                            ConditionView(false);
+                        }
+                        else
+                        {
+                            var templateDeviceCondition = new TemplateDeviceCondition();
+                            UserView.HomePage.Instance.AddChidren(templateDeviceCondition);
+                            UserView.HomePage.Instance.PageIndex += 1;
+                            templateDeviceCondition.Show();
+                        }
+                    };
+                    addbtn.MouseUpEventHandler += addconditionsclick;
+                    addtextbtn.MouseUpEventHandler += addconditionsclick;
+                }
+                else
+                {
+                    var devicesFrameLayout = new FrameLayout
+                    {
+                        Height = Application.GetRealHeight(130),
+                        BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                    };
+                    middle.AddChidren(devicesFrameLayout);
+
+                    ///鏄剧ず鍥炬爣
+                    var conditionIcon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        X = Application.GetRealWidth(104),
+                        Y = Application.GetRealHeight(25),
+                        UnSelectedImagePath = "ZigeeLogic/sensor13.png",
+
+                    };
+                    devicesFrameLayout.AddChidren(conditionIcon);
+
+
+                    var conditionsRowLayout = new RowLayout
+                    {
+                        Width = Application.GetRealWidth(800),
+                        Height = Application.GetRealHeight(130),
+                        X = Application.GetRealWidth(222),
+                        LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                    };
+                    devicesFrameLayout.AddChidren(conditionsRowLayout);
+
+                    var Type = int.Parse(ListConditions[i]["Type"]);
+                    var conditions = ListConditions[i];
+                    switch (Type)
+                    {
+
+                        /// (0:鏃堕棿鐐规潯浠�;1:璁惧鐘舵�佸彉鍖栨潯浠�;2:鍏朵粬閫昏緫鏉′欢;3:璁℃暟鍣ㄦ潯浠�;4:鍊掕鏃�;5:鏃堕棿娈垫潯浠�;6:瀹夐槻鏉′欢;7:鍦扮悊浣嶇疆)
+                        case 1:
+                            {
+                                var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
+                                if (deviceinof == null)
+                                {
+                                    continue;
+                                }
+                                ///鏄剧ず璁惧鍚嶇О
+                                var btndevice = new Button
+                                {
+                                    Y = Application.GetRealHeight(20),
+                                    Height = Application.GetRealHeight(50),
+                                    Width = Application.GetRealWidth(400),
+                                    TextAlignment = TextAlignment.CenterLeft,
+                                    Text = deviceinof.DeviceEpointName,
+                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                                };
+                                conditionsRowLayout.AddChidren(btndevice);
+
+                                ///鍖哄煙(鎴块棿)鍚嶇ОButton
+                                var btnregionname = new Button
+                                {
+                                    Y = btndevice.Bottom + Application.GetRealHeight(10),
+                                    Width = Application.GetRealWidth(400),
+                                    TextAlignment = TextAlignment.CenterLeft,
+                                    Height = Application.GetRealHeight(50),
+                                    Text = "",//Language.StringByID(MyInternationalizationString.customroom),
+                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                                };
+                                conditionsRowLayout.AddChidren(btnregionname);
+                                ///閫氳繃璁惧鎵惧埌鍖哄煙(鎴块棿)鍚嶇О
+                                Send.RoomNmae(btnregionname, deviceinof);
+
+
+                                var deviceedit = new Button
+                                {
+                                    BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
+                                    Text = Language.StringByID(MyInternationalizationString.edit),
+                                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                                };
+                                conditionsRowLayout.AddRightView(deviceedit);
+                                deviceedit.MouseUpEventHandler += (sender, e) =>
+                                {
+                                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
+                                    this.AddChidren(flMain);
+                                    TemplateDeviceCondition.CurrentDeviceView(flMain, deviceinof, true);
+
+                                };
+
+                                ///鏄剧ず璁惧鏉′欢鐘舵�佹帶浠�
+                                var devicestatus = new Button
+                                {
+                                    Width = Application.GetRealWidth(400),
+                                    Height = Application.GetRealHeight(130),
+                                    Gravity = Gravity.CenterVertical,
+                                    TextAlignment = TextAlignment.CenterRight,
+                                    X = Application.GetRealWidth(400),
+                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                                };
+                                conditionsRowLayout.AddChidren(devicestatus);
+
+                                switch (deviceinof.Type)
+                                {
+                                    case DeviceType.IASZone:
+                                        {
+                                            var iASZonedevice = deviceinof as IASZone;
+                                            var intvalue = conditions["AttriButeData1"];
+                                            switch (iASZonedevice.IasDeviceType)
+                                            {
+                                                case 13:
+                                                    {
+                                                        if (intvalue == "1")
+                                                        {
+                                                            devicestatus.TextID = MyInternationalizationString.someone;
+                                                        }
+                                                        else
+                                                        {
+                                                            int minute = int.Parse(conditions["IgnoreTime"]) / 60;
+                                                            int second = int.Parse(conditions["IgnoreTime"]) % 60;
+                                                            if (second != 0)
+                                                            {
+                                                                devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+
+                                                            }
+                                                            else
+                                                            {
+                                                                devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+                                                            }
+                                                        }
+                                                    }
+                                                    break;
+                                               
+                                                default:
+                                                    {
+                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/infraredsensor.png";
+                                                        if (intvalue == "1")
+                                                        {
+                                                            devicestatus.TextID = MyInternationalizationString.callthepolice;
+                                                        }
+                                                    }
+                                                    break;
+
+                                            }
+                                        }
+                                        break;
+
+                                }
+
+                            }
+                            break;
+                    }
+                    ///鍒犻櫎鎺т欢
+                    var del = new Button
+                    {
+                        BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
+                        Text = Language.StringByID(MyInternationalizationString.del),
+                    };
+                    conditionsRowLayout.AddRightView(del);
+
+                    del.MouseUpEventHandler += (sender, e) =>
+                    {
+
+                        var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
+                                              Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
+                        alert.ResultEventHandler += (sender1, e1) =>
+                        {
+                            if (e1)
+                            {
+                                Common.Logic.CurrentLogic.Conditions.Remove(conditions);
+                                var templatePage = new TemplatePage();
+                                UserView.HomePage.Instance.AddChidren(templatePage);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                templatePage.Show();
+                            }
+                        };
+                        alert.Show();
+
+                    };
+
+                }
+            }
+
+
+            #endregion
+
+            #region  ----鏄剧ず鎵ц鐩爣----
+
+            var targetFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+            };
+            middle.AddChidren(targetFrameLayout);
+
+
+            var targetRowLayout = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(58),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            targetFrameLayout.AddChidren(targetRowLayout);
+
+
+            var btntargettitle = new Button
+            {
+
+                Text = Language.StringByID(MyInternationalizationString.execute),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                Width = Application.GetRealWidth(300),
+                Height = Application.GetRealHeight(60),
+                TextSize = 16,
+                Gravity = Gravity.CenterVertical,
+            };
+            targetRowLayout.AddChidren(btntargettitle);
+
+            var btntargetadd1 = new Button
+            {
+
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(57),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(965 + 58),
+            };
+            targetFrameLayout.AddChidren(btntargetadd1);
+
+            var btntargetadd = new Button
+            {
+                Width = Application.GetRealWidth(58),
+                Height = Application.GetRealHeight(58),
+                UnSelectedImagePath = "ZigeeLogic/add.png",
+                X = Application.GetRealWidth(965 - 58),
+                Gravity = Gravity.CenterVertical,
+            };
+            targetRowLayout.AddChidren(btntargetadd);
+            EventHandler<MouseEventArgs> btntargetaddclick = (sender, e) =>
+            {
+                Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
+                var templateDeviceAction = new TemplateDeviceAction();
+                UserView.HomePage.Instance.AddChidren(templateDeviceAction);
+                UserView.HomePage.Instance.PageIndex += 1;
+                templateDeviceAction.Show();
+            };
+            btntargetadd1.MouseUpEventHandler += btntargetaddclick;
+            btntargetadd.MouseUpEventHandler += btntargetaddclick;
+
+            List<Dictionary<string, object>> ListActions = new List<Dictionary<string, object>>();
+            ListActions.Clear();
+            ListActions.AddRange(Common.Logic.CurrentLogic.Actions);
+            ListActions.Add(new Dictionary<string, object>());
+
+            for (int i = 0; i < ListActions.Count; i++)
+            {
+                if (i == (ListActions.Count - 1))
+                {
+
+                    var addfl = new FrameLayout
+                    {
+                        Height = Application.GetRealHeight(160 + 30 + 50),
+                        BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                    };
+                    middle.AddChidren(addfl);
+                    var addbtn = new Button
+                    {
+                        Height = Application.GetRealHeight(130 + 50),
+                        Width = Application.GetRealWidth(908),
+                        Y = Application.GetRealHeight(30),
+                        X = Application.GetRealWidth(86),
+                        UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png",
+                    };
+                    addfl.AddChidren(addbtn);
+
+
+                    var addtextbtn = new Button
+                    {
+                        Height = Application.GetRealHeight(58),
+                        Width = Application.GetRealWidth(300),
+                        Y = Application.GetRealHeight(45 + 30),
+                        TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                        TextID = MyInternationalizationString.addfunction,
+                        X = Application.GetRealWidth(390),
+                    };
+                    addfl.AddChidren(addtextbtn);
+                    EventHandler<MouseEventArgs> addfunctionclick = (sender, e) =>
+                    {
+                        Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
+                        var templateDeviceAction = new TemplateDeviceAction();
+                        UserView.HomePage.Instance.AddChidren(templateDeviceAction);
+                        UserView.HomePage.Instance.PageIndex += 1;
+                        templateDeviceAction.Show();
+                    };
+                    addbtn.MouseUpEventHandler += addfunctionclick;
+                    addtextbtn.MouseUpEventHandler += addfunctionclick;
+                }
+                else
+                {
+
+                    var devicesFrameLayout = new FrameLayout
+                    {
+                        Height = Application.GetRealHeight(130),
+                        BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                    };
+                    middle.AddChidren(devicesFrameLayout);
+
+                    ///鏄剧ず鍥炬爣
+                    var actionsIcon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        X = Application.GetRealWidth(104),
+                        Y = Application.GetRealHeight(25),
+                        // UnSelectedImagePath = "ZigeeLogic/time.png",
+
+                    };
+                    devicesFrameLayout.AddChidren(actionsIcon);
+
+
+                    var actionsrowLayout = new RowLayout
+                    {
+                        Width = Application.GetRealWidth(800),
+                        Height = Application.GetRealHeight(130),
+                        X = Application.GetRealWidth(222),
+                        LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                    };
+                    devicesFrameLayout.AddChidren(actionsrowLayout);
+
+
+                    var linkType = int.Parse(ListActions[i]["LinkType"].ToString());
+                    var actions = ListActions[i];
+
+                    switch (linkType)
+                    {
+                        case 0:
+                            {
+                                var obj1 = actions["DeviceAddr"].ToString();
+                                var obj2 = actions["Epoint"].ToString();
+                                var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
+                                if (deviceinof == null)
+                                {
+                                    continue;
+                                }
+
+                                ///璁惧鍚嶇ОButton
+                                var btndevicename = new Button
+                                {
+                                    Y = Application.GetRealHeight(20),
+                                    Height = Application.GetRealHeight(50),
+                                    Width = Application.GetRealWidth(450),
+                                    TextAlignment = TextAlignment.CenterLeft,
+                                    Text = deviceinof.DeviceEpointName,
+                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                                };
+                                actionsrowLayout.AddChidren(btndevicename);
+
+                                ///鍖哄煙(鎴块棿)鍚嶇ОButton
+                                var btnregionname = new Button
+                                {
+                                    Y = btndevicename.Bottom + Application.GetRealHeight(10),
+                                    Width = Application.GetRealWidth(450),
+                                    TextAlignment = TextAlignment.CenterLeft,
+                                    Height = Application.GetRealHeight(50),
+                                    Text = "",//Language.StringByID(MyInternationalizationString.customroom),
+                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                                };
+                                actionsrowLayout.AddChidren(btnregionname);
+                                ///閫氳繃璁惧鎵惧埌鍖哄煙(鎴块棿)鍚嶇О
+                                Send.RoomNmae(btnregionname, deviceinof);
+                                ///鏄剧ず璁惧鏉′欢鐘舵�佹帶浠�
+                                var devicestatus = new Button
+                                {
+                                    Width = Application.GetRealWidth(350),
+                                    Height = Application.GetRealHeight(130),
+                                    Gravity = Gravity.CenterVertical,
+                                    TextAlignment = TextAlignment.CenterRight,
+                                    X = Application.GetRealWidth(450),
+                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                                };
+                                actionsrowLayout.AddChidren(devicestatus);
+
+                                ///缂栬緫璁惧鐘舵�丅utton
+                                var deviceedit = new Button
+                                {
+                                    BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
+                                    Text = Language.StringByID(MyInternationalizationString.edit),
+                                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                                };
+                                actionsrowLayout.AddRightView(deviceedit);
+
+                                ///缂栬緫鐐瑰嚮浜嬩欢
+                                deviceedit.MouseUpEventHandler += (sender, e) =>
+                                {
+                                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
+                                    this.AddChidren(flMain);
+                                    TemplateDeviceAction.CurrentDeviceStateView(flMain, deviceinof, true);
+                                };
+
+
+                                switch (deviceinof.Type)
+                                {
+                                    case DeviceType.OnOffOutput:
+                                        {
+                                            actionsIcon.UnSelectedImagePath = "ZigeeLogic/light.png";
+
+                                            var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
+                                            if (TaskList == null)
+                                            {
+                                                continue;
+                                            }
+                                            foreach (var status in TaskList)
+                                            {
+                                                if (status["TaskType"].ToString() == "1")
+                                                {
+                                                    if (status["Data1"].ToString() == "0")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
+
+                                                    }
+                                                    else if (status["Data1"].ToString() == "1")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
+
+                                                    }
+                                                    else if (status["Data1"].ToString() == "2")
+                                                    {
+
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
+                                                    }
+                                                }
+
+                                            }
+
+                                        }
+                                        break;
+                                    case DeviceType.DimmableLight:
+                                        {
+                                            actionsIcon.UnSelectedImagePath = "ZigeeLogic/dimmableLight.png";
+                                            var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
+                                            if (TaskList == null)
+                                            {
+                                                continue;
+                                            }
+                                            foreach (var status in TaskList)
+                                            {
+                                                if (status["TaskType"].ToString() == "3")
+                                                {
+                                                    var intvalue = int.Parse(status["Data1"]);
+                                                    var lightbrightnessvalue = (intvalue * 100) / 254;
+                                                    devicestatus.Text = lightbrightnessvalue.ToString() + "%";
+                                                }
+                                                else if (status["TaskType"].ToString() == "1")
+                                                {
+
+                                                    if (status["Data1"].ToString() == "0")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
+                                                    }
+                                                    else if (status["Data1"].ToString() == "2")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
+                                                    }
+                                                }
+
+
+                                            }
+
+                                        }
+                                        break;
+                                    case DeviceType.WindowCoveringDevice:
+                                        {
+                                            actionsIcon.UnSelectedImagePath = "ZigeeLogic/curtain.png";
+                                            var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
+                                            if (TaskList == null)
+                                            {
+                                                continue;
+                                            }
+                                            foreach (var status in TaskList)
+                                            {
+                                                if (status["TaskType"] == "6")
+                                                {
+                                                    if (status["Data1"] == "0")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
+                                                    }
+                                                    else if (status["Data1"] == "1")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
+                                                    }
+                                                    else if (status["Data1"] == "5")
+                                                    {
+                                                        devicestatus.Text = status["Data2"] + "%";
+                                                    }
+                                                }
+
+                                            }
+                                        }
+                                        break;
+                                    case DeviceType.AirSwitch:
+                                        {
+                                            actionsIcon.UnSelectedImagePath = "ZigeeLogic/airswitch.png";
+
+                                            var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
+                                            if (TaskList == null)
+                                            {
+                                                continue;
+                                            }
+                                            foreach (var status in TaskList)
+                                            {
+                                                if (status["TaskType"].ToString() == "1")
+                                                {
+                                                    if (status["Data1"].ToString() == "0")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
+
+                                                    }
+                                                    else if (status["Data1"].ToString() == "1")
+                                                    {
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
+
+                                                    }
+                                                    else if (status["Data1"].ToString() == "2")
+                                                    {
+
+                                                        devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
+                                                    }
+                                                }
+
+                                            }
+
+                                        }
+                                        break;
+                                    case DeviceType.Thermostat:
+                                        {
+                                            actionsIcon.UnSelectedImagePath = "ZigeeLogic/ac.png";
+
+                                            var TaskList = actions["TaskList"] as List<Dictionary<string, string>>;
+                                            if (TaskList == null)
+                                            {
+                                                continue;
+                                            }
+                                            string modetext = "", temperaturetext = "", speedtext = "";
+                                            bool ifclose = false;
+                                            foreach (var status in TaskList)
+                                            {
+                                                if (status["TaskType"].ToString() == "1")
+                                                {
+                                                    if (status["Data1"].ToString() == "0")
+                                                    {
+                                                        // devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
+
+                                                        ifclose = false;
+                                                    }
+                                                    else if (status["Data1"].ToString() == "1")
+                                                    {
+                                                        //devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
+                                                        ifclose = true;
+                                                    }
+
+                                                }
+                                                else if (status["TaskType"].ToString() == "5")
+                                                {
+                                                    if (status["Data1"] == "3")
+                                                    {//3---璁剧疆宸ヤ綔妯″紡(1:鑷姩;3:鍒跺喎;4:鍒剁儹;7:閫侀;8:闄ゆ箍)
+                                                        switch (status["Data2"])
+                                                        {
+                                                            case "3":
+                                                                {
+                                                                    modetext = Language.StringByID(MyInternationalizationString.logiccool);
+                                                                }
+                                                                break;
+                                                            case "4":
+                                                                {
+                                                                    modetext = Language.StringByID(MyInternationalizationString.logicheat);
+                                                                }
+                                                                break;
+                                                            case "1":
+                                                                {
+                                                                    modetext = Language.StringByID(MyInternationalizationString.logicauto);
+                                                                }
+                                                                break;
+                                                            case "8":
+                                                                {
+                                                                    modetext = Language.StringByID(MyInternationalizationString.logicdry);
+                                                                }
+                                                                break;
+                                                            case "7":
+                                                                {
+                                                                    modetext = Language.StringByID(MyInternationalizationString.logicfanonly);
+                                                                }
+                                                                break;
+                                                        }
+                                                    }
+                                                    else if (status["Data1"] == "6")
+                                                    {//6---璁剧疆椋庢墖妯″紡(1:浣庨;2:涓;3:楂橀;)
+                                                        switch (status["Data2"])
+                                                        {
+                                                            case "1":
+                                                                {
+                                                                    speedtext = Language.StringByID(MyInternationalizationString.logiclow);
+                                                                }
+                                                                break;
+
+                                                            case "2":
+                                                                {
+                                                                    speedtext = Language.StringByID(MyInternationalizationString.logicmedium);
+                                                                }
+                                                                break;
+                                                            case "3":
+                                                                {
+                                                                    speedtext = Language.StringByID(MyInternationalizationString.logichigh);
+                                                                }
+                                                                break;
+
+                                                        }
+                                                    }
+                                                    //4---璁剧疆鍔犵儹搴︽暟;5---璁剧疆鍒跺喎銆侀櫎婀垮害鏁�;7---璁剧疆鑷姩搴︽暟
+                                                    else if (status["Data1"] == "4" || status["Data1"] == "5" || status["Data1"] == "7")
+                                                    {
+                                                        var s = int.Parse(status["Data2"]) / 100;
+                                                        temperaturetext = s.ToString();
+                                                    }
+                                                    else if (status["Data1"] == "20")
+                                                    {
+                                                        temperaturetext = "鏃�";
+                                                    }
+
+
+                                                }
+
+                                            }
+                                            if (ifclose)
+                                            {
+                                                devicestatus.Text = modetext + ";" + temperaturetext + "鈩�;" + speedtext;
+                                            }
+                                            else
+                                            {
+                                                devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
+
+                                            }
+                                        }
+                                        break;
+
+                                }
+
+
+                            }
+                            break;
+                    }
+                    ///鍒犻櫎鎺т欢
+                    var del = new Button
+                    {
+                        BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
+                        Text = Language.StringByID(MyInternationalizationString.del),
+                    };
+                    actionsrowLayout.AddRightView(del);
+
+                    del.MouseUpEventHandler += (sender, e) =>
+                    {
+                        var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
+                                               Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
+                        alert.ResultEventHandler += (sender1, e1) =>
+                        {
+                            if (e1)
+                            {
+                                Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                var templatePage = new TemplatePage();
+                                UserView.HomePage.Instance.AddChidren(templatePage);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                templatePage.Show();
+                            }
+                        };
+                        alert.Show();
+
+                    };
+
+                }
+            }
+
+            #endregion
+
+            #region -----姣忓ぉ 璁剧疆鍛ㄦ湡-----
+
+            var fraline1 = new FrameLayout
+            {
+                Height = Application.GetRealHeight(30),
+            };
+            middle.AddChidren(fraline1);
+
+
+            var weekFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+            };
+            middle.AddChidren(weekFrameLayout);
+            var weekRowLayout = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(58),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            weekFrameLayout.AddChidren(weekRowLayout);
+
+            var settxet = new Button
+            {
+                Text = Language.StringByID(MyInternationalizationString.setupcycle),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                Width = Application.GetRealWidth(300),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterVertical,
+            };
+            weekRowLayout.AddChidren(settxet);
+            var btnweektext = new Button
+            {
+                Width = Application.GetRealWidth(595),
+                Height = Application.GetRealHeight(60),
+                TextAlignment = TextAlignment.CenterRight,
+                //Text = "姣忓ぉ",
+                TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                TextID = MyInternationalizationString.everyday,
+                Y = Application.GetRealHeight(35),
+                X = settxet.Right,
+            };
+            weekRowLayout.AddChidren(btnweektext);
+
+            var nextBtn = new Button
+            {
+
+                Width = Application.GetRealWidth(58),
+                Height = Application.GetRealHeight(58),
+                UnSelectedImagePath = "ZigeeLogic/next.png",
+                X = Application.GetRealWidth(965 - 58),
+                Gravity = Gravity.CenterVertical,
+
+            };
+            weekRowLayout.AddChidren(nextBtn);
+
+            UpdateWeek(btnweektext);
+            EventHandler<MouseEventArgs> cycleclick = (sender, e) =>
+            {
+                /*------淇濈暀姣忔湀,姣忓勾绫诲瀷*/
+                var cycle = new Cycle(() => { UpdateWeek(btnweektext); });
+                UserView.HomePage.Instance.AddChidren(cycle);
+                UserView.HomePage.Instance.PageIndex += 1;
+                cycle.Show();
+
+                //var cyclicCycle = new CyclicCycle(() => { UpdateWeek(btnweektext); });
+                //UserView.HomePage.Instance.AddChidren(cyclicCycle);
+                //UserView.HomePage.Instance.PageIndex += 1;
+                //cyclicCycle.Show();
+            };
+            btnweektext.MouseUpEventHandler += cycleclick;
+            nextBtn.MouseUpEventHandler += cycleclick;
+            #endregion
+
+            #region  ----鎺ㄩ�佽缃�----
+
+            var pushFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+            };
+            middle.AddChidren(pushFrameLayout);
+
+            var pushswitchRowlayout = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(58),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            pushFrameLayout.AddChidren(pushswitchRowlayout);
+
+            var btnswitchtxet = new Button
+            {
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                Width = Application.GetRealWidth(300),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterVertical,
+                TextID = MyInternationalizationString.pushswitch,
+            };
+            pushswitchRowlayout.AddChidren(btnswitchtxet);
+
+            var btnswitch = new Button
+            {
+                Width = Application.GetMinRealAverage(104),
+                Height = Application.GetMinRealAverage(63),
+                UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                SelectedImagePath = "ZigeeLogic/logicopen.png",
+                X = Application.GetRealWidth(965 - 104),
+                Gravity = Gravity.CenterVertical,
+            };
+            pushswitchRowlayout.AddChidren(btnswitch);
+            btnswitch.MouseUpEventHandler += (sender1, e1) =>
+            {
+                btnswitch.IsSelected = !btnswitch.IsSelected;
+                if (btnswitch.IsSelected)
+                {
+
+                }
+                else
+                {
+
+                }
+            };
+
+
+            var custompushFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+            };
+            middle.AddChidren(custompushFrameLayout);
+
+            var custompushRowLayout = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(58),
+                LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+            };
+            custompushFrameLayout.AddChidren(custompushRowLayout);
+
+            var btncustompush = new Button
+            {
+                TextID = MyInternationalizationString.custompush,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                Width = Application.GetRealWidth(300),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterVertical,
+            };
+            custompushRowLayout.AddChidren(btncustompush);
+
+
+            var custompushback = new Button
+            {
+                Width = Application.GetRealWidth(58),
+                Height = Application.GetRealHeight(58),
+                UnSelectedImagePath = "ZigeeLogic/next.png",
+                X = Application.GetRealWidth(965 - 58),
+                Gravity = Gravity.CenterVertical,
+            };
+            custompushRowLayout.AddChidren(custompushback);
+            EventHandler<MouseEventArgs> customclick = (sender, e) =>
+            {
+                var CustomText = new CustomText();
+                UserView.HomePage.Instance.AddChidren(CustomText);
+                UserView.HomePage.Instance.PageIndex += 1;
+                CustomText.Show();
+
+            };
+            btncustompush.MouseUpEventHandler += customclick;
+            custompushback.MouseUpEventHandler += customclick;
+            custompushRowLayout.MouseUpEventHandler += customclick;
+
+            #endregion
+
+
+            var saveFrameLayout = new FrameLayout
+            {
+                Y = middle.Bottom,
+                Height = Application.GetRealHeight(180),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+            };
+            this.AddChidren(saveFrameLayout);
+
+            var btnsave = new Button
+            {
+                X = Application.GetRealWidth(85),
+                Height = Application.GetRealHeight(130),//194
+                Width = Application.GetRealWidth(910),
+                Radius = (uint)Application.GetRealHeight(60),
+                BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
+                TextID = MyInternationalizationString.Save,
+                TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+            };
+            saveFrameLayout.AddChidren(btnsave);
+            btnsave.MouseUpEventHandler += async (sender, e) =>
+            {
+                var name = logicTextBox.Text.Trim();
+                //if (Common.Logic.CurrentLogic.Conditions.Count != 0 && Common.Logic.CurrentLogic.Actions.Count != 0)
+                //{
+                //    AddChidren(btnsave);
+                //}
+                if (string.IsNullOrEmpty(logicTextBox.Text.Trim()))
+                {
+                    new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.PleaseEnterLogicName), Language.StringByID(MyInternationalizationString.Close)).Show();
+                    return;
+                }
+                var logicname = Common.Logic.LogicList.Find((logic) => Common.Logic.CurrentLogic.LogicId != logic.LogicId && logic.LogicName == name);
+                if (logicname != null)
+                {
+                    new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.Rename), Language.StringByID(MyInternationalizationString.Close)).Show();
+                    return;
+                }
+
+                Common.Logic.CurrentLogic.LogicName = name;
+
+                //鍒ゆ柇鏄柊娣诲姞閫昏緫(榛樿0)杩樻槸淇敼閫昏緫
+                CommonPage.Loading.Start();
+                if (Common.Logic.CurrentLogic.LogicId == 0)
+                {
+                    //鍙戦�佹坊鍔犻�昏緫鍛戒护
+                    var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic);
+                    if (logicifon != null && logicifon.LogicId != 0)
+                    {
+                        Common.Logic.CurrentLogic.LogicId = logicifon.LogicId;
+                        Common.Logic.LogicList.Add(Common.Logic.CurrentLogic);
+                    }
+                }
+                else
+                {
+                    //鍙戦�佷慨鏀归�昏緫鍛戒护
+                    Send.AddModifyLogic(Common.Logic.CurrentLogic);
+                }
+
+                CommonPage.Loading.Hide();
+                UserView.HomePage.Instance.RemoveViewByTag("Logic");
+                Category.Category.instance?.RefreshBodyView();
+                //UserView.HomePage.Instance.RemoveAt("Logic1");
+                //Category.Category category = new Category.Category();
+                //UserView.HomePage.Instance.AddChidren(category);
+                //UserView.HomePage.Instance.PageIndex += 1;
+                //category.Show(2);
+            };
+
+
+        }
+        /// <summary>
+        /// 鏇存柊鎵ц鍛ㄦ湡鐨勬柟娉�
+        /// </summary>
+        /// <param name="btndisplaycycle">Btndisplaycycle.</param>
+        void UpdateWeek(Button btndisplaycycle)
+        {
+
+            switch (Common.Logic.CurrentLogic.TimeAttribute.Repeat)
+            {
+                ///0:鍙墽琛屼竴娆★紝鎵ц鍚嶪sEnable鍊肩疆;1,浠婂勾鍐呮墽琛�;2锛氭瘡澶╂墽琛�;3锛氭瘡鏈堟墽琛�;4锛氭瘡骞存墽琛�;5锛氬懆閲嶅銆�
+                case 0:
+                    {
+                        btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.executeonce);
+                    }; break;
+                case 1: { }; break;
+                case 2:
+                    {
+                        btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
+                    }; break;
+                case 3:
+                    {
+
+                        string len = "", value = "";
+                        var stringvalue = Convert.ToString(Common.Logic.CurrentLogic.TimeAttribute.MonthDate, 2);
+                        var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length));
+                        for (int j = 31; j >= 0; j--)
+                        {
+                            len += str.Substring(j, 1);
+                        }
+                        for (int j = 0; j < len.Length; j++)
+                        {
+                            var strvalue = len.Substring(j, 1);
+                            if (strvalue == "1")
+                            {
+                                value += (j + 1).ToString() + ",";
+                            }
+                        }
+                        btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day);
+
+                    }; break;
+                case 4:
+                    {
+
+                        Dictionary<int, int> dictionary = new Dictionary<int, int>();
+                        ///鎵惧嚭鎵ц鐨勬湀浠藉拰澶╂暟
+                        if (Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate.Count != 0)
+                        {
+                            for (int i = 0; i < Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate.Count; i++)
+                            {
+                                var dayvalue = Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate[i];
+                                if (dayvalue != 0)
+                                {
+                                    dictionary.Add(i + 1, dayvalue);
+                                }
+                            }
+                        }
+                        if (dictionary.Count != 0 && dictionary.Count == 1)
+                        {
+                            string len = "", leng = "";
+                            int minvalue = 0, Maximum = 0;
+                            foreach (var value in dictionary)
+                            {
+                                ///鍙栧嚭鏈堜唤
+                                var month = value.Key;
+                                ///鍙栧嚭鏃ユ暟
+                                var day = value.Value;
+                                var maxvalue = Convert.ToString(day, 2);
+                                var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+                                for (int j = 31; j >= 0; j--)
+                                {
+                                    len += str.Substring(j, 1);
+                                }
+
+                                for (int j = 0; j < len.Length; j++)
+                                {
+                                    var strvalue = len.Substring(j, 1);
+                                    if (strvalue == "1")
+                                    {
+                                        minvalue = j + 1;
+                                        break;
+                                    }
+                                }
+                                for (int j = 0; j < len.Length; j++)
+                                {
+                                    var strvalue = len.Substring(j, 1);
+                                    if (strvalue == "1")
+                                    {
+                                        Maximum = j + 1;
+                                    }
+                                }
+
+                                if (month.ToString().Length < 2)
+                                {
+                                    leng = "0" + month.ToString();
+                                }
+                                else
+                                {
+                                    leng = month.ToString();
+                                }
+                                if (minvalue == Maximum)
+                                {
+                                    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+                                }
+                                else
+                                {
+                                    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+                                }
+                            }
+
+                        }
+                        else
+                        {
+                            int b = 0;
+                            string stringtext = "";
+                            foreach (var value in dictionary)
+                            {
+                                string len = "", leng = "";
+                                int minvalue = 0, Maximum = 0;
+                                ///鍙栧嚭鏈堜唤
+                                var month = value.Key;
+                                ///鍙栧嚭鏃ユ暟
+                                var day = value.Value;
+                                var maxvalue = Convert.ToString(day, 2);
+                                var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+                                for (int j = 31; j >= 0; j--)
+                                {
+                                    len += str.Substring(j, 1);
+                                }
+
+
+                                if (month.ToString().Length < 2)
+                                {
+                                    leng = "0" + month.ToString();
+                                }
+                                else
+                                {
+                                    leng = month.ToString();
+                                }
+
+
+
+                                if (b == 0)
+                                {
+                                    for (int j = 0; j < len.Length; j++)
+                                    {
+                                        var strvalue = len.Substring(j, 1);
+                                        if (strvalue == "1")
+                                        {
+                                            minvalue = j + 1;
+                                            break;
+                                        }
+                                    }
+                                    stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-";
+
+                                }
+
+                                if (b == dictionary.Count - 1)
+                                {
+                                    for (int j = 0; j < len.Length; j++)
+                                    {
+                                        var strvalue = len.Substring(j, 1);
+                                        if (strvalue == "1")
+                                        {
+                                            Maximum = j + 1;
+                                        }
+                                    }
+                                    stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+
+                                }
+                                b++;
+                            }
+                            btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext;
+                        }
+
+                    }; break;
+                case 5:
+                    {
+                        string len = "", text = "";
+                        List<int> listvalueInt = new List<int>();
+                        listvalueInt.Clear();
+                        var maxvalue = Convert.ToString(Common.Logic.CurrentLogic.TimeAttribute.WeekDay, 2);
+                        var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length));
+                        for (int j = 7; j >= 0; j--)
+                        {
+                            len += str.Substring(j, 1);
+                        }
+
+                        for (int j = 0; j < len.Length; j++)
+                        {
+                            var strvalue = len.Substring(j, 1);
+                            if (strvalue == "1")
+                            {
+                                listvalueInt.Add(j + 1);
+
+
+                                if ((j + 1) == 1)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.mon) + ",";
+                                }
+                                else if ((j + 1) == 2)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.tue) + ",";
+                                }
+                                else if ((j + 1) == 3)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.wed) + ",";
+                                }
+                                else if ((j + 1) == 4)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.thu) + ",";
+                                }
+                                else if ((j + 1) == 5)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.frl) + ",";
+                                }
+                                else if ((j + 1) == 6)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.sat) + ",";
+                                }
+                                else if ((j + 1) == 7)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.sun) + ",";
+                                }
+
+
+                            }
+                        }
+                        //鏆傛椂闅愯棌鎺夛紝闇�瑕佹樉绀哄懆鏈拰宸ヤ綔鏃ュ啀鏀惧紑锛�
+                        //if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7))
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday);
+                        //}
+                        //else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7))
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend);
+                        //}
+                        //else if (listvalueInt.Count == 7)
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
+                        //}
+                        //else
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
+                        //}
+                        btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
+                        //btndisplaycycle.Text = text.TrimEnd(',');
+                    }; break;
+            }
+
+
+        }
+
+        void ConditionView(bool edit)
+        {
+            Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
+
+            #region 缁勫悎鏉′欢View
+            FrameLayout flMain = new FrameLayout { BackgroundColor = 0x50000000 };
+            this.AddChidren(flMain);
+            flMain.MouseUpEventHandler += (sender2, e2) =>
+            {
+                flMain.RemoveFromParent();
+            };
+
+            var timetypeframelayout1 = new FrameLayout
+            {
+                Width = Application.GetRealWidth(1080),
+                Height = Application.GetRealHeight(100),
+                Y = Application.GetRealHeight(1920 - 100),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+            };
+            flMain.AddChidren(timetypeframelayout1);
+            var framelayout = new FrameLayout
+            {
+                Width = Application.GetRealWidth(1080),
+                Height = Application.GetRealHeight(530),
+                Y = Application.GetRealHeight(1920 - 530),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                Radius = (uint)Application.GetRealHeight(60),
+            };
+            flMain.AddChidren(framelayout);
+
+            #region  -------鍙栨秷   瀹屾垚
+            var timetype = new RowLayout
+            {
+                Height = Application.GetRealHeight(140),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            framelayout.AddChidren(timetype);
+            var Btncancel = new Button
+            {
+                TextID = MyInternationalizationString.cancel,
+                TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                Height = Application.GetRealHeight(140),
+                Width = Application.GetRealWidth(200),
+                X = Application.GetRealWidth(80),
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            timetype.AddChidren(Btncancel);
+            Btncancel.MouseUpEventHandler += (sender16, e16) =>
+            {
+                flMain.RemoveFromParent();
+                UserView.HomePage.Instance.ScrollEnabled = true;
+            };
+
+            var Btntitle = new Button
+            {
+                TextID = MyInternationalizationString.condition,
+                TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
+                Height = Application.GetRealHeight(140),
+                Width = Application.GetRealWidth(320),
+                TextAlignment = TextAlignment.Center,
+                X = Btncancel.Right + Application.GetRealWidth(100),
+                TextSize = 16,
+            };
+            timetype.AddChidren(Btntitle);
+            var Btncomplete = new Button
+            {
+                TextID = MyInternationalizationString.complete,
+                TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
+                Height = Application.GetRealHeight(140),
+                Width = Application.GetRealWidth(200),
+                TextAlignment = TextAlignment.CenterRight,
+                X = Btntitle.Right + Application.GetRealWidth(100),
+
+            };
+            timetype.AddChidren(Btncomplete);
+            #endregion
+
+            #region  -------婊¤冻鎵�鏈夋潯浠�   婊¤冻鍏朵腑涓�涓潯浠�
+
+
+            #region  -------婊¤冻鎵�鏈夋潯浠�
+
+
+            var andFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                Y = timetype.Bottom + Application.GetRealHeight(20),
+            };
+            framelayout.AddChidren(andFrameLayout);
+
+
+            var androw = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(920),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(80),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            andFrameLayout.AddChidren(androw);
+            var andbtn = new Button
+            {
+
+                Width = Application.GetRealWidth(600),
+                TextID = MyInternationalizationString.Allconditions,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
+
+            };
+            androw.AddChidren(andbtn);
+
+            var andSelected = new SelectedButton();
+            androw.AddChidren(andSelected);
+            #endregion
+            #region  -------婊¤冻鍏朵腑涓�涓潯浠�
+
+            var orFrameLayout = new FrameLayout
+            {
+                Height = Application.GetRealHeight(160),
+                Y = andFrameLayout.Bottom,
+
+            };
+            framelayout.AddChidren(orFrameLayout);
+
+
+
+            var orrow = new RowLayout
+            {
+                Y = Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(920),
+                Height = Application.GetRealHeight(130),
+                X = Application.GetRealWidth(80),
+                LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+            };
+            orFrameLayout.AddChidren(orrow);
+            var orbtn = new Button
+            {
+
+                Width = Application.GetRealWidth(600),
+                TextID = MyInternationalizationString.anycondition,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
+            };
+            orrow.AddChidren(orbtn);
+
+            var orSelected = new SelectedButton();
+            orrow.AddChidren(orSelected);
+            #endregion
+            ///婊¤冻鎵�鏈夋潯浠剁偣鍑讳簨浠�
+            EventHandler<MouseEventArgs> andclick = (sedner14, e14) =>
+            {
+                andSelected.Visible = true;
+                orSelected.Visible = false;
+                andbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                orbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+            };
+            androw.MouseUpEventHandler += andclick;
+            andbtn.MouseUpEventHandler += andclick;
+            andSelected.MouseUpEventHandler += andclick;
+            andFrameLayout.MouseUpEventHandler += andclick;
+
+
+            ///婊¤冻鍏朵腑涓�涓潯浠剁偣鍑讳簨浠�
+            EventHandler<MouseEventArgs> orclick = (sedner15, e15) =>
+            {
+                andSelected.Visible = false;
+                orSelected.Visible = true;
+                andbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                orbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+            };
+            orrow.MouseUpEventHandler += orclick;
+            orbtn.MouseUpEventHandler += orclick;
+            orSelected.MouseUpEventHandler += orclick;
+            orFrameLayout.MouseUpEventHandler += orclick;
+
+            #endregion
+            #endregion
+
+            if (edit)
+            {
+                if (Common.Logic.CurrentLogic.Relationship == 0)
+                {
+                    andSelected.Visible = true;
+                    orSelected.Visible = false;
+                    andbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                    orbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                }
+                else
+                {
+                    andSelected.Visible = false;
+                    orSelected.Visible = true;
+                    andbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                    orbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                }
+            }
+            Btncomplete.MouseUpEventHandler += (sender, e) =>
+            {
+                if (!andSelected.Visible && !orSelected.Visible)
+                {
+                    ///鍙互鎻愮ず鏈�変腑鐘舵�侊紱
+                    return;
+                }
+                flMain.RemoveFromParent();
+
+                if (andSelected.Visible)
+                {
+                    Common.Logic.CurrentLogic.Relationship = 0;
+
+                }
+                if (orSelected.Visible)
+                {
+                    Common.Logic.CurrentLogic.Relationship = 1;
+
+                }
+                var templateDeviceCondition = new TemplateDeviceCondition();
+                UserView.HomePage.Instance.AddChidren(templateDeviceCondition);
+                UserView.HomePage.Instance.PageIndex += 1;
+                templateDeviceCondition.Show();
+            };
+
+        }
+    }
+}

--
Gitblit v1.8.0