From 96c686f89f126ad4cf1e262b83301fb7cc8bf2d5 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 07 十一月 2019 10:57:31 +0800
Subject: [PATCH] 2019.11.7
---
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