From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs | 1373 +++++++++++++++++++++-------------------------------------- 1 files changed, 492 insertions(+), 881 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs index 6b5a256..777464d 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs @@ -1,342 +1,276 @@ -锘縰sing System; +锘縰sing System; using System.Collections.Generic; using System.Threading.Tasks; using ZigBee.Device; -namespace Shared.Phone.UserCenter.Safety -{ - /// <summary> - /// 瀹夐槻绠$悊鐨勪富鐣岄潰鈽� - /// </summary> - public class SafetyManagementMainForm : UserCenterCommonForm - { - #region 鈻� 鍙橀噺澹版槑___________________________ - - /// <summary> - /// 妗屽竷鎺т欢锛岀敤浜庡瓨鏀炬垨鑰呯Щ闄ゅ姛鑳藉潡鎺т欢(Tab鎺т欢涓撶敤) - /// </summary> - private FrameLayout frameLayoutDraw = null; +namespace Shared.Phone.UserCenter.Safety +{ + /// <summary> + /// 瀹夐槻绠$悊鐨勪富鐣岄潰鈽� + /// </summary> + public class SafetyManagementMainForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 妗屽竷鎺т欢锛岀敤浜庡瓨鏀炬垨鑰呯Щ闄ゅ姛鑳藉潡鎺т欢(Tab鎺т欢涓撶敤) + /// </summary> + private FrameLayout frameLayoutDraw = null; + /// <summary> + /// 瀹夐槻鎺т欢 + /// </summary> + private SafetyMasterControl garrisonControl = null; /// <summary> /// Tab鐨勯�夋嫨銆�1锛氬畨闃茶褰昑ab 2锛氫紶鎰熷櫒鐘舵�乀ab - /// </summary> - private int TabSelectIndex = 2; - /// <summary> - /// 鍦ㄥ甯冮槻鐨勬甯冩帶浠�,涓変釜鍥炬爣(璁剧疆浜嗗唴閮ㄩ槻鍖虹殑) - /// </summary> - private StatuFrameLayout frameTableThreeIcon = null; - /// <summary> - /// 甯冮槻鐨勬甯冩帶浠�,涓や釜鍥炬爣(娌℃湁璁剧疆鍐呴儴闃插尯鐨�) - /// </summary> - private StatuFrameLayout frameTableTwoIcon = null; - /// <summary> - /// 甯冮槻鐨勫浘鏍�(娌℃湁璁剧疆鍐呴儴闃插尯鏄剧ず鐨勫浘鏍�) /// </summary> - private IconViewControl btnAtHomeIconTwo = null; - /// <summary> - /// 鍦ㄥ甯冮槻鐨勫浘鏍�(璁剧疆浜嗗唴閮ㄩ槻鍖烘樉绀虹殑鍥炬爣) - /// </summary> - private IconViewControl btnAtHomeIconThree = null; - /// <summary> - /// 绂诲甯冮槻鐨勫浘鏍� - /// </summary> - private IconViewControl btnRemoveHomeIcon = null; + private int TabSelectIndex = 2; /// <summary> /// 鍦ㄧ嚎鐘舵�佺殑閿� /// </summary> private object objOnlineLock = new object(); - #endregion + #endregion #region 鈻� 鍒濆鍖朹____________________________ - /// <summary> - /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) - /// </summary> - public void ShowForm() - { - //璁剧疆澶撮儴淇℃伅 - base.SetTitleText(Language.StringByID(R.MyInternationalizationString.SafetyManagement)); - - //鍒濆鍖栦腑閮ㄤ俊鎭� - this.InitMiddleFrame(); - } - - /// <summary> - /// 鍒濆鍖栦腑閮ㄤ俊鎭� - /// </summary> - private void InitMiddleFrame() - { - //鍒濆鍖栧ご閮ㄧ殑閭d笁涓浘鏍� - FrameLayout frameLayout = this.InitTopImageControl(); - //鍒濆鍖朤ab鎺т欢 - this.InitTabSwitchControl(frameLayout.Bottom); - if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) - { - //鍒濆鍖栧彸涓婅鍥炬爣 - this.InitTopRightIcon(); - } - //鍒濆鍖栧叏閮ㄥ唴瀛樹俊鎭� - this.InitAllMemoryData(); - } - - /// <summary> - /// 鍒濆鍖栧ご閮ㄧ殑閭d笁涓浘鏍� - /// </summary> - private FrameLayout InitTopImageControl() - { - int height = 400; - //涓変釜鍥炬爣鐨勫悇鑷猣rameLayout鐨勫搴� - int width = 320; - - //鏈�澶栧眰 - var frameLayout = new FrameLayout(); - frameLayout.Height = Application.GetRealHeight(height); - bodyFrameLayout.AddChidren(frameLayout); + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + public void ShowForm() + { + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.SafetyManagement)); - #region 鈻� 涓や釜鍥剧殑(寰堥夯鐑︾殑涓滆タ)_____ - - //鍖呭惈涓や釜鍥剧殑妗屽竷 -> 娌℃湁璁剧疆鍐呴儴闃插尯(鑷充簬搴曢儴) - this.frameTableTwoIcon = new StatuFrameLayout(width * 2, height); - frameTableTwoIcon.Gravity = Gravity.Center; - frameTableTwoIcon.Visible = false; - frameLayout.AddChidren(frameTableTwoIcon); - //甯冮槻鐨勬甯� - var frameGarrison = new StatuFrameLayout(width, height); - frameTableTwoIcon.AddChidren(frameGarrison); - //甯冮槻鐨勫浘鏍� - this.btnAtHomeIconTwo = new IconViewControl(162); - btnAtHomeIconTwo.Y = Application.GetRealHeight(90); - btnAtHomeIconTwo.UnSelectedImagePath = "Safeguard/ProtectionAtHome.png"; - btnAtHomeIconTwo.SelectedImagePath = "Safeguard/ProtectionAtHomeSelected.png"; - btnAtHomeIconTwo.Gravity = Gravity.CenterHorizontal; - frameGarrison.AddChidren(btnAtHomeIconTwo, ChidrenBindMode.BindEventOnly); - //甯冮槻鐨勬枃瀛� - var btnAtHomeViewTwo = new ViewNormalControl(width, true); - btnAtHomeViewTwo.Y = btnAtHomeIconTwo.Bottom; - btnAtHomeViewTwo.TextID = R.MyInternationalizationString.uAtHomeGarrison; - btnAtHomeViewTwo.TextAlignment = TextAlignment.Center; - frameGarrison.AddChidren(btnAtHomeViewTwo, ChidrenBindMode.BindEventOnly); - //鍦ㄥ甯冮槻 - frameGarrison.MouseUpEvent = (sender, e) => - { - if (btnAtHomeIconTwo.IsSelected == false) - { - this.SetSafetyGarrisonModeInAtHome(); - } - }; + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } - //鎾ら槻鐨勬甯� - var frameReGarrisonTwo = new StatuFrameLayout(width, height); - frameReGarrisonTwo.X = frameGarrison.Right; - frameTableTwoIcon.AddChidren(frameReGarrisonTwo); - //鎾ら槻鐨勫浘鏍� - var btnReGarrisonIconTwo = new IconViewControl(162); - btnReGarrisonIconTwo.Y = btnAtHomeIconTwo.Y; - btnReGarrisonIconTwo.UnSelectedImagePath = "Safeguard/WithdrawGarrison.png"; - btnReGarrisonIconTwo.SelectedImagePath = "Safeguard/WithdrawGarrisonSelected.png"; - btnReGarrisonIconTwo.Gravity = Gravity.CenterHorizontal; - frameReGarrisonTwo.AddChidren(btnReGarrisonIconTwo); - //鎾ら槻鐨勬枃瀛� - var btnReGarrisonTextTwo = new ViewNormalControl(width, true); - btnReGarrisonTextTwo.Y = btnAtHomeViewTwo.Y; - btnReGarrisonTextTwo.TextID = R.MyInternationalizationString.uWithdrawGarrison; - btnReGarrisonTextTwo.TextAlignment = TextAlignment.Center; - frameReGarrisonTwo.AddChidren(btnReGarrisonTextTwo, ChidrenBindMode.BindEventOnly); + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); - //鎾ら槻 - frameReGarrisonTwo.MouseUpEvent = (sender, e) => - { - this.RemoveSafetyGarrisonMode(); - }; + //鍒濆鍖栧彸涓婅鍥炬爣 + this.InitTopRightIcon(); - #endregion + //鍒濆鍖栧叏閮ㄥ唴瀛樹俊鎭� + this.InitAllMemoryData(); + } + /// <summary> + /// 鍒濆鍖朤ab鎺т欢 + /// </summary> + private void InitTabSwitchControl() + { + var frameBack = new FrameLayout(); + frameBack.Height = Application.GetRealHeight(1300); + frameBack.Y = Application.GetRealHeight(444); + frameBack.BackgroundColor = 0xa1ffffff; + frameBack.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); + bodyFrameLayout.AddChidren(frameBack); - #region 鈻� 涓変釜鍥剧殑(寰堥夯鐑︾殑涓滆タ)_____ - - //鍖呭惈涓変釜鍥剧殑 -> 璁剧疆浜嗗唴閮ㄩ槻鍖�(鑷充簬涓婇儴) - this.frameTableThreeIcon = new StatuFrameLayout(width * 3, height); - this.frameTableThreeIcon.Visible = false; - frameTableThreeIcon.Gravity = Gravity.Center; - frameLayout.AddChidren(frameTableThreeIcon); - //鍦ㄥ甯冮槻鐨勬甯� - var frameAtHome = new StatuFrameLayout(width, height); - frameTableThreeIcon.AddChidren(frameAtHome); - //鍦ㄥ甯冮槻鐨勫浘鏍� - this.btnAtHomeIconThree = new IconViewControl(162); - btnAtHomeIconThree.Y = Application.GetRealHeight(90); - btnAtHomeIconThree.UnSelectedImagePath = "Safeguard/ProtectionAtHome.png"; - btnAtHomeIconThree.SelectedImagePath = "Safeguard/ProtectionAtHomeSelected.png"; - btnAtHomeIconThree.Gravity = Gravity.CenterHorizontal; - frameAtHome.AddChidren(btnAtHomeIconThree, ChidrenBindMode.BindEventOnly); - //鍦ㄥ甯冮槻鐨勬枃瀛� - var btnAtHomeView = new ViewNormalControl(width, true); - btnAtHomeView.Y = btnAtHomeIconThree.Bottom; - btnAtHomeView.TextID = R.MyInternationalizationString.uAtHomeGarrison; - btnAtHomeView.TextAlignment = TextAlignment.Center; - frameAtHome.AddChidren(btnAtHomeView, ChidrenBindMode.BindEventOnly); - //鍦ㄥ甯冮槻 - frameAtHome.MouseUpEvent = (sender, e) => - { - if (btnAtHomeIconThree.IsSelected == false) - { - this.SetSafetyGarrisonModeInAtHome(); - } - }; - - //绂诲甯冮槻鐨勬甯� - var frameRemoveHome = new StatuFrameLayout(width, height); - frameRemoveHome.X = frameAtHome.Right; - frameTableThreeIcon.AddChidren(frameRemoveHome); - //绂诲甯冮槻鐨勫浘鏍� - this.btnRemoveHomeIcon = new IconViewControl(162); - btnRemoveHomeIcon.Y = btnAtHomeIconTwo.Y; - btnRemoveHomeIcon.UnSelectedImagePath = "Safeguard/ProtectionRemoveHome.png"; - btnRemoveHomeIcon.SelectedImagePath = "Safeguard/ProtectionRemoveHomeSelected.png"; - btnRemoveHomeIcon.Gravity = Gravity.CenterHorizontal; - frameRemoveHome.AddChidren(btnRemoveHomeIcon, ChidrenBindMode.BindEventOnly); - //绂诲甯冮槻鐨勬枃瀛� - var btnRemoveHomeView = new ViewNormalControl(width, true); - btnRemoveHomeView.Y = btnAtHomeView.Y; - btnRemoveHomeView.TextID = R.MyInternationalizationString.uRemoveHomeGarrison; - btnRemoveHomeView.TextAlignment = TextAlignment.Center; - frameRemoveHome.AddChidren(btnRemoveHomeView, ChidrenBindMode.BindEventOnly); - //绂诲甯冮槻 - frameRemoveHome.MouseUpEvent = (sender, e) => - { - if (btnRemoveHomeIcon.IsSelected == false) - { - this.SetSafetyGarrisonModeInRemoveHome(); - } - }; - - //鎾ら槻鐨勬甯� - var frameReGarrisonThree = new StatuFrameLayout(width, height); - frameReGarrisonThree.X = frameRemoveHome.Right; - frameTableThreeIcon.AddChidren(frameReGarrisonThree); - //鎾ら槻鐨勫浘鏍� - var btnReGarrisonIconThree = new IconViewControl(162); - btnReGarrisonIconThree.Y = btnAtHomeIconTwo.Y; - btnReGarrisonIconThree.UnSelectedImagePath = "Safeguard/WithdrawGarrison.png"; - btnReGarrisonIconThree.SelectedImagePath = "Safeguard/WithdrawGarrisonSelected.png"; - btnReGarrisonIconThree.Gravity = Gravity.CenterHorizontal; - frameReGarrisonThree.AddChidren(btnReGarrisonIconThree); - //鎾ら槻鐨勬枃瀛� - var btnReGarrisonTextThree = new ViewNormalControl(width, true); - btnReGarrisonTextThree.Y = btnAtHomeView.Y; - btnReGarrisonTextThree.TextID = R.MyInternationalizationString.uWithdrawGarrison; - btnReGarrisonTextThree.TextAlignment = TextAlignment.Center; - frameReGarrisonThree.AddChidren(btnReGarrisonTextThree, ChidrenBindMode.BindEventOnly); - - //鎾ら槻 - frameReGarrisonThree.MouseUpEvent = (sender, e) => - { - this.RemoveSafetyGarrisonMode(); - }; - - #endregion - - return frameLayout; - } - - /// <summary> - /// 鍒濆鍖朤ab鎺т欢 - /// </summary> - /// <param name="YY">Yy.</param> - private void InitTabSwitchControl(int YY) - { - //Tab鍒囨崲鎺т欢 - var frameSwich = new FrameLayout(); - frameSwich.Y = YY; - frameSwich.Height = Application.GetRealHeight(150); - bodyFrameLayout.AddChidren(frameSwich); - - //瀹夐槻璁板綍 - var btnLog = new ViewNormalControl(frameSwich.Width / 2, Application.GetRealHeight(100)) - { - Gravity = Gravity.CenterVertical, - TextID = R.MyInternationalizationString.uSecurityLog, - TextAlignment = TextAlignment.Center - }; - frameSwich.AddChidren(btnLog); - - //浼犳劅鍣ㄧ姸鎬� - var btnSensor = new ViewNormalControl(frameSwich.Width / 2, Application.GetRealHeight(100)) - { - Gravity = Gravity.CenterVertical, - X = frameSwich.Width / 2, - TextID = R.MyInternationalizationString.uSensorStatu, - TextColor = UserCenterColor.Current.SelectTextColor, - TextAlignment = TextAlignment.Center - }; - frameSwich.AddChidren(btnSensor); - - //绾� - var btnLine = new ProgressLine(); - btnLine.Gravity = Gravity.BottomLeft; - frameSwich.AddChidren(btnLine); - btnLine.SetValue(50, false); - - //妗屽竷鎺т欢 + //妗屽竷鎺т欢 frameLayoutDraw = new FrameLayout(); - frameLayoutDraw.Y = frameSwich.Bottom; - frameLayoutDraw.Height = bodyFrameLayout.Height - frameSwich.Bottom; - bodyFrameLayout.AddChidren(frameLayoutDraw); - - //瀹夐槻璁板綍Tab - btnLog.MouseUpEventHandler += (sender, e) => - { - btnSensor.TextColor = Common.ZigbeeColor.Current.TextColor; - btnLog.TextColor = UserCenterColor.Current.SelectTextColor; - btnLine.SetValue(50); + frameLayoutDraw.Y = Application.GetRealHeight(181); + frameLayoutDraw.Height = frameBack.Height - Application.GetRealHeight(181); + frameBack.AddChidren(frameLayoutDraw); + + //瀹夐槻璁板綍(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) + var frameLog = new FrameLayoutStatuControl(); + frameLog.UseClickStatu = false; + frameLog.Height = Application.GetRealHeight(123); + frameLog.Width = Application.GetRealWidth(273); + frameLog.X = Application.GetRealWidth(259); + frameLog.Y = Application.GetRealHeight(58); + frameBack.AddChidren(frameLog); + //鏍囬 + var btnLog = new NormalViewControl(100, 63, true); + btnLog.Width = frameLog.Width; + btnLog.TextAlignment = TextAlignment.Center; + btnLog.TextID = R.MyInternationalizationString.uSecurityLog; + btnLog.TextColor = UserCenterColor.Current.TextGrayColor3; + frameLog.AddChidren(btnLog, ChidrenBindMode.BindEvent); + //搴曠嚎 + var btnLogLine = new NormalViewControl(40, 10, true); + btnLogLine.Y = Application.GetRealHeight(86); + btnLogLine.X = btnLog.X + btnLog.Width / 2 - Application.GetRealWidth(40) / 2; + btnLogLine.Radius = (uint)Application.GetRealHeight(10) / 2; + btnLogLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; + frameLog.AddChidren(btnLogLine, ChidrenBindMode.BindEvent); + btnLogLine.Visible = false; + + //浼犳劅鍣ㄧ姸鎬�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) + var frameSensor = new FrameLayoutStatuControl(); + frameSensor.UseClickStatu = false; + frameSensor.Height = frameLog.Height; + frameSensor.Width = frameLog.Width; + frameSensor.X = frameLog.Right; + frameSensor.Y = frameLog.Y; + frameBack.AddChidren(frameSensor); + //鏍囬 + var btnSensor = new NormalViewControl(100, 63, true); + btnSensor.Width = frameSensor.Width; + btnSensor.TextID = R.MyInternationalizationString.uSensorStatu; + btnSensor.TextSize = 16; + btnSensor.TextAlignment = TextAlignment.Center; + btnSensor.TextColor = UserCenterColor.Current.TextColor2; + btnSensor.IsBold = true; + frameSensor.AddChidren(btnSensor, ChidrenBindMode.BindEvent); + //搴曠嚎 + var btnSensorLine = new NormalViewControl(40, 10, true); + btnSensorLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; + btnSensorLine.Y = btnLogLine.Y; + btnSensorLine.X = btnSensor.X + btnSensor.Width / 2 - Application.GetRealWidth(40) / 2; + btnSensorLine.Radius = (uint)Application.GetRealHeight(10) / 2; + frameSensor.AddChidren(btnSensorLine, ChidrenBindMode.BindEvent); + + //瀹夐槻璁板綍Tab + frameLog.ButtonClickEvent += (sender, e) => + { + //瀛椾綋澶у皬鍜岄鑹插彉鏇� + btnSensor.TextColor = UserCenterColor.Current.TextGrayColor3; + btnSensor.TextSize = 14; + btnSensor.IsBold = false; + btnLog.TextColor = UserCenterColor.Current.TextColor2; + btnLog.TextSize = 16; + btnLog.IsBold = true; + + btnLogLine.Visible = true; + btnSensorLine.Visible = false; + this.TabSelectIndex = 1; //鏄剧ず瀹夐槻璁板綍 - this.SetSafeguardLogToForm(); - }; - - //浼犳劅鍣ㄧ姸鎬乀ab - btnSensor.MouseUpEventHandler += (sender, e) => - { - btnSensor.TextColor = UserCenterColor.Current.SelectTextColor; - btnLog.TextColor = Common.ZigbeeColor.Current.TextColor; - btnLine.SetValue(50, false); - this.TabSelectIndex = 2; + this.SetSafeguardLogToForm(); + }; + + //浼犳劅鍣ㄧ姸鎬乀ab + frameSensor.ButtonClickEvent += (sender, e) => + { + //瀛椾綋澶у皬鍜岄鑹插彉鏇� + btnSensor.TextColor = UserCenterColor.Current.TextColor2; + btnSensor.TextSize = 16; + btnSensor.IsBold = true; + btnLog.TextColor = UserCenterColor.Current.TextGrayColor3; + btnLog.TextSize = 14; + btnLog.IsBold = false; + + btnLogLine.Visible = false; + btnSensorLine.Visible = true; + + this.TabSelectIndex = 2; //鏄剧ず浼犳劅鍣ㄥ垪琛� - this.SetSensorDataToForm(); - }; - } - - /// <summary> - /// 鍒濆鍖栧彸涓婅鍥炬爣 - /// </summary> - private void InitTopRightIcon() - { - var btnIcon = new TopLayoutMostRightView(); - btnIcon.UnSelectedImagePath = "Item/More.png"; - btnIcon.SelectedImagePath = "Item/MoreSelected.png"; - topFrameLayout.AddChidren(btnIcon); - btnIcon.MouseUpEventHandler += (sender, e) => - { - //鑿滃崟鎺т欢 - var frameMenu = new TopRightMenuControl(this, 2); - //闃插尯鍒楄〃 - string menu1 = Language.StringByID(R.MyInternationalizationString.uGarrisonAreaList); - frameMenu.AddRowMenu(menu1, (obj) => + this.SetSensorDataToForm(); + }; + } + + /// <summary> + /// 鍒濆鍖栧彸涓婅鍥炬爣 + /// </summary> + private void InitTopRightIcon() + { + //蹇嵎鏂瑰紡 + var btnShortCut = new MostRightIconControl(69, 69); + btnShortCut.UnSelectedImagePath = "Safeguard/SafetyShortcut.png"; + btnShortCut.SelectedImagePath = "Safeguard/SafetyShortcutSelected.png"; + + if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) + { + //蹇嵎鏂瑰紡鍚戝乏绉诲姩 + btnShortCut.X = Application.GetRealWidth(855); + + var btnIcon = new MostRightIconControl(69, 69); + btnIcon.UnSelectedImagePath = "Item/More.png"; + topFrameLayout.AddChidren(btnIcon); + btnIcon.InitControl(); + btnIcon.ButtonClickEvent += (sender, e) => { - var form = new GarrisonAreaListMenuForm(); - form.AddForm(form); - }); - //瀵嗙爜璁剧疆 - string menu2 = Language.StringByID(R.MyInternationalizationString.uPasswordSettion); - frameMenu.AddRowMenu(menu2, (obj) => + //鑿滃崟鎺т欢 + var frameMenu = new TopRightMenuControl(2, 2); + //闃插尯鍒楄〃 + string menu1 = Language.StringByID(R.MyInternationalizationString.uGarrisonAreaList); + frameMenu.AddRowMenu(menu1, "Item/GarrisonList.png", "Item/GarrisonListSelected.png", () => + { + HdlCheckLogic.Current.CheckSecondarySecurity(() => + { + //楠岃瘉鎴愬姛 + var form = new GarrisonAreaListMenuForm(); + form.AddForm(); + }, + () => + { + //璇峰墠寰�涓汉涓績{0}璁剧疆浜屾瀹夊叏楠岃瘉鏂瑰紡 + string msg = Language.StringByID(R.MyInternationalizationString.uGotoCenterAndSetSecondAuthentication).Replace("{0}", "\r\n"); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + var form = new UserMain.SecondAuthenticationForm(); + form.AddForm(); + }); + }); + }); + //瀵嗙爜璁剧疆 + string menu2 = Language.StringByID(R.MyInternationalizationString.uPasswordSettion); + frameMenu.AddRowMenu(menu2, "Item/PswSettion.png", "Item/PswSettionSelected.png", () => + { + HdlCheckLogic.Current.CheckSecondarySecurity(() => + { + //楠岃瘉鎴愬姛 + var form = new PasswordMenuForm(); + form.AddForm(); + }, + () => + { + //璇峰墠寰�涓汉涓績{0}璁剧疆浜屾瀹夊叏楠岃瘉鏂瑰紡 + string msg = Language.StringByID(R.MyInternationalizationString.uGotoCenterAndSetSecondAuthentication).Replace("{0}", "\r\n"); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + var form = new UserMain.SecondAuthenticationForm(); + form.AddForm(); + }); + }); + }); + }; + } + + topFrameLayout.AddChidren(btnShortCut); + btnShortCut.InitControl(); + if (UserCenterResourse.ResidenceOption.SafetyShortcut == true) + { + //浣跨敤蹇嵎鏂瑰紡 + btnShortCut.IsSelected = true; + } + btnShortCut.ButtonClickEvent += (sender, e) => + { + if (btnShortCut.IsSelected == true) { - var form = new PasswordMainForm(); - form.AddForm(form); - }); - }; - } + //纭畾鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勶紵 + this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uCancelSafetyShortcutMsg), () => + { + UserCenterResourse.ResidenceOption.SafetyShortcut = false; + UserCenterResourse.ResidenceOption.Save(); + btnShortCut.IsSelected = false; + //鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勭殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂� + UserView.UserPage.Instance.RefreshForm = true; + }); + } + else + { + //纭畾鍒涘缓銆屽畨闃层�嶆嵎寰勫埌涓婚〉锛� + this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uCreatSafetyShortcutMsg), () => + { + UserCenterResourse.ResidenceOption.SafetyShortcut = true; + UserCenterResourse.ResidenceOption.Save(); + btnShortCut.IsSelected = true; + //鍒涘缓涓婚〉鐨勩�屽畨闃层�嶆嵎寰勭殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂� + UserView.UserPage.Instance.RefreshForm = true; + }); + } + }; + } #endregion @@ -344,7 +278,7 @@ /// <summary> /// 鍒濆鍖栧叏閮ㄥ唴瀛樹俊鎭� - /// </summary> + /// </summary> private async void InitAllMemoryData() { //寮�鍚繘搴︽潯 @@ -361,7 +295,7 @@ this.CloseProgressBar(ShowReLoadMode.YES); //缃戝叧鍥炲瓒呮椂,璇风◢鍚庡啀璇� string msg = Language.StringByID(R.MyInternationalizationString.uGatewayResponseTimeOut); - this.ShowTip(msg); + this.ShowMassage(ShowMsgType.Tip, msg); return; } @@ -370,34 +304,30 @@ this.SetProgressValue(Language.StringByID(R.MyInternationalizationString.uGarrisonInfoInittingPleaseWait)); //鍒锋柊瀹夐槻淇℃伅 - result = await this.RefreshSafeguardInfo(); + result = await HdlSafeguardLogic.Current.ReFreshByGateway(); if (result == false) { //鍏抽棴杩涘害鏉� this.CloseProgressBar(ShowReLoadMode.YES); - //缃戝叧鍥炲瓒呮椂,璇风◢鍚庡啀璇� - string msg = Language.StringByID(R.MyInternationalizationString.uGatewayResponseTimeOut); - this.ShowTip(msg); - return; } - - //鑾峰彇褰撳墠鐨勫畨闃叉ā寮� - var data = await Common.LocalSafeguard.Current.GetSafetyMode(); - if (data != null) - { - //鏍规嵁甯冮槻妯″紡锛岃缃浘鏍囩殑閫夋嫨鐘舵�� - this.SetIconStatuByGarrisonMode((GarrisonMode)data.ModeId); - } - - //璁剧疆鎸夐挳鍙鐘舵�� - this.SetButtonVisible(); - - //璁剧疆浼犳劅鍣ㄦ暟鎹埌鐢婚潰 - this.SetSensorDataToForm(); - //鍏抽棴杩涘害鏉� this.CloseProgressBar(); + + //鏁版嵁鍒濆鍖栧畬鎴愬悗 + Application.RunOnMainThread(() => + { + //鍒濆鍖栧ご閮ㄧ殑閭d笁涓浘鏍� + garrisonControl = new SafetyMasterControl(); + garrisonControl.Y = Application.GetRealHeight(46); + bodyFrameLayout.AddChidren(garrisonControl); + garrisonControl.InitControl(); + //鍒濆鍖朤ab鎺т欢 + this.InitTabSwitchControl(); + + //璁剧疆浼犳劅鍣ㄦ暟鎹埌鐢婚潰 + this.SetSensorDataToForm(); + }); } /// <summary> @@ -420,284 +350,44 @@ return true; } - /// <summary> - /// 鍒锋柊瀹夐槻淇℃伅 - /// </summary> - /// <returns></returns> - private async Task<bool> RefreshSafeguardInfo() - { - int count = 0; - while (true) - { - //浠庣綉鍏冲埛鏂板畨闃蹭俊鎭�,鐩村埌鑳藉璇诲彇涓烘 - var result = await Common.LocalSafeguard.Current.ReFreshByGateway(ShowErrorMode.NO); - if (result == true) - { - break; - } - count++; - if (count == 5) - { - return false; - } - await Task.Delay(1000); - } - return true; - } - #endregion - #region 鈻� 甯冮槻鎾ら槻___________________________ - - /// <summary> - /// 鍦ㄥ甯冮槻 - /// </summary> - private async void SetSafetyGarrisonModeInAtHome() - { - //鎵撳紑杩涘害鏉� - this.ShowProgressBar(); - - //鍦ㄥ甯冮槻 - GarrisonMode mode = await Common.LocalSafeguard.Current.SetSafetyGarrisonByModel(GarrisonMode.AtHome); - - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(); - - if (mode == GarrisonMode.None) - { - return; - } - //鏍规嵁甯冮槻妯″紡锛岃缃浘鏍囩殑閫夋嫨鐘舵�� - this.SetIconStatuByGarrisonMode(mode); - if (mode == GarrisonMode.RemoveGarrison) - { - return; - } - - //濡傛灉璁剧疆鏈夊唴閮ㄩ槻鍖� - if (Common.LocalSafeguard.Current.IsHadInternalDefenseArea() == true) - { - //鍦ㄥ甯冮槻璁剧疆鎴愬姛 - string msg = Language.StringByID(R.MyInternationalizationString.uSetAtHomeGarrisonSuccess); - this.ShowNormalMsg(msg); - } - else - { - //甯冮槻璁剧疆鎴愬姛 - string msg = Language.StringByID(R.MyInternationalizationString.uSetGarrisonSuccess); - this.ShowNormalMsg(msg); - } - //娣诲姞甯冮槻涓婃姤鐨勮鎺т欢 - this.AddSafeguardLogPushRow(null); - } - - /// <summary> - /// 绂诲甯冮槻 - /// </summary> - private async void SetSafetyGarrisonModeInRemoveHome() - { - //鎵撳紑杩涘害鏉� - this.ShowProgressBar(); - - //绂诲甯冮槻 - GarrisonMode mode = await Common.LocalSafeguard.Current.SetSafetyGarrisonByModel(GarrisonMode.RemoveHome); - - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(); - - if (mode == GarrisonMode.None) - { - return; - } - //鏍规嵁甯冮槻妯″紡锛岃缃浘鏍囩殑閫夋嫨鐘舵�� - this.SetIconStatuByGarrisonMode(mode); - if (mode == GarrisonMode.RemoveGarrison) - { - return; - } - - //绂诲甯冮槻璁剧疆鎴愬姛 - string msg = Language.StringByID(R.MyInternationalizationString.uSetRemoveHomeGarrisonSuccess); - this.ShowNormalMsg(msg); - - //娣诲姞甯冮槻涓婃姤鐨勮鎺т欢 - this.AddSafeguardLogPushRow(null); - } - - /// <summary> - /// 鎾ら槻 - /// </summary> - private async void RemoveSafetyGarrisonMode() - { - //鎵撳紑杩涘害鏉� - this.ShowProgressBar(); - - //鎾ら槻 - bool result = await Common.LocalSafeguard.Current.RemoveSafetyGarrison(GarrisonMode.RemoveGarrison, false); - - //鍏抽棴杩涘害鏉� - this.CloseProgressBar(); - - if (result == false) - { - return; - } - //鏍规嵁甯冮槻妯″紡锛岃缃浘鏍囩殑閫夋嫨鐘舵�� - this.SetIconStatuByGarrisonMode(GarrisonMode.RemoveGarrison); - - //鎾ら槻鎴愬姛 - string msg = Language.StringByID(R.MyInternationalizationString.uRemoveGarrisonSuccess); - this.ShowNormalMsg(msg); - - //娣诲姞甯冮槻涓婃姤鐨勮鎺т欢 - this.AddSafeguardLogPushRow(null); - } - - /// <summary> - /// 鏍规嵁甯冮槻妯″紡锛岃缃浘鏍囩殑閫夋嫨鐘舵�� - /// </summary> - /// <param name="mode"></param> - private void SetIconStatuByGarrisonMode(GarrisonMode mode) - { - //鍦ㄥ甯冮槻 - if (mode == GarrisonMode.AtHome) - { - Application.RunOnMainThread(() => - { - this.btnAtHomeIconTwo.IsSelected = true; - this.btnAtHomeIconThree.IsSelected = true; - this.btnRemoveHomeIcon.IsSelected = false; - }); - } - //绂诲甯冮槻 - else if (mode == GarrisonMode.RemoveHome) - { - Application.RunOnMainThread(() => - { - this.btnAtHomeIconTwo.IsSelected = false; - this.btnAtHomeIconThree.IsSelected = false; - this.btnRemoveHomeIcon.IsSelected = true; - }); - } - //鎾ら槻 - else if (mode == GarrisonMode.RemoveGarrison) - { - Application.RunOnMainThread(() => - { - this.btnAtHomeIconTwo.IsSelected = false; - this.btnAtHomeIconThree.IsSelected = false; - this.btnRemoveHomeIcon.IsSelected = false; - }); - } - } - - /// <summary> - /// 妫�娴嬫槸鍚﹀凡缁忛厤缃湁鐢ㄦ埛瀵嗙爜,濡傛灉娌℃湁閰嶇疆鏈夊瘑鐮�,鍒欒烦杞晫闈�,骞朵笖杩斿洖false - /// </summary> - /// <returns></returns> - private async Task<bool> CheckHadConfigureUserPsw() - { - if (UserCenterResourse.UserInfo.AuthorityNo == 3) - { - //鎴愬憳鐨勬椂鍊欙紝涓嶆娴嬭繖涓笢瑗� - return true; - } - var result = await Common.LocalSafeguard.Current.CheckHadConfigureUserPsw(); - if (result == -1) - { - //鍑虹幇寮傚父 - return false; - } - if (result == 0) - { - //璇峰厛璁剧疆鐢ㄦ埛瀵嗙爜,鍐嶆墽琛屾搷浣� - string msg = Language.StringByID(R.MyInternationalizationString.uPleaseConfigurePswBeforeOperation); - this.ShowTip(msg); - - Application.RunOnMainThread(() => - { - var form = new PasswordMainForm(); - form.AddForm(form); - }); - return false; - } - return true; - } - - #endregion - - #region 鈻� 鐣岄潰鍏抽棴___________________________ + #region 鈻� 鐣岄潰鍏抽棴___________________________ /// <summary> /// 鐢婚潰鍏抽棴 /// </summary> - /// <param name="isCloseForm">鏄惁鍏抽棴鐣岄潰,false鐨勬椂鍊�,鍙細璋冪敤鍏抽棴鍑芥暟閲岄潰鐨勯檮鍔犲姛鑳�</param> - public override void CloseForm(bool isCloseForm = true) + public override void CloseFormBefore() { //绉婚櫎鍏ㄩ儴鐩戝惉浜嬩欢 this.RemoveAllListenEvent(); - base.CloseForm(isCloseForm); - } - + base.CloseFormBefore(); + } + /// <summary> /// 绉婚櫎鍏ㄩ儴鐩戝惉浜嬩欢 - /// </summary> + /// </summary> private void RemoveAllListenEvent() { - DeviceAttributeLogic.Current.RemoveEvent("SafetyManagementMainFormOnline"); - DeviceAttributeLogic.Current.RemoveEvent("SafetyManagementMainFormAlarm"); - DeviceAttributeLogic.Current.RemoveEvent("SafetyManagementMainFormReceivePushOnline"); - } - - #endregion - - #region 鈻� 涓�鑸柟娉昣__________________________ - - /// <summary> - /// 璁剧疆甯冮槻鎸夐挳鐨勫彲瑙嗙姸鎬� - /// </summary> - public void SetButtonVisible() - { - //璁剧疆鏈夊唴閮ㄩ槻鍖� - if (Common.LocalSafeguard.Current.IsHadInternalDefenseArea() == true) - { - Application.RunOnMainThread(() => - { - //鍦ㄥ甯冮槻鏄剧ず - this.frameTableThreeIcon.Visible = true; - this.frameTableTwoIcon.Visible = false; - }); - } - else - { - Application.RunOnMainThread(() => - { - //鍦ㄥ甯冮槻涓嶆樉绀� - this.frameTableThreeIcon.Visible = false; - this.frameTableTwoIcon.Visible = true; - }); - } + HdlGatewayReceiveLogic.Current.RemoveEvent("SafetyManagementMainFormAlarm"); + HdlGatewayReceiveLogic.Current.RemoveEvent("SafetyManagementMainFormReceivePushOnline"); } #endregion - #region 鈻� 浼犳劅鍣ㄧ浉鍏砡________________________ + #region 鈻� 浼犳劅鍣ㄧ浉鍏砡________________________ /// <summary> /// 浼犳劅鍣ㄧ殑鐘舵�佹帶浠� /// </summary> - private Dictionary<string, RowMostRightTextView> dicSensorStatuView = new Dictionary<string, RowMostRightTextView>(); - /// <summary> - /// 浼犳劅鍣ㄧ殑鎶ヨ鎺т欢 - /// </summary> - private Dictionary<string, RowMostRightTextView> dicSensorAlertView = new Dictionary<string, RowMostRightTextView>(); + private Dictionary<string, SafetySensorStatuControl> dicSensorStatuView = new Dictionary<string, SafetySensorStatuControl>(); #region 娣诲姞浼犳劅鍣ㄨ_ /// <summary> /// 璁剧疆浼犳劅鍣ㄦ暟鎹埌鐢婚潰 - /// </summary> + /// </summary> private void SetSensorDataToForm() { if (this.TabSelectIndex != 2) @@ -708,26 +398,29 @@ this.RemoveAllListenEvent(); this.dicSensorStatuView.Clear(); - this.dicSensorAlertView.Clear(); //娣诲姞鍒楄〃鎺т欢 frameLayoutDraw.RemoveAll(); - var listView = new VerticalScrolViewLayout(); + var listView = new VerticalFrameControl(35); listView.Height = frameLayoutDraw.Height; frameLayoutDraw.AddChidren(listView); - new System.Threading.Thread(() => + HdlThreadLogic.Current.RunThread(() => { //鑾峰彇瀹夐槻鐨勫叏閮ㄤ紶鎰熷櫒璁惧鐨勪俊鎭� - var dicDevice = Common.LocalSafeguard.Current.GetAllSensorDeviceInfo(); + var dicDevice = HdlSafeguardLogic.Current.GetAllSensorDeviceInfo(); var listDevice = new List<CommonDevice>(); - foreach (var zoneId in dicDevice.Keys) + HdlThreadLogic.Current.RunMain(() => { - Application.RunOnMainThread(() => + foreach (var zoneId in dicDevice.Keys) { foreach (var Info in dicDevice[zoneId]) { + if (this.Parent == null) + { + return; + } //娣诲姞琛� this.AddSensorStatuRow(listView, zoneId, Info); @@ -738,19 +431,15 @@ listDevice.Add(tempDevice); } } - //鏈�鍚庝竴涓槻鍖虹殑鏃跺�欙紝寮�鍚悇绉嶇洃瑙嗙嚎绋� - if (zoneId == dicDevice.Count) - { - //寮�鍚紶鎰熷櫒鎶ヨ鐩戣 - this.StartCheckDeviceAlarm(); - - //寮�鍚澶囧湪绾跨洃娴� - this.StartCheckDeviceOnline(listDevice); - } - }); - } - }) - { IsBackground = true }.Start(); + } + //璋冩暣鍒楄〃鎺т欢楂樺害 + listView.AdjustChidrenFrameHeight(listView.frameTable, Application.GetRealHeight(46)); + //寮�鍚紶鎰熷櫒鎶ヨ鐩戣 + this.StartCheckDeviceAlarm(); + //寮�鍚澶囧湪绾跨洃娴� + this.StartCheckDeviceOnline(listDevice); + }); + }); } /// <summary> @@ -758,8 +447,8 @@ /// </summary> /// <param name="listView"></param> /// <param name="zoneID">闃插尯ID</param> - /// <param name="sensorInfo">浼犳劅鍣ㄧ殑淇℃伅</param> - private void AddSensorStatuRow(VerticalScrolViewLayout listView, int zoneID, Safeguard.ZoneDeviceListData sensorInfo) + /// <param name="sensorInfo">浼犳劅鍣ㄧ殑淇℃伅</param> + private void AddSensorStatuRow(VerticalFrameControl listView, int zoneID, Safeguard.ZoneDeviceListData sensorInfo) { CommonDevice device = Common.LocalDevice.Current.GetDevice(sensorInfo.MacAddr, sensorInfo.Epoint); if (device == null) @@ -767,96 +456,60 @@ return; } - //璁惧鎺т欢 - var rowDevice = new DeviceRoomViewRow(listView, device); - rowDevice.ChangedChidrenBindMode(rowDevice.btnIcon, ChidrenBindMode.BindEventOnly); - rowDevice.ChangedChidrenBindMode(rowDevice.btnDevie, ChidrenBindMode.BindEventOnly); - rowDevice.ChangedChidrenBindMode(rowDevice.btnRoom, ChidrenBindMode.BindEventOnly); - string GarrisonText = Common.LocalSafeguard.Current.GetGarrisonText(zoneID); - rowDevice.btnDevie.Text = rowDevice.btnDevie.Text + "(" + GarrisonText + ")"; - - //鐘舵��(鍒濆鍊硷細绂荤嚎) - var btnStatu = new RowMostRightTextView(); - btnStatu.Gravity = Gravity.Frame; - btnStatu.Y = rowDevice.btnDevie.Y; - if (device.IsOnline == 0) - { - //绂荤嚎 - btnStatu.TextID = R.MyInternationalizationString.uOffLine; - btnStatu.TextColor = UserCenterColor.Current.Gray; - } - else - { - //鍦ㄧ嚎 - btnStatu.TextID = R.MyInternationalizationString.uOnline; - btnStatu.TextColor = UserCenterColor.Current.Green; - } - rowDevice.AddChidren(btnStatu, ChidrenBindMode.BindEventOnly); - - //鎶ヨ淇℃伅 - var btnAlert = new RowMostRightTextView(); - btnAlert.TextColor = UserCenterColor.Current.Red; - btnAlert.Gravity = Gravity.Frame; - btnAlert.Y = rowDevice.btnRoom.Y; - rowDevice.AddChidren(btnAlert); - //鎵╁ぇ鎺т欢瀹藉害 - btnAlert.Width += Application.GetRealWidth(200); - btnAlert.X -= Application.GetRealWidth(200); + //鑷畾涔変紶鎰熷櫒鐘舵�佹帶浠� + var frameDevice = new SafetySensorStatuControl(); + listView.AddChidren(frameDevice); + frameDevice.InitControl(device); + //娣诲姞闃村奖鐗规晥 + frameDevice.SetViewShadow(true); string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device); - this.dicSensorStatuView[mainkeys] = btnStatu; - this.dicSensorAlertView[mainkeys] = btnAlert; - } - + this.dicSensorStatuView[mainkeys] = frameDevice; + } + #endregion - #region 浼犳劅鍣ㄦ姤璀 + #region 浼犳劅鍣ㄦ姤璀 /// <summary> /// 寮�鍚紶鎰熷櫒鎶ヨ鐩戣 - /// </summary> + /// </summary> private void StartCheckDeviceAlarm() { - DeviceAttributeLogic.Current.AddSafetyAlarmEvent("SafetyManagementMainFormAlarm", this.SetAlarmInfoByInterfaceResult); - } - - /// <summary> - /// 鏍规嵁鎺ュ彛鎺ㄩ�侊紝璁剧疆鎶ヨ淇℃伅 - /// </summary> - /// <param name="common"></param> - /// <param name="safetyDevice">鏄惁鏄畨闃茶澶囨姤璀�</param> - private void SetAlarmInfoByInterfaceResult(CommonDevice common, bool safetyDevice) - { - if (safetyDevice == false) + //鏍规嵁鎺ュ彛鎺ㄩ�侊紝璁剧疆鎶ヨ淇℃伅 + HdlGatewayReceiveLogic.Current.AddAttributeEvent("SafetyManagementMainFormAlarm", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (device) => { - return; - } - //娣诲姞瀹夐槻璁惧涓婃姤鐨勮鎺т欢 - this.AddSafeguardLogPushRow(common); + if (HdlSafeguardLogic.Current.IsSensorDeviceExist(device) == false) + { + //濡傛灉杩欎釜璁惧涓嶅瓨鍦ㄤ簬瀹夐槻锛屽垯涓嶅鐞� + return; + } - string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(common); - if (this.dicSensorAlertView.ContainsKey(mainkey) == false) - { - return; - } - var control = this.dicSensorAlertView[mainkey]; - - //鑾峰彇浼犳劅鍣ㄦ姤璀︿俊鎭殑缈昏瘧鏂囨湰 - var msgInfo = Common.LocalSafeguard.Current.GetSensorAlarmInfo(common); - if (msgInfo == null) - { - return; - } - Application.RunOnMainThread(() => - { - control.Text = msgInfo.AlarmMsg; + //浼犳劅鍣ㄧ姸鎬� + string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(device); + if (this.dicSensorStatuView.ContainsKey(mainkey) == false) + { + return; + } + var control = this.dicSensorStatuView[mainkey]; + //鑾峰彇浼犳劅鍣ㄦ姤璀︿俊鎭殑缈昏瘧鏂囨湰 + var msgInfo = HdlAlarmsLogic.Current.GetSensorAlarmInfo(device); + HdlThreadLogic.Current.RunMain(() => + { + control?.SetSensoReportInfo(msgInfo); + }); }); - } + } - #endregion - - #region 鍦ㄧ嚎鐘舵�乢 - + #endregion + + #region 鍦ㄧ嚎鐘舵�乢 + + /// <summary> + /// 涓婁竴娆¤幏鍙栬澶囧湪绾跨殑鏃堕棿(涓嶈兘璁╁畠姣忕偣涓�娆¢兘鍘昏幏鍙栬澶囩姸鎬�) + /// </summary> + private DateTime oldGetOnlineTime = new DateTime(1900, 1, 1); + /// <summary> /// 寮�鍚澶囧湪绾跨洃娴� /// </summary> @@ -867,10 +520,19 @@ { return; } - //娣诲姞鎺ュ彈缃戝叧鑷姩鎺ㄩ�佺殑浜嬩欢 - DeviceAttributeLogic.Current.AddReceiveDeviceOnlinePushEvent("SafetyManagementMainFormReceivePushOnline", this.ReceiveDeviceStatuPush); + if (oldGetOnlineTime.Year != 1900) + { + var timeValue = (DateTime.Now - oldGetOnlineTime).TotalSeconds; + if (timeValue < 10) + { + //鏈�灏戣闂撮殧鍗佺,鎵嶅幓閲嶆柊鑾峰彇 + return; + } + } + oldGetOnlineTime = DateTime.Now; + //浠庤澶囧垪琛ㄤ腑鑾峰彇鍦ㄧ嚎鐘舵�� - new System.Threading.Thread(async () => + HdlThreadLogic.Current.RunThread(() => { //棣栧厛鑾峰彇杩欎簺浼犳劅鍣ㄦ墍鍦ㄧ殑缃戝叧 var listWay = new List<ZbGateway>(); @@ -878,7 +540,7 @@ { ZbGateway realWay = null; //鏄惁瀛樺湪鐪熷疄鐗╃悊缃戝叧 - if (Common.LocalGateway.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false) + if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false) { continue; } @@ -891,19 +553,27 @@ //鐣岄潰鍏抽棴 return; } - await Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, this.ReceiveDeviceStatuPush, ShowErrorMode.NO); + int statu = 0; + var list = Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, ref statu, false, ShowErrorMode.NO); + if (statu != -1) + { + for (int i = 0; i < list.Count; i++) + { + //璁剧疆璁惧鍦ㄧ嚎鐘舵�� + this.ReceiveDeviceStatuPush(list[i]); + } + } } - }) - { IsBackground = true }.Start(); + }); } /// <summary> - /// 鎺ュ彈璁惧鍦ㄧ嚎鎺ㄩ��(涓嶈蹇樿鏈�鍚庡畠浼氭帹閫佷竴涓狽ull鐨勪笢瑗胯繃鏉�) + /// 鎺ュ彈璁惧鍦ㄧ嚎鎺ㄩ�� /// </summary> /// <param name="device"></param> private void ReceiveDeviceStatuPush(CommonDevice device) { - if (this.Parent == null || device == null) + if (this.Parent == null) { //鐣岄潰鍏抽棴 return; @@ -914,69 +584,46 @@ string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device); if (this.dicSensorStatuView.ContainsKey(mainkeys) == true) { + CommonDevice Loacldevice = Common.LocalDevice.Current.GetDevice(mainkeys); + if (Loacldevice == null) + { + return; + } + //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂� + if (Loacldevice.IsOnline == device.IsOnline) + { + return; + } + //淇濆瓨鐘舵�� + Loacldevice.IsOnline = device.IsOnline; + Loacldevice.ReSave(); + //鍥犱负杩欐槸鎺ㄩ�佽繃鏉ョ殑锛屾垜涓嶄繚璇侀偅涓�鐬棿杩欎釜涓滆タ浼氫笉浼氳绉婚櫎 var control = this.dicSensorStatuView[mainkeys]; - CommonDevice Loacldevice = Common.LocalDevice.Current.GetDevice(mainkeys); - if (Loacldevice != null) - { - //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂� - if (Loacldevice.IsOnline == device.IsOnline) - { - return; - } - //淇濆瓨鐘舵�� - Loacldevice.IsOnline = device.IsOnline; - Loacldevice.ReSave(); - } - Application.RunOnMainThread(() => { //璁剧疆鎺т欢鐨勫湪绾跨姸鎬佹枃鏈晥鏋� - this.SetControlOnlineStatu(control, device.IsOnline == 1); + bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device); + control?.SetOnlineStatu(bolOnline); }); } } } - /// <summary> - /// 璁剧疆鎺т欢鐨勫湪绾跨姸鎬佹枃鏈晥鏋� - /// </summary> - /// <param name="button"></param> - /// <param name="IsOnline"></param> - private void SetControlOnlineStatu(ButtonCommon button, bool IsOnline) - { - if (IsOnline == true) - { - //鍦ㄧ嚎 - button.TextID = R.MyInternationalizationString.uOnline; - button.TextColor = UserCenterColor.Current.Green; - } - else - { - //绂荤嚎 - button.TextID = R.MyInternationalizationString.uOffLine; - button.TextColor = UserCenterColor.Current.Gray; - } - } + #endregion - #endregion - - #endregion + #endregion #region 鈻� 瀹夐槻璁板綍鐩稿叧_______________________ /// <summary> /// 褰撴棩鐨勫畨闃茶褰曠殑FrameLayout /// </summary> - private SpecialFrameLayout TodaySafeguardFrame = null; + private SafeguardLogControl TodaySafeguardFrame = null; /// <summary> /// 鍏朵粬鏃ユ湡鐨勫畨闃茶褰曠殑FrameLayout /// </summary> - private SpecialFrameLayout otherDaySafeguardFrame = null; - /// <summary> - /// 褰撴棩鐨勫畨闃茶褰曠殑琛� - /// </summary> - private List<SafeguardLogRowView> listNowDayLogRow = new List<SafeguardLogRowView>(); + private FrameLayout otherDaySafeguardFrame = null; /// <summary> /// 璁剧疆瀹夐槻璁板綍鍒扮晫闈� @@ -991,143 +638,100 @@ this.RemoveAllListenEvent(); this.dicSensorStatuView.Clear(); - this.dicSensorAlertView.Clear(); - this.listNowDayLogRow.Clear(); frameLayoutDraw.RemoveAll(); - var listView = new VerticalScrolViewLayout(); + var listView = new VerticalFrameControl(0); listView.Height = frameLayoutDraw.Height; frameLayoutDraw.AddChidren(listView); - var frame = new SpecialFrameLayout(listView.Height, 0); - listView.AddChidren(frame); - - new System.Threading.Thread(() => + HdlThreadLogic.Current.RunThread(() => { - var dicInfo = Common.LocalSafeguard.Current.GetSafeguardAlarmInfo(); + var dicAlarm = HdlAlarmsLogic.Current.GetSafeguardAlarmInfo(); + var dicInfo = new Dictionary<string, Dictionary<int, List<SafeguardAlarmInfo>>>(); + //杩欓噷涓嶆樉绀哄竷闃插拰鎾ら槻鐨勪俊鎭� + foreach (var day in dicAlarm.Keys) + { + var listInfo = new Dictionary<int, List<SafeguardAlarmInfo>>(); + foreach (var info in dicAlarm[day]) + { + if (info.AlarmType == SafeguardAlarmType.Sensor) + { + //鍙浼犳劅鍣ㄧ殑 + if (listInfo.ContainsKey(info.ZoneId) == false) + { + listInfo[info.ZoneId] = new List<SafeguardAlarmInfo>(); + } + listInfo[info.ZoneId].Add(info); + } + } + //濡傛灉娌℃湁浼犳劅鍣ㄧ殑鎶ヨ淇℃伅,鍒欏綋涓嶅瓨鍦ㄥ鐞� + if (listInfo.Count > 0) + { + dicInfo[day] = listInfo; + } + } + dicAlarm = null; + Application.RunOnMainThread(() => { + if (this.Parent == null) + { + return; + } //鍒濆鍖栧綋鏃ョ殑瀹夐槻璁板綍鎺т欢 - this.InitTodaySafeguardLogControl(frame, dicInfo); + string nowDayKey = DateTime.Now.ToString("yyyyMMdd"); + Dictionary<int, List<SafeguardAlarmInfo>> nowDayData = null; + if (dicInfo.ContainsKey(nowDayKey) == true) + { + nowDayData = dicInfo[nowDayKey]; + //绉婚櫎鎺夊綋鏃ヨ褰� + dicInfo.Remove(nowDayKey); + } + //鎵ц鍒濆鍖� + TodaySafeguardFrame = new SafeguardLogControl(); + TodaySafeguardFrame.Y = Application.GetRealHeight(10); + listView.AddChidren(TodaySafeguardFrame); + TodaySafeguardFrame.InitControl(nowDayKey, nowDayData); + //鍒濆鍖栧叾浠栨棩鏈熺殑瀹夐槻璁板綍鎺т欢 - this.InitOtherDaySafeguardLogControl(frame, dicInfo); - - //鎺т欢鍐呴儴bug瀵瑰簲 - frame.RemoveFromParent(); - listView.AddChidren(frame); - + if (dicInfo.Count > 0) + { + otherDaySafeguardFrame = new FrameLayout(); + otherDaySafeguardFrame.Height = Application.GetRealHeight(10); + listView.AddChidren(otherDaySafeguardFrame); + foreach (var dayText in dicInfo.Keys) + { + //鎵ц鍒濆鍖� + var contr = new SafeguardLogControl(); + if (otherDaySafeguardFrame.ChildrenCount > 0) + { + contr.Y = otherDaySafeguardFrame.GetChildren(otherDaySafeguardFrame.ChildrenCount - 1).Bottom + Application.GetRealHeight(35); + } + otherDaySafeguardFrame.AddChidren(contr); + contr.InitControl(dayText, dicInfo[dayText]); + } + //璋冩暣楂樺害 + otherDaySafeguardFrame.Height = otherDaySafeguardFrame.GetChildren(otherDaySafeguardFrame.ChildrenCount - 1).Bottom; + } + //璋冩暣妗屽竷楂樺害 + listView.AdjustTableHeight(); //寮�鍚紶鎰熷櫒鎶ヨ鐩戣 this.StartCheckDeviceAlarm(); }); - }) - { IsBackground = true }.Start(); + }); } /// <summary> - /// 鍒濆鍖栧綋鏃ョ殑瀹夐槻璁板綍鎺т欢 + /// 娣诲姞瀹夐槻璁惧涓婃姤鐨勮鎺т欢(瀹夐槻鎺ㄩ�佷細璋冪敤杩欎釜涓滆タ) /// </summary> - /// <param name="frameLayout"></param> - /// <param name="dicInfo"></param> - private void InitTodaySafeguardLogControl(SpecialFrameLayout frameLayout, Dictionary<string, List<SafeguardAlarmInfo>> dicInfo) + /// <param name="device">璁惧瀵硅薄</param> + public void AddSafeguardLogPushRow(CommonDevice device) { - string nowDayKey = DateTime.Now.ToString("yyyyMMdd"); - string month = nowDayKey.Substring(4, 2); - string day = nowDayKey.Substring(6, 2); - - //鏃ユ湡 - var btnDayTitle = new ViewNormalControl(800, true); - btnDayTitle.TextSize = 18; - btnDayTitle.Y = Application.GetRealHeight(30); - btnDayTitle.X = ControlCommonResourse.XXLeft; - btnDayTitle.Text = month + Language.StringByID(R.MyInternationalizationString.Month) + day + Language.StringByID(R.MyInternationalizationString.Day); - frameLayout.AddChidren(btnDayTitle); - - //璁板綍瀹瑰櫒 - this.TodaySafeguardFrame = new SpecialFrameLayout(100, 0); - this.TodaySafeguardFrame.Y = btnDayTitle.Bottom; - frameLayout.AddChidren(this.TodaySafeguardFrame); - - //娌℃湁璁板綍 - if (dicInfo.ContainsKey(nowDayKey) == false) - { - //浠婃棩鏃犱换浣曟姤璀﹁褰� - var btnView = new ViewNormalControl(800, true); - btnView.TextSize = 16; - btnView.TextAlignment = TextAlignment.Center; - btnView.TextID = R.MyInternationalizationString.uNowDayNotHadAlarmLog; - btnView.TextColor = UserCenterColor.Current.TextGrayColor; - btnView.Gravity = Gravity.CenterHorizontal; - this.TodaySafeguardFrame.AddChidren(btnView, HeightAutoMode.IncreaseOnly); - return; - } - - //娣诲姞璁板綍琛� - foreach (var info in dicInfo[nowDayKey]) - { - var row = new SafeguardLogRowView(this.TodaySafeguardFrame, info); - this.listNowDayLogRow.Add(row); - } - //璋冩暣鎺т欢楂樺害 - this.TodaySafeguardFrame.IncreaseHeightByMode(null); - frameLayout.IncreaseHeightByMode(null); - //绉婚櫎褰撴棩 - dicInfo.Remove(nowDayKey); - } - - /// <summary> - /// 鍒濆鍖栧叾浠栨棩鏈熺殑瀹夐槻璁板綍鎺т欢 - /// </summary> - /// <param name="frameLayout"></param> - /// <param name="dicInfo"></param> - private void InitOtherDaySafeguardLogControl(SpecialFrameLayout frameLayout, Dictionary<string, List<SafeguardAlarmInfo>> dicInfo) - { - //璁板綍瀹瑰櫒 - this.otherDaySafeguardFrame = new SpecialFrameLayout(100, 0); - this.otherDaySafeguardFrame.Y = this.TodaySafeguardFrame.Bottom; - frameLayout.AddChidren(this.otherDaySafeguardFrame); - if (dicInfo.Count == 0) + if (this.TabSelectIndex != 1 || HdlAlarmsLogic.Current.listSafetyAlarmInfo.Count == 0) { return; } - foreach (string dayText in dicInfo.Keys) - { - string month = dayText.Substring(4, 2); - string day = dayText.Substring(6, 2); - //鏃ユ湡 - var btnDayTitle = new ViewNormalControl(800, true); - btnDayTitle.X = ControlCommonResourse.XXLeft; - btnDayTitle.TextSize = 18; - btnDayTitle.Text = month + Language.StringByID(R.MyInternationalizationString.Month) + day + Language.StringByID(R.MyInternationalizationString.Day); - var view = this.otherDaySafeguardFrame.GetChildren(this.otherDaySafeguardFrame.ChildrenCount - 1); - if (view != null) - { - btnDayTitle.Y = view.Bottom; - } - this.otherDaySafeguardFrame.AddChidren(btnDayTitle); - //娣诲姞璁板綍琛� - foreach (var info in dicInfo[dayText]) - { - var row = new SafeguardLogRowView(this.otherDaySafeguardFrame, info); - } - } - - //璋冩暣鎺т欢楂樺害 - this.otherDaySafeguardFrame.IncreaseHeightByMode(null); - frameLayout.IncreaseHeightByMode(null); - } - - /// <summary> - /// 娣诲姞瀹夐槻璁惧涓婃姤鐨勮鎺т欢 - /// </summary> - /// <param name="device">璁惧瀵硅薄锛屼负null鏃舵槸甯冮槻</param> - private void AddSafeguardLogPushRow(CommonDevice device) - { - if (this.TabSelectIndex != 1 || Common.LocalSafeguard.Current.listAlarmInfo.Count == 0) - { - return; - } - var info = Common.LocalSafeguard.Current.listAlarmInfo[0]; - + var info = HdlAlarmsLogic.Current.listSafetyAlarmInfo[0]; if (device != null) { string mainkey1 = Common.LocalDevice.Current.GetDeviceMainKeys(info.DeviceAddr, info.DeviceEpoint); @@ -1141,46 +745,52 @@ Application.RunOnMainThread(() => { - if (this.listNowDayLogRow.Count == 0) + if (this.TodaySafeguardFrame != null) { - //娓呯┖msg - this.TodaySafeguardFrame.RemoveAll(); + //娣诲姞鎶ヨ淇℃伅 + var value = this.TodaySafeguardFrame.AddSafeguardAlarmInfo(info); + if (value > 0) + { + //鍏朵粬鏃ユ湡鐨凢rameLayout寰�涓嬬Щ鍔� + if (this.otherDaySafeguardFrame != null) + { + this.otherDaySafeguardFrame.Y += value; + } + //妗屽竷鎺т欢 + var contrTable = (FrameLayout)this.TodaySafeguardFrame.Parent; + //鍒楄〃鎺т欢 + var listview = (VerticalFrameControl)contrTable.Parent; + //璋冩暣妗屽竷楂樺害 + listview?.AdjustTableHeight(); + } } - //娣诲姞琛�(缃《) - var row = new SafeguardLogRowView(null, info); - this.TodaySafeguardFrame.AddChidren(row); - row.InitControl(); - - int height = row.Height; - //鍘熸湁鎺т欢寰�涓嬬Щ鍔� - for (int i = 0; i < this.listNowDayLogRow.Count; i++) - { - this.listNowDayLogRow[i].Y += height; - } - //鍙樻洿澶у皬 - this.TodaySafeguardFrame.IncreaseHeightByMode(null); - //鍏朵粬鏃ユ湡寰�涓嬬Щ鍔� - this.otherDaySafeguardFrame.Y = this.TodaySafeguardFrame.Bottom; - - //鍙樻洿鐖跺鍣ㄥぇ灏� - var fatherFrame = (SpecialFrameLayout)this.otherDaySafeguardFrame.Parent; - fatherFrame.IncreaseHeightByMode(null); - - this.listNowDayLogRow.Add(row); }); } - #endregion + /// <summary> + /// 闃插尯鎺ㄩ�� + /// </summary> + /// <param name="garrison"></param> + public void GarrisonModePush(GarrisonMode garrison) + { + HdlThreadLogic.Current.RunMain(() => + { + garrisonControl?.SetIconStatuByGarrisonMode(garrison); + }); + } - #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ /// <summary> /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� - /// </summary> - public override void FormActionAgainEvent() + /// </summary> + public override int FormActionAgainEvent() { //璁剧疆甯冮槻鎸夐挳鐨勫彲瑙嗙姸鎬� - this.SetButtonVisible(); + garrisonControl?.SetButtonVisible(); + if (this.TabSelectIndex == 1) { //璁剧疆瀹夐槻璁板綍鍒扮晫闈� @@ -1191,8 +801,9 @@ //璁剧疆浼犳劅鍣ㄦ暟鎹埌鐢婚潰 this.SetSensorDataToForm(); } + return 1; } - #endregion - } -} + #endregion + } +} -- Gitblit v1.8.0