From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 30 九月 2019 13:22:40 +0800
Subject: [PATCH] 合并了徐梅的按键面板绑定
---
ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs | 1219 +++++++++++++++++----------------------------------------
1 files changed, 377 insertions(+), 842 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
index 6b5a256..55ccfe5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
@@ -8,335 +8,190 @@
/// <summary>
/// 瀹夐槻绠$悊鐨勪富鐣岄潰鈽�
/// </summary>
- public class SafetyManagementMainForm : UserCenterCommonForm
- {
- #region 鈻� 鍙橀噺澹版槑___________________________
-
- /// <summary>
- /// 妗屽竷鎺т欢锛岀敤浜庡瓨鏀炬垨鑰呯Щ闄ゅ姛鑳藉潡鎺т欢(Tab鎺т欢涓撶敤)
- /// </summary>
- private FrameLayout frameLayoutDraw = null;
+ 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);
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ public void ShowForm()
+ {
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.SafetyManagement));
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
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);
+ }
- #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.InitAllMemoryData();
+ }
- //鎾ら槻鐨勬甯�
- 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);
-
- //鎾ら槻
- frameReGarrisonTwo.MouseUpEvent = (sender, e) =>
- {
- this.RemoveSafetyGarrisonMode();
- };
-
- #endregion
-
-
- #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);
-
- //妗屽竷鎺т欢
+ /// <summary>
+ /// 鍒濆鍖朤ab鎺т欢
+ /// </summary>
+ private void InitTabSwitchControl()
+ {
+ //妗屽竷鎺т欢
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(590);
+ frameLayoutDraw.Height = bodyFrameLayout.Height - Application.GetRealHeight(590);
+ bodyFrameLayout.AddChidren(frameLayoutDraw);
+
+ //涓存椂鐨勪竴涓笢瑗�,鐢ㄦ潵璁$畻鐪熷疄鍊艰�屽凡
+ var btnTemp = new NormalViewControl(100, false);
+ int realLogWidth = btnTemp.GetRealWidthByText(16, Language.StringByID(R.MyInternationalizationString.uSecurityLog));
+ int realSensorWidth = btnTemp.GetRealWidthByText(16, Language.StringByID(R.MyInternationalizationString.uSensorStatu));
+ btnTemp = null;
+
+ //瀹夐槻璁板綍(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�)
+ var frameLog = new FrameLayoutControl();
+ frameLog.UseClickStatu = false;
+ frameLog.Height = Application.GetRealHeight(123);
+ frameLog.Width = realLogWidth;
+ frameLog.X = Application.GetRealWidth(489) - realLogWidth;
+ frameLog.Y = Application.GetRealHeight(467);
+ bodyFrameLayout.AddChidren(frameLog);
+ //鏍囬
+ var btnLog = new NormalViewControl(100, 63, true);
+ btnLog.Width = realLogWidth;
+ btnLog.TextAlignment = TextAlignment.CenterRight;
+ btnLog.TextID = R.MyInternationalizationString.uSecurityLog;
+ btnLog.TextColor = UserCenterColor.Current.TextGrayColor3;
+ frameLog.AddChidren(btnLog, ChidrenBindMode.BindEventOnly);
+ //搴曠嚎
+ 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.BindEventOnly);
+ btnLogLine.Visible = false;
+
+ //浼犳劅鍣ㄧ姸鎬�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�)
+ var frameSensor = new FrameLayoutControl();
+ frameSensor.UseClickStatu = false;
+ frameSensor.Height = frameLog.Height;
+ frameSensor.Width = realSensorWidth;
+ frameSensor.X = Application.GetRealWidth(550);
+ frameSensor.Y = frameLog.Y;
+ bodyFrameLayout.AddChidren(frameSensor);
+ //鏍囬
+ var btnSensor = new NormalViewControl(100, 63, true);
+ btnSensor.Width = realSensorWidth;
+ btnSensor.TextID = R.MyInternationalizationString.uSensorStatu;
+ btnSensor.TextSize = 16;
+ btnSensor.TextColor = UserCenterColor.Current.TextColor2;
+ frameSensor.AddChidren(btnSensor, ChidrenBindMode.BindEventOnly);
+ //搴曠嚎
+ 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.BindEventOnly);
+
+ //瀹夐槻璁板綍Tab
+ frameLog.ButtonClickEvent += (sender, e) =>
+ {
+ //瀛椾綋澶у皬鍜岄鑹插彉鏇�
+ btnSensor.TextColor = UserCenterColor.Current.TextGrayColor3;
+ btnSensor.TextSize = 14;
+ btnLog.TextColor = UserCenterColor.Current.TextColor2;
+ btnLog.TextSize = 16;
+
+ 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;
+ btnLog.TextColor = UserCenterColor.Current.TextGrayColor3;
+ btnLog.TextSize = 14;
+
+ 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) =>
- {
- //鑿滃崟鎺т欢
+ this.SetSensorDataToForm();
+ };
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧彸涓婅鍥炬爣
+ /// </summary>
+ private void InitTopRightIcon()
+ {
+ var btnIcon = new MostRightIconControl(69, 69);
+ btnIcon.UnSelectedImagePath = "Item/More.png";
+ topFrameLayout.AddChidren(btnIcon);
+ btnIcon.InitControl();
+ btnIcon.ButtonClickEvent += (sender, e) =>
+ {
+ //鑿滃崟鎺т欢
var frameMenu = new TopRightMenuControl(this, 2);
//闃插尯鍒楄〃
- string menu1 = Language.StringByID(R.MyInternationalizationString.uGarrisonAreaList);
- frameMenu.AddRowMenu(menu1, (obj) =>
+ string menu1 = Language.StringByID(R.MyInternationalizationString.uGarrisonAreaList);
+ frameMenu.AddRowMenu(menu1, "Item/GarrisonList.png", "Item/GarrisonListSelected.png", () =>
{
var form = new GarrisonAreaListMenuForm();
- form.AddForm(form);
- });
- //瀵嗙爜璁剧疆
- string menu2 = Language.StringByID(R.MyInternationalizationString.uPasswordSettion);
- frameMenu.AddRowMenu(menu2, (obj) =>
+ form.AddForm();
+ });
+ //瀵嗙爜璁剧疆
+ string menu2 = Language.StringByID(R.MyInternationalizationString.uPasswordSettion);
+ frameMenu.AddRowMenu(menu2, "Item/PswSettion.png", "Item/PswSettionSelected.png", () =>
{
- var form = new PasswordMainForm();
- form.AddForm(form);
- });
- };
- }
+ var form = new SafetyPasswordMenuForm();
+ form.AddForm();
+ });
+ };
+ }
#endregion
@@ -344,7 +199,7 @@
/// <summary>
/// 鍒濆鍖栧叏閮ㄥ唴瀛樹俊鎭�
- /// </summary>
+ /// </summary>
private async void InitAllMemoryData()
{
//寮�鍚繘搴︽潯
@@ -361,7 +216,7 @@
this.CloseProgressBar(ShowReLoadMode.YES);
//缃戝叧鍥炲瓒呮椂,璇风◢鍚庡啀璇�
string msg = Language.StringByID(R.MyInternationalizationString.uGatewayResponseTimeOut);
- this.ShowTip(msg);
+ this.ShowMassage(ShowMsgType.Tip, msg);
return;
}
@@ -370,34 +225,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 +271,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 CloseForm()
{
//绉婚櫎鍏ㄩ儴鐩戝惉浜嬩欢
this.RemoveAllListenEvent();
- base.CloseForm(isCloseForm);
- }
-
+ base.CloseForm();
+ }
+
/// <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;
- });
- }
+ HdlDeviceAttributeLogic.Current.RemoveEvent("SafetyManagementMainFormAlarm");
+ HdlDeviceAttributeLogic.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,18 +319,17 @@
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(() =>
{
//鑾峰彇瀹夐槻鐨勫叏閮ㄤ紶鎰熷櫒璁惧鐨勪俊鎭�
- var dicDevice = Common.LocalSafeguard.Current.GetAllSensorDeviceInfo();
+ var dicDevice = HdlSafeguardLogic.Current.GetAllSensorDeviceInfo();
var listDevice = new List<CommonDevice>();
foreach (var zoneId in dicDevice.Keys)
@@ -728,6 +338,10 @@
{
foreach (var Info in dicDevice[zoneId])
{
+ if (this.Parent == null)
+ {
+ return;
+ }
//娣诲姞琛�
this.AddSensorStatuRow(listView, zoneId, Info);
@@ -758,8 +372,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 +381,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.AddChidrenFrame(frameDevice);
+ frameDevice.InitControl(device);
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)
+ //鏍规嵁鎺ュ彛鎺ㄩ�侊紝璁剧疆鎶ヨ淇℃伅
+ HdlDeviceAttributeLogic.Current.AddAttributeEvent("SafetyManagementMainFormAlarm", "IASInfoReport", (device) =>
{
- return;
- }
- //娣诲姞瀹夐槻璁惧涓婃姤鐨勮鎺т欢
- this.AddSafeguardLogPushRow(common);
+ if (HdlSafeguardLogic.Current.IsSensorDeviceExist(device) == false)
+ {
+ //濡傛灉杩欎釜璁惧涓嶅瓨鍦ㄤ簬瀹夐槻锛屽垯涓嶅鐞�
+ return;
+ }
+ //娣诲姞瀹夐槻璁惧涓婃姤鐨勮鎺т欢
+ this.AddSafeguardLogPushRow(device);
- 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);
+ Application.RunOnMainThread(() =>
+ {
+ control?.SetSensoReportInfo(msgInfo);
+ });
});
- }
+ }
- #endregion
-
- #region 鍦ㄧ嚎鐘舵�乢
-
+ #endregion
+
+ #region 鍦ㄧ嚎鐘舵�乢
+
+ /// <summary>
+ /// 涓婁竴娆¤幏鍙栬澶囧湪绾跨殑鏃堕棿(涓嶈兘璁╁畠姣忕偣涓�娆¢兘鍘昏幏鍙栬澶囩姸鎬�)
+ /// </summary>
+ private DateTime oldGetOnlineTime = new DateTime(1900, 1, 1);
+
/// <summary>
/// 寮�鍚澶囧湪绾跨洃娴�
/// </summary>
@@ -867,8 +445,14 @@
{
return;
}
- //娣诲姞鎺ュ彈缃戝叧鑷姩鎺ㄩ�佺殑浜嬩欢
- DeviceAttributeLogic.Current.AddReceiveDeviceOnlinePushEvent("SafetyManagementMainFormReceivePushOnline", this.ReceiveDeviceStatuPush);
+ var timeValue = (DateTime.Now - oldGetOnlineTime).Milliseconds;
+ if (timeValue <= 10000)
+ {
+ //鏈�灏戣闂撮殧鍗佺,鎵嶅幓閲嶆柊鑾峰彇
+ return;
+ }
+ oldGetOnlineTime = DateTime.Now;
+
//浠庤澶囧垪琛ㄤ腑鑾峰彇鍦ㄧ嚎鐘舵��
new System.Threading.Thread(async () =>
{
@@ -878,7 +462,7 @@
{
ZbGateway realWay = null;
//鏄惁瀛樺湪鐪熷疄鐗╃悊缃戝叧
- if (Common.LocalGateway.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false)
+ if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false)
{
continue;
}
@@ -914,69 +498,45 @@
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);
+ control?.SetOnlineStatu(device.IsOnline == 1);
});
}
}
}
- /// <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,31 +551,82 @@
this.RemoveAllListenEvent();
this.dicSensorStatuView.Clear();
- this.dicSensorAlertView.Clear();
- this.listNowDayLogRow.Clear();
frameLayoutDraw.RemoveAll();
- var listView = new VerticalScrolViewLayout();
+ var listView = new VerticalFrameControl(35);
listView.Height = frameLayoutDraw.Height;
frameLayoutDraw.AddChidren(listView);
- var frame = new SpecialFrameLayout(listView.Height, 0);
- listView.AddChidren(frame);
-
new System.Threading.Thread(() =>
{
- 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();
+ listView.AddChidrenFrame(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.AddChidrenFrame(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();
});
@@ -1024,110 +635,40 @@
}
/// <summary>
- /// 鍒濆鍖栧綋鏃ョ殑瀹夐槻璁板綍鎺т欢
- /// </summary>
- /// <param name="frameLayout"></param>
- /// <param name="dicInfo"></param>
- private void InitTodaySafeguardLogControl(SpecialFrameLayout frameLayout, Dictionary<string, List<SafeguardAlarmInfo>> dicInfo)
- {
- 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)
- {
- 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)
+ public void AddSafeguardLogPushRow(CommonDevice device)
{
- if (this.TabSelectIndex != 1 || Common.LocalSafeguard.Current.listAlarmInfo.Count == 0)
+ if (device == null && HdlSafeguardLogic.Current.listAlarmInfo.Count > 0)
+ {
+ //濡傛灉鏄畨闃叉帹閫佺殑璇濓紝澶翠笂闈㈢殑閭d笁涓渾鍦堢殑鍥炬爣瑕佹敼鍙�
+ Application.RunOnMainThread(() =>
+ {
+ var infoTemp = HdlSafeguardLogic.Current.listAlarmInfo[0];
+ if (infoTemp.AlarmType == SafeguardAlarmType.AtHome)
+ {
+ garrisonControl?.SetIconStatuByGarrisonMode(GarrisonMode.AtHome);
+ this.ShowMassage(ShowMsgType.Tip, infoTemp.AlarmMsg);
+ }
+ else if (infoTemp.AlarmType == SafeguardAlarmType.RemoveHome)
+ {
+ garrisonControl?.SetIconStatuByGarrisonMode(GarrisonMode.RemoveHome);
+ this.ShowMassage(ShowMsgType.Tip, infoTemp.AlarmMsg);
+ }
+ else if (infoTemp.AlarmType == SafeguardAlarmType.RemoveGarrison)
+ {
+ garrisonControl?.SetIconStatuByGarrisonMode(GarrisonMode.RemoveGarrison);
+ this.ShowMassage(ShowMsgType.Tip, infoTemp.AlarmMsg);
+ }
+ });
+ return;
+ }
+ if (this.TabSelectIndex != 1 || HdlSafeguardLogic.Current.listAlarmInfo.Count == 0)
{
return;
}
- var info = Common.LocalSafeguard.Current.listAlarmInfo[0];
-
+ var info = HdlSafeguardLogic.Current.listAlarmInfo[0];
if (device != null)
{
string mainkey1 = Common.LocalDevice.Current.GetDeviceMainKeys(info.DeviceAddr, info.DeviceEpoint);
@@ -1141,46 +682,40 @@
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
+ #endregion
- #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+ #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
/// <summary>
/// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
- /// </summary>
+ /// </summary>
public override void FormActionAgainEvent()
{
//璁剧疆甯冮槻鎸夐挳鐨勫彲瑙嗙姸鎬�
- this.SetButtonVisible();
+ garrisonControl?.SetButtonVisible();
+
if (this.TabSelectIndex == 1)
{
//璁剧疆瀹夐槻璁板綍鍒扮晫闈�
--
Gitblit v1.8.0