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