From d78515ac4ac8cf4a1785d9df18058d6724f12b79 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 14 一月 2021 19:34:59 +0800 Subject: [PATCH] 合并xm2021-01-13 wjc2021-02-06 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs | 728 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 373 insertions(+), 355 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs old mode 100755 new mode 100644 index 8bf882e..54dd891 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs @@ -1,355 +1,373 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Text; - -namespace Shared.Phone.UserCenter -{ - /// <summary> - /// 瀹夐槻璁板綍鎺т欢 - /// </summary> - public class SafeguardLogControl : FrameLayout - { - #region 鈻� 鍙橀噺澹版槑___________________________ - - /// <summary> - /// 浠婃棩鏃犱换浣曟姤璀﹁褰� 鐨勬帶浠� - /// </summary> - private NormalViewControl btnMsg = null; - /// <summary> - /// 鍚勯槻鍖虹殑妗屽竷鎺т欢 - /// </summary> - private Dictionary<int, FrameLayout> dicFrame = new Dictionary<int, FrameLayout>(); - /// <summary> - /// 鍚勯槻鍖虹殑琛屾帶浠� - /// </summary> - private Dictionary<int, List<FrameLayout>> dicRowFrame = new Dictionary<int, List<FrameLayout>>(); - /// <summary> - /// 妗屽竷鎺т欢 - /// </summary> - private FrameLayout frameTable = null; - /// <summary> - /// 寮�鏀捐繖涓帶浠跺嚭鏉�,鏈夌偣鐢� - /// </summary> - private NormalViewControl btnTime = null; - - #endregion - - #region 鈻� 鍒濆鍖朹____________________________ - - /// <summary> - /// 鍒濆鍖� - /// </summary> - public SafeguardLogControl() - { - this.Height = Application.GetRealHeight(260 + 44); - } - - /// <summary> - /// 鍒濆鍖� - /// </summary> - /// <param name="dayText">鏃ユ湡</param> - /// <param name="dicInfo">闃插尯鎶ヨ淇℃伅</param> - public void InitControl(string dayText, Dictionary<int, List<SafeguardAlarmInfo>> dicInfo) - { - this.frameTable = new FrameLayout(); - frameTable.Gravity = Gravity.CenterHorizontal; - frameTable.Radius = 8; - frameTable.Height= Application.GetRealHeight(260); - frameTable.Width = Application.GetRealWidth(968); - frameTable.BackgroundColor = UserCenterColor.Current.White; - this.AddChidren(frameTable); - - //璁板綍鏃堕棿 - this.btnTime = new NormalViewControl(300, 58, true); - btnTime.X = Application.GetRealWidth(35); - btnTime.Y = Application.GetRealHeight(29); - btnTime.TextColor = UserCenterColor.Current.TextGrayColor3; - btnTime.TextID = R.MyInternationalizationString.uRecordTime; - this.frameTable.AddChidren(btnTime); - - //鏃ユ湡 - string month = dayText.Substring(4, 2); - string day = dayText.Substring(6, 2); - var btnDay = new NormalViewControl(300, 58, true); - btnDay.X = frameTable.Width - Application.GetRealWidth(300 + 35); - btnDay.Y = btnTime.Y; - btnDay.TextColor = UserCenterColor.Current.TextColor2; - btnDay.TextAlignment = TextAlignment.CenterRight; - btnDay.Text = month + Language.StringByID(R.MyInternationalizationString.Month) + day + Language.StringByID(R.MyInternationalizationString.Day); - this.frameTable.AddChidren(btnDay); - - //绾� - var btnLine = new NormalViewControl(Application.GetRealWidth(904), ControlCommonResourse.BottomLineHeight, false); - btnLine.X = Application.GetRealWidth(29); - btnLine.Y = Application.GetRealHeight(98); - btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine; - this.frameTable.AddChidren(btnLine); - - //棰勫垱寤轰簲澶ч槻鍖虹殑妗屽竷 - var listId = new List<int>() { 1, 2, 4, 5, 3 }; - int tempY = 0; - for (int i = 0; i < listId.Count; i++) - { - var frame1 = new FrameLayout(); - frame1.Height = Application.GetRealHeight(10); - frame1.Y = tempY == 0 ? Application.GetRealHeight(98) : tempY; - this.frameTable.AddChidren(frame1); - dicFrame[listId[i]] = frame1; - dicRowFrame[listId[i]] = new List<FrameLayout>(); - - //鍒濆鍖栭槻鍖烘爣棰樻帶浠� - this.InitGarrisonTitleControl(listId[i]); - - if (dicInfo != null && dicInfo.ContainsKey(listId[i]) == true && dicInfo[listId[i]].Count > 0) - { - var listRow = dicRowFrame[listId[i]]; - foreach (var alarmInfo in dicInfo[listId[i]]) - { - //娣诲姞鎶ヨ淇℃伅 - var contr = this.AddAlarmInfoControl(alarmInfo); - if (listRow.Count != 0) - { - contr.Y = listRow[listRow.Count - 1].Bottom + Application.GetRealHeight(23); - } - listRow.Add(contr); - } - //鍙樻洿楂樺害 - frame1.Height = listRow[listRow.Count - 1].Bottom + Application.GetRealHeight(55); - this.frameTable.Height = frame1.Bottom; - this.Height = frame1.Bottom + Application.GetRealHeight(44); - tempY = frame1.Bottom; - } - else - { - frame1.Visible = false; - } - } - - if (dicInfo == null || dicInfo.Count == 0) - { - //浠婃棩鏃犱换浣曟姤璀﹁褰� - btnMsg = new NormalViewControl(frameTable.Width, Application.GetRealHeight(60), false); - btnMsg.Y = btnLine.Bottom + Application.GetRealHeight(28); - btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3; - btnMsg.TextID = R.MyInternationalizationString.uNowDayNotHadAlarmLog; - btnMsg.TextAlignment = TextAlignment.Center; - this.frameTable.AddChidren(btnMsg); - } - //娣诲姞搴曢儴闃村奖鐗规晥 - this.frameTable.SetViewShadow(true); - } - - #endregion - - #region 鈻� 鍒濆鍖栭槻鍖烘爣棰樻帶浠禵________________ - - /// <summary> - /// 鍒濆鍖栭槻鍖烘爣棰樻帶浠� - /// </summary> - /// <param name="zoneId"></param> - private void InitGarrisonTitleControl(int zoneId) - { - FrameLayout frame = dicFrame[zoneId]; - //鍥炬爣 - var btnIcon = new IconViewControl(69); - btnIcon.X = Application.GetRealWidth(29); - btnIcon.Y = Application.GetRealHeight(23); - //鍙細鏄�1~5 - if (zoneId == 1 || zoneId == 2) - { - btnIcon.UnSelectedImagePath = "Safeguard/ProtectionAtHome.png"; - } - else - { - btnIcon.UnSelectedImagePath = "Safeguard/ProtectionRemoveHome.png"; - } - frame.AddChidren(btnIcon); - //闃插尯鍚� - var btnName = new NormalViewControl(400, 58, true); - btnName.X = Application.GetRealWidth(109); - btnName.Y = Application.GetRealHeight(35); - btnName.Text = HdlSafeguardLogic.Current.GetGarrisonText(zoneId); - frame.AddChidren(btnName); - //宸插惎鍔� - var btnStatu = new NormalViewControl(300, 46, true); - btnStatu.X = frame.Width - Application.GetRealWidth(300 + 35); - btnStatu.Y = Application.GetRealHeight(35); - btnStatu.TextSize = 12; - btnStatu.TextColor = UserCenterColor.Current.TextGrayColor1; - btnStatu.TextAlignment = TextAlignment.CenterRight; - btnStatu.TextID = R.MyInternationalizationString.uHadStarted; - frame.AddChidren(btnStatu); - //绌虹櫧琛� - var btnSpace = new FrameLayout(); - btnSpace.Height = Application.GetRealHeight(46); - btnSpace.Y = btnIcon.Bottom; - frame.AddChidren(btnSpace); - } - - #endregion - - #region 鈻� 娣诲姞鎶ヨ淇℃伅_______________________ - - /// <summary> - /// 娣诲姞鎶ヨ淇℃伅 - /// </summary> - /// <returns></returns> - public int AddSafeguardAlarmInfo(SafeguardAlarmInfo alarmInfo) - { - if (dicFrame.ContainsKey(alarmInfo.ZoneId) == false) - { - return -1; - } - if (btnMsg != null) - { - //绉婚櫎淇℃伅鎻愮ず鎺т欢 - btnMsg.RemoveFromParent(); - btnMsg = null; - } - var listRow = dicRowFrame[alarmInfo.ZoneId]; - if (listRow.Count == 0) - { - dicFrame[alarmInfo.ZoneId].Visible = true; - //閲嶇疆妗屽竷闂寸殑闂磋窛 - int tempY = 0; - foreach (var frame in dicFrame.Values) - { - if (frame.Visible == true) - { - frame.Y = tempY == 0 ? Application.GetRealHeight(98) : tempY; - tempY = frame.Bottom; - } - } - } - - //娣诲姞鎶ヨ淇℃伅鎺т欢 - var frameRow = this.AddAlarmInfoControl(alarmInfo); - if (listRow.Count >= 100) - { - //绉婚櫎鏈�鍚庝竴涓� - listRow[listRow.Count - 1].RemoveFromParent(); - listRow.RemoveAt(listRow.Count - 1); - } - //褰撳墠杩欎釜闃插尯鐨勫叏閮ㄨ鎺т欢寰�涓嬬Щ鍔� - foreach (var row in listRow) - { - row.Y += frameRow.Height + Application.GetRealHeight(23); - } - listRow.Insert(0, frameRow); - - var value = listRow[listRow.Count - 1].Bottom + Application.GetRealHeight(55) - dicFrame[alarmInfo.ZoneId].Height; - if (value <= 0) - { - return 0; - } - - //鍙樻洿楂樺害 - dicFrame[alarmInfo.ZoneId].Height += value; - //瀹冧箣涓嬬殑鍏ㄩ儴妗屽竷鍏ㄩ儴寰�涓嬬Щ鍔� - bool canMove = false; - int realHeight = 0; - foreach (var id in dicFrame.Keys) - { - if (id == alarmInfo.ZoneId) - { - //褰撳墠鐨勬甯� - canMove = true; - } - else if (canMove == true) - { - dicFrame[id].Y += value; - } - if (canMove == true && dicFrame[id].Visible == true) - { - //璁板綍璧锋渶鍚庝竴涓狥rameLayout鐨勫簳閮� - realHeight = dicFrame[id].Bottom; - } - } - if (realHeight > 0) - { - //鍙樻洿鏁翠釜鎺т欢鐨勭湡瀹為珮搴� - this.frameTable.Height = realHeight; - this.Height = realHeight + Application.GetRealHeight(44); - } - //娣诲姞搴曢儴闃村奖鐗规晥 - this.frameTable.SetViewShadow(true); - - return value; - } - - /// <summary> - /// 娣诲姞鎶ヨ淇℃伅鎺т欢 - /// </summary> - /// <param name="alarmInfo"></param> - /// <returns></returns> - private FrameLayout AddAlarmInfoControl(SafeguardAlarmInfo alarmInfo) - { - var frame = dicFrame[alarmInfo.ZoneId]; - - var rowFrame = new FrameLayout(); - rowFrame.Y = Application.GetRealHeight(130); - rowFrame.Height = Application.GetRealHeight(58); - frame.AddChidren(rowFrame); - - //鎴块棿 - var btnRoom = new NormalViewControl(165, 58, true); - btnRoom.X = Application.GetRealWidth(35); - btnRoom.TextColor = UserCenterColor.Current.TextGrayColor3; - btnRoom.Text = alarmInfo.RoomName; - rowFrame.AddChidren(btnRoom); - //璁惧 - string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(alarmInfo.DeviceAddr, alarmInfo.DeviceEpoint); - var device = Common.LocalDevice.Current.GetDevice(mainkeys); - var btnDevice = new NormalViewControl(271, 58, true); - btnDevice.X = Application.GetRealWidth(199); - btnDevice.TextColor = UserCenterColor.Current.TextGrayColor3; - btnDevice.Text = device == null ? alarmInfo.DeviceName : Common.LocalDevice.Current.GetDeviceEpointName(device); - rowFrame.AddChidren(btnDevice); - //鎶ヨ淇℃伅 - var btnMsg = new NormalViewControl(303, 58, true); - btnMsg.X = Application.GetRealWidth(469); - btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3; - //鐢垫睜鐢甸噺 - if (alarmInfo.BatteryMsg != null) - { - btnMsg.Text = alarmInfo.BatteryMsg; - } - //琚媶鎶ヨ - else if (alarmInfo.DemolishmentMsg != null) - { - btnMsg.Text = alarmInfo.DemolishmentMsg; - } - else - { - btnMsg.Text = alarmInfo.AlarmMsg; - } - rowFrame.AddChidren(btnMsg); - //鏃堕棿锛氭椂鍒嗙 - var btnTime = new NormalViewControl(190, 58, true); - btnTime.X = Application.GetRealWidth(758); - btnTime.TextColor = UserCenterColor.Current.TextGrayColor3; - btnTime.TextAlignment = TextAlignment.CenterRight; - btnTime.Text = alarmInfo.Time; - rowFrame.AddChidren(btnTime); - - return rowFrame; - } - - #endregion - - #region 鈻� 鎺т欢閿�姣乢__________________________ - - /// <summary> - /// 鎺т欢閿�姣� - /// </summary> - public override void RemoveFromParent() - { - dicRowFrame.Clear(); - dicFrame.Clear(); - - base.RemoveFromParent(); - } - - #endregion - } -} +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter +{ + /// <summary> + /// 瀹夐槻璁板綍鎺т欢 + /// </summary> + public class SafeguardLogControl : FrameLayout + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 浠婃棩鏃犱换浣曟姤璀﹁褰� 鐨勬帶浠� + /// </summary> + private NormalViewControl btnMsg = null; + /// <summary> + /// 鍚勯槻鍖虹殑妗屽竷鎺т欢 + /// </summary> + private Dictionary<int, FrameLayout> dicFrame = new Dictionary<int, FrameLayout>(); + /// <summary> + /// 鍚勯槻鍖虹殑琛屾帶浠� + /// </summary> + private Dictionary<int, List<FrameLayout>> dicRowFrame = new Dictionary<int, List<FrameLayout>>(); + /// <summary> + /// 妗屽竷鎺т欢 + /// </summary> + private FrameLayout frameTable = null; + /// <summary> + /// 寮�鏀捐繖涓帶浠跺嚭鏉�,鏈夌偣鐢� + /// </summary> + private NormalViewControl btnTime = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鍒濆鍖� + /// </summary> + public SafeguardLogControl() + { + this.Height = Application.GetRealHeight(260 + 44); + } + + /// <summary> + /// 鍒濆鍖� + /// </summary> + /// <param name="dayText">鏃ユ湡</param> + /// <param name="dicInfo">闃插尯鎶ヨ淇℃伅</param> + public void InitControl(string dayText, Dictionary<int, List<SafeguardAlarmInfo>> dicInfo) + { + this.frameTable = new FrameLayout(); + frameTable.Gravity = Gravity.CenterHorizontal; + frameTable.Radius = (uint)Application.GetRealHeight(17); + frameTable.Height= Application.GetRealHeight(260); + frameTable.Width = Application.GetRealWidth(968); + frameTable.BackgroundColor = UserCenterColor.Current.White; + this.AddChidren(frameTable); + + //璁板綍鏃堕棿 + this.btnTime = new NormalViewControl(300, 58, true); + btnTime.X = Application.GetRealWidth(35); + btnTime.Y = Application.GetRealHeight(29); + btnTime.TextColor = UserCenterColor.Current.TextGrayColor3; + btnTime.TextID = R.MyInternationalizationString.uRecordTime; + this.frameTable.AddChidren(btnTime); + + //鏃ユ湡 + string month = dayText.Substring(4, 2); + string day = dayText.Substring(6, 2); + var btnDay = new NormalViewControl(300, 58, true); + btnDay.X = frameTable.Width - Application.GetRealWidth(300 + 35); + btnDay.Y = btnTime.Y; + btnDay.TextColor = UserCenterColor.Current.TextColor2; + btnDay.TextAlignment = TextAlignment.CenterRight; + btnDay.Text = month + Language.StringByID(R.MyInternationalizationString.Month) + day + Language.StringByID(R.MyInternationalizationString.Day); + this.frameTable.AddChidren(btnDay); + + //绾� + var btnLine = new NormalViewControl(Application.GetRealWidth(904), ControlCommonResourse.BottomLineHeight, false); + btnLine.X = Application.GetRealWidth(29); + btnLine.Y = Application.GetRealHeight(98); + btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine; + this.frameTable.AddChidren(btnLine); + + //棰勫垱寤轰簲澶ч槻鍖虹殑妗屽竷 + var listId = new List<int>() { 1, 2, 4, 5, 3 }; + int tempY = 0; + for (int i = 0; i < listId.Count; i++) + { + var frame1 = new FrameLayout(); + frame1.Height = Application.GetRealHeight(10); + frame1.Y = tempY == 0 ? Application.GetRealHeight(98) : tempY; + this.frameTable.AddChidren(frame1); + dicFrame[listId[i]] = frame1; + dicRowFrame[listId[i]] = new List<FrameLayout>(); + + //鍒濆鍖栭槻鍖烘爣棰樻帶浠� + this.InitGarrisonTitleControl(listId[i]); + + if (dicInfo != null && dicInfo.ContainsKey(listId[i]) == true && dicInfo[listId[i]].Count > 0) + { + var listRow = dicRowFrame[listId[i]]; + foreach (var alarmInfo in dicInfo[listId[i]]) + { + //涓�鏉′俊鎭噷闈紝瀹冨彲鑳藉寘鍚涓姤璀� + var listMsg = HdlAlarmsLogic.Current.GetSensorListAlarmMsg(alarmInfo); + foreach (var strMsg in listMsg) + { + //娣诲姞鎶ヨ淇℃伅鎺т欢 + var contr = this.AddAlarmInfoControl(alarmInfo, strMsg); + if (listRow.Count != 0) + { + contr.Y = listRow[listRow.Count - 1].Bottom + Application.GetRealHeight(23); + } + listRow.Add(contr); + } + } + //鍙樻洿楂樺害 + frame1.Height = listRow[listRow.Count - 1].Bottom + Application.GetRealHeight(55); + this.frameTable.Height = frame1.Bottom; + this.Height = frame1.Bottom + Application.GetRealHeight(44); + tempY = frame1.Bottom; + } + else + { + frame1.Visible = false; + } + } + + if (dicInfo == null || dicInfo.Count == 0) + { + //浠婃棩鏃犱换浣曟姤璀﹁褰� + btnMsg = new NormalViewControl(frameTable.Width, Application.GetRealHeight(60), false); + btnMsg.Y = btnLine.Bottom + Application.GetRealHeight(28); + btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3; + btnMsg.TextID = R.MyInternationalizationString.uNowDayNotHadAlarmLog; + btnMsg.TextAlignment = TextAlignment.Center; + this.frameTable.AddChidren(btnMsg); + } + //娣诲姞搴曢儴闃村奖鐗规晥 + this.frameTable.SetViewShadow(true); + } + + #endregion + + #region 鈻� 鍒濆鍖栭槻鍖烘爣棰樻帶浠禵________________ + + /// <summary> + /// 鍒濆鍖栭槻鍖烘爣棰樻帶浠� + /// </summary> + /// <param name="zoneId"></param> + private void InitGarrisonTitleControl(int zoneId) + { + FrameLayout frame = dicFrame[zoneId]; + //鍥炬爣 + var btnIcon = new IconViewControl(69); + btnIcon.X = Application.GetRealWidth(29); + btnIcon.Y = Application.GetRealHeight(23); + //鍙細鏄�1~5 + if (zoneId == 1 || zoneId == 2) + { + btnIcon.UnSelectedImagePath = "Safeguard/ProtectionAtHome.png"; + } + else + { + btnIcon.UnSelectedImagePath = "Safeguard/ProtectionRemoveHome.png"; + } + frame.AddChidren(btnIcon); + //闃插尯鍚� + var btnName = new NormalViewControl(400, 58, true); + btnName.X = Application.GetRealWidth(109); + btnName.Y = Application.GetRealHeight(35); + btnName.Text = HdlSafeguardLogic.Current.GetGarrisonText(zoneId); + frame.AddChidren(btnName); + //宸插惎鍔� + var btnStatu = new NormalViewControl(300, 46, true); + btnStatu.X = frame.Width - Application.GetRealWidth(300 + 35); + btnStatu.Y = Application.GetRealHeight(35); + btnStatu.TextSize = 12; + btnStatu.TextColor = UserCenterColor.Current.TextGrayColor1; + btnStatu.TextAlignment = TextAlignment.CenterRight; + btnStatu.TextID = R.MyInternationalizationString.uHadStarted; + frame.AddChidren(btnStatu); + //绌虹櫧琛� + var btnSpace = new FrameLayout(); + btnSpace.Height = Application.GetRealHeight(46); + btnSpace.Y = btnIcon.Bottom; + frame.AddChidren(btnSpace); + } + + #endregion + + #region 鈻� 娣诲姞鎶ヨ淇℃伅_______________________ + + /// <summary> + /// 娣诲姞鎶ヨ淇℃伅 + /// </summary> + /// <param name="alarmInfo"></param> + /// <returns></returns> + public int AddSafeguardAlarmInfo(SafeguardAlarmInfo alarmInfo) + { + if (dicFrame.ContainsKey(alarmInfo.ZoneId) == false) + { + return -1; + } + //涓�鏉′俊鎭噷闈紝瀹冨彲鑳藉寘鍚涓姤璀� + var listMsg = HdlAlarmsLogic.Current.GetSensorListAlarmMsg(alarmInfo); + int valueCount = 0; + foreach (var strMsg in listMsg) + { + //涓�涓姤璀︿俊鎭紝涓�涓帶浠� + int value = this.AddSafeguardAlarmInfo2(alarmInfo, strMsg); + //杩欎釜value鏄帶浠跺鍔犵殑楂樺害鍊� + valueCount += value; + } + return valueCount; + } + + /// <summary> + /// 娣诲姞鎶ヨ淇℃伅(涓�涓姤璀︿俊鎭紝涓�涓帶浠�) + /// </summary> + /// <param name="alarmInfo"></param> + /// <param name="strMsg">閽堝涓�鏉℃暟鎹噷闈㈠寘鍚涓姤璀︾殑闂锛岃拷鍔犵殑鎶ヨ鏂囨湰</param> + /// <returns></returns> + private int AddSafeguardAlarmInfo2(SafeguardAlarmInfo alarmInfo, string strMsg) + { + if (dicFrame.ContainsKey(alarmInfo.ZoneId) == false) + { + return -1; + } + if (btnMsg != null) + { + //绉婚櫎淇℃伅鎻愮ず鎺т欢 + btnMsg.RemoveFromParent(); + btnMsg = null; + } + var listRow = dicRowFrame[alarmInfo.ZoneId]; + if (listRow.Count == 0) + { + dicFrame[alarmInfo.ZoneId].Visible = true; + //閲嶇疆妗屽竷闂寸殑闂磋窛 + int tempY = 0; + foreach (var frame in dicFrame.Values) + { + if (frame.Visible == true) + { + frame.Y = tempY == 0 ? Application.GetRealHeight(98) : tempY; + tempY = frame.Bottom; + } + } + } + + //娣诲姞鎶ヨ淇℃伅鎺т欢 + var frameRow = this.AddAlarmInfoControl(alarmInfo, strMsg); + if (listRow.Count >= 100) + { + //绉婚櫎鏈�鍚庝竴涓� + listRow[listRow.Count - 1].RemoveFromParent(); + listRow.RemoveAt(listRow.Count - 1); + } + //褰撳墠杩欎釜闃插尯鐨勫叏閮ㄨ鎺т欢寰�涓嬬Щ鍔� + foreach (var row in listRow) + { + row.Y += frameRow.Height + Application.GetRealHeight(23); + } + listRow.Insert(0, frameRow); + + var value = listRow[listRow.Count - 1].Bottom + Application.GetRealHeight(55) - dicFrame[alarmInfo.ZoneId].Height; + if (value <= 0) + { + return 0; + } + + //鍙樻洿楂樺害 + dicFrame[alarmInfo.ZoneId].Height += value; + //瀹冧箣涓嬬殑鍏ㄩ儴妗屽竷鍏ㄩ儴寰�涓嬬Щ鍔� + bool canMove = false; + int realHeight = 0; + foreach (var id in dicFrame.Keys) + { + if (id == alarmInfo.ZoneId) + { + //褰撳墠鐨勬甯� + canMove = true; + } + else if (canMove == true) + { + dicFrame[id].Y += value; + } + if (canMove == true && dicFrame[id].Visible == true) + { + //璁板綍璧锋渶鍚庝竴涓狥rameLayout鐨勫簳閮� + realHeight = dicFrame[id].Bottom; + } + } + if (realHeight > 0) + { + //鍙樻洿鏁翠釜鎺т欢鐨勭湡瀹為珮搴� + this.frameTable.Height = realHeight; + this.Height = realHeight + Application.GetRealHeight(44); + } + //娣诲姞搴曢儴闃村奖鐗规晥 + this.frameTable.SetViewShadow(true); + + return value; + } + + /// <summary> + /// 娣诲姞鎶ヨ淇℃伅鎺т欢 + /// </summary> + /// <param name="alarmInfo"></param> + /// <returns></returns> + private FrameLayout AddAlarmInfoControl(SafeguardAlarmInfo alarmInfo, string strMsg) + { + var frame = dicFrame[alarmInfo.ZoneId]; + + var rowFrame = new FrameLayout(); + rowFrame.Y = Application.GetRealHeight(130); + rowFrame.Height = Application.GetRealHeight(58); + frame.AddChidren(rowFrame); + + //鎴块棿 + var btnRoom = new NormalViewControl(165, 58, true); + btnRoom.X = Application.GetRealWidth(35); + btnRoom.TextColor = UserCenterColor.Current.TextGrayColor3; + btnRoom.Text = alarmInfo.RoomName; + rowFrame.AddChidren(btnRoom); + //璁惧 + string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(alarmInfo.DeviceAddr, alarmInfo.DeviceEpoint); + var device = Common.LocalDevice.Current.GetDevice(mainkeys); + var btnDevice = new NormalViewControl(271, 58, true); + btnDevice.X = Application.GetRealWidth(199); + btnDevice.TextColor = UserCenterColor.Current.TextGrayColor3; + btnDevice.Text = device == null ? alarmInfo.DeviceName : Common.LocalDevice.Current.GetDeviceEpointName(device); + rowFrame.AddChidren(btnDevice); + //鎶ヨ淇℃伅 + var btnMsg = new NormalViewControl(303, 58, true); + btnMsg.X = Application.GetRealWidth(469); + btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3; + btnMsg.Text = strMsg; + rowFrame.AddChidren(btnMsg); + //鏃堕棿锛氭椂鍒嗙 + var btnTime = new NormalViewControl(190, 58, true); + btnTime.X = Application.GetRealWidth(758); + btnTime.TextColor = UserCenterColor.Current.TextGrayColor3; + btnTime.TextAlignment = TextAlignment.CenterRight; + btnTime.Text = alarmInfo.Time; + rowFrame.AddChidren(btnTime); + + return rowFrame; + } + + #endregion + + #region 鈻� 鎺т欢閿�姣乢__________________________ + + /// <summary> + /// 鎺т欢閿�姣� + /// </summary> + public override void RemoveFromParent() + { + dicRowFrame.Clear(); + dicFrame.Clear(); + + base.RemoveFromParent(); + } + + #endregion + } +} -- Gitblit v1.8.0