From 1a2061079e97a738ec7b8959bfd9a6e6c6997403 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 31 十月 2019 09:59:29 +0800 Subject: [PATCH] 2019.10.31 --- ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs | 389 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 389 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs new file mode 100755 index 0000000..39fe971 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs @@ -0,0 +1,389 @@ +锘縰sing System; +using Shared; +using Shared.R; +using System.Collections.Generic; +using Newtonsoft.Json.Linq; +using ZigBee.Device; +using Shared.Common; +namespace Shared.Phone.Device.Logic +{ + public class MemberList : FrameLayout + { + Button selectedIcon = new Button(); + public static Action action; + public static bool edit=false; + Dictionary<string, string> deviceConditionsInfo = new Dictionary<string, string>(); + Dictionary<string, string> userdictionary = new Dictionary<string, string>(); + + public void Show(CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo=null) + { + if (!edit) + { + deviceConditionsInfo.Add("Type", "1"); + deviceConditionsInfo.Add("IsValid", "1"); + deviceConditionsInfo.Add("MacAddr", common.DeviceAddr); + deviceConditionsInfo.Add("Epoint", common.DeviceEpoint.ToString()); + deviceConditionsInfo.Add("Cluster_ID", "64529"); + deviceConditionsInfo.Add("AttriButeData1", "2"); + deviceConditionsInfo.Add("Range", "0"); + editdeviceConditionsInfo = deviceConditionsInfo; + } + UserView.HomePage.Instance.ScrollEnabled = false; + this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + #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.userlist, + }; + topRowLayout.AddChidren(titleName); + + 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(); + action(); + }; + + 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), + BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + }; + this.AddChidren(middle); + + foreach (var user in Send.UserList) + { + + var userFramelayout = new RowLayout + { + Height = Application.GetRealHeight(160), + BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, + LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor, + }; + middle.AddChidren(userFramelayout); + + + var userRow = new RowLayout + { + Y = Application.GetRealHeight(30), + Width = Application.GetRealWidth(1080 - 81 - 58), + Height = Application.GetRealHeight(130), + X = Application.GetRealWidth(81), + LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, + }; + userFramelayout.AddChidren(userRow); + + var userBtn = new Button + { + Text = user.MembershipName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.LogicTextBlackColor, + }; + userRow.AddChidren(userBtn); + + var userBack = new Button + { + Width = Application.GetRealWidth(58), + Height = Application.GetRealHeight(58), + UnSelectedImagePath = "ZigeeLogic/next.png", + X = Application.GetRealWidth(1080 - 81 - 58 - 58), + Gravity = Gravity.CenterVertical, + }; + userRow.AddChidren(userBack); + + EventHandler<MouseEventArgs> useridclick = (sender, e) => + { + var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; + this.AddChidren(flMain); + flMain.MouseUpEventHandler += (sender1, e1) => + { + flMain.RemoveFromParent(); + }; + + var lockcolorfra = new FrameLayout + { + Width = Application.GetRealWidth(1080), + Height = Application.GetRealHeight(100), + Y = Application.GetRealHeight(1920 - 100), + BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, + }; + flMain.AddChidren(lockcolorfra); + + var lockcolorfra1 = 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(lockcolorfra1); + + #region -------鍙栨秷 瀹屾垚 + var lockRow = new RowLayout + { + Height = Application.GetRealHeight(140), + LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, + }; + lockcolorfra1.AddChidren(lockRow); + 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, + }; + lockRow.AddChidren(Btncancel); + Btncancel.MouseUpEventHandler += (sender16, e16) => + { + flMain.RemoveFromParent(); + UserView.HomePage.Instance.ScrollEnabled = true; + }; + + var Btntitle = new Button + { + TextID = MyInternationalizationString.security, + TextColor = ZigbeeColor.Current.LogicBtnTypeColor, + Height = Application.GetRealHeight(140), + Width = Application.GetRealWidth(320), + TextAlignment = TextAlignment.Center, + X = Btncancel.Right + Application.GetRealWidth(100), + TextSize = 16, + Text = user.MembershipName, + }; + lockRow.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), + + }; + lockRow.AddChidren(Btncomplete); + #endregion + + string SelectedDeviceStatuscondition = ""; + lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * user.UserIdMode.Count) - 20 - 50); + lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * user.UserIdMode.Count) + 20 + 50); + for (int i = 0; i < user.UserIdMode.Count; i++) + { + var userid = user.UserIdMode[i]; + var doorlockfra = new FrameLayout + { + Height = Application.GetRealHeight(160), + Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * i), + }; + lockcolorfra1.AddChidren(doorlockfra); + + var doorlockRow = new RowLayout + { + Y = Application.GetRealHeight(30), + Width = Application.GetRealWidth(920), + Height = Application.GetRealHeight(130), + X = Application.GetRealWidth(80), + LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, + }; + doorlockfra.AddChidren(doorlockRow); + + var doorlockBtn = new Button + { + Width = Application.GetRealWidth(600), + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor, + }; + doorlockRow.AddChidren(doorlockBtn); + //(1鎸夐敭/3鍗�/15鎸囩汗) + string[] s = userid.Split('_'); + switch (s[1]) + { + case "0": + { + doorlockBtn.Text = Language.StringByID(MyInternationalizationString.lockpassword); + } + break; + case "3": + { + doorlockBtn.Text = Language.StringByID(MyInternationalizationString.ic); + } + break; + case "15": + { + doorlockBtn.Text = Language.StringByID(MyInternationalizationString.fingerprint); + } + break; + } + var doorlockSelected = new Button + { + X = Application.GetRealWidth(860), + Width = Application.GetMinRealAverage(60), + Height = Application.GetMinRealAverage(60), + UnSelectedImagePath = "ZigeeLogic/selected.png", + Visible = false, + Gravity = Gravity.CenterVertical, + + }; + doorlockRow.AddChidren(doorlockSelected); + if ((user.UserIdMode.Count - 1) == i) + { + doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor; + } + EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) => + { + SelectedDeviceStatuscondition = "DoorLock"; + selectedIcon.Visible = false; + selectedIcon = doorlockSelected; + doorlockSelected.Visible = true; + //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor; + if (deviceConditionsInfo.ContainsKey("AttriButeId")) + { + deviceConditionsInfo.Remove("AttriButeId"); + } + if (deviceConditionsInfo.ContainsKey("AttriButeData2")) + { + deviceConditionsInfo.Remove("AttriButeData2"); + } + deviceConditionsInfo.Add("AttriButeId", s[1]); + deviceConditionsInfo.Add("AttriButeData2", s[0]); + + if (userdictionary.ContainsKey("Account")) + { + userdictionary.Remove("Account"); + } + if (userdictionary.ContainsKey("Type")) + { + userdictionary.Remove("Type"); + } + if (userdictionary.ContainsKey("UserId")) + { + userdictionary.Remove("UserId"); + } + userdictionary.Add("Account", Btntitle.Text+doorlockBtn.Text); + userdictionary.Add("Type", "1"); + userdictionary.Add("UserId", s[0]); + }; + doorlockRow.MouseUpEventHandler += doorlockclick; + doorlockBtn.MouseUpEventHandler += doorlockclick; + doorlockSelected.MouseUpEventHandler += doorlockclick; + doorlockfra.MouseUpEventHandler += doorlockclick; + if (edit) + { + if (editdeviceConditionsInfo["AttriButeData2"] == s[1]) + { + selectedIcon.Visible = false; + selectedIcon = doorlockSelected; + doorlockSelected.Visible = true; + + } + + } + + } + + + Btncomplete.MouseUpEventHandler += (sender3, e3) => + { + if (SelectedDeviceStatuscondition != "") + { + + for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++) + { + if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "1") + { + if ((Common.Logic.CurrentLogic.Conditions[i]["MacAddr"] == common.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == common.DeviceEpoint.ToString())) + { + if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == editdeviceConditionsInfo["AttriButeId"] && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == editdeviceConditionsInfo["AttriButeData2"]) + { + Common.Logic.CurrentLogic.Conditions.RemoveAt(i); + Common.Logic.CurrentLogic.Conditions.Insert(i, deviceConditionsInfo); + for (int j = 0; j < Common.Logic.CurrentLogic.Accounts.Count; j++) + { + if (Common.Logic.CurrentLogic.Accounts[j]["UserId"] == editdeviceConditionsInfo["AttriButeData2"]) + { + Common.Logic.CurrentLogic.Accounts.RemoveAt(j); + Common.Logic.CurrentLogic.Accounts.Insert(j, userdictionary); + } + } + return; + } + } + } + } + + Common.Logic.CurrentLogic.Accounts.Add(userdictionary); + Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo); + + } + else + { + if (!edit) + { + var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt), + Language.StringByID(MyInternationalizationString.selectdevicestatuscondition), + Language.StringByID(MyInternationalizationString.complete)); + alert.Show(); + return; + } + + } + flMain.RemoveFromParent(); + var logicCommunalPage = new LogicCommunalPage(); + UserView.HomePage.Instance.AddChidren(logicCommunalPage); + UserView.HomePage.Instance.PageIndex += 1; + logicCommunalPage.Show(() => { }); + + }; + + }; + userBtn.MouseUpEventHandler += useridclick; + userBack.MouseUpEventHandler += useridclick; + userFramelayout.MouseUpEventHandler += useridclick; + userRow.MouseUpEventHandler += useridclick; + + } + } + } +} -- Gitblit v1.8.0