From 2450c12c825ad4d78d1572da2fa421706db2df2f Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 18 六月 2020 16:01:14 +0800 Subject: [PATCH] 新代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs | 151 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 129 insertions(+), 22 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs index b98b37a..a4417a0 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs @@ -1,4 +1,5 @@ 锘縰sing Shared.Common; +using Shared.Phone.UserCenter.SmartSound; using System; using System.Collections.Generic; using System.Text; @@ -12,7 +13,10 @@ public class DeviceListMainForm : EditorCommonForm { #region 鈻� 鍙橀噺澹版槑___________________________ - + /// <summary> + /// 鏅鸿兘闊崇 + /// </summary> + private MySmartSoundControl smmartSoundView = null; /// <summary> /// 缃戝叧鎺т欢 /// </summary> @@ -86,6 +90,18 @@ //娓呯┖bodyFrame this.ClearBodyFrame(); + smmartSoundView = new MySmartSoundControl(); + bodyFrameLayout.AddChidren(smmartSoundView); + smmartSoundView.InitControl(); + //褰撳墠涓嶆槸铏氭嫙浣忓畢鐨勮瘽 + if (Config.Instance.Home.IsVirtually == false) + { + smmartSoundView.ButtonClickEvent += (sernder, e) => + { + var form = new SmartSoundListForm(); + form.AddForm(); + }; + } //鍒濆鍖栫綉鍏宠鎺т欢 GatewayResourse.NowSelectGatewayId = GatewayResourse.AppOldSelectGatewayId; var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.AppOldSelectGatewayId); @@ -232,7 +248,7 @@ //鎻愮ず鏂扮増鏈� var btnNew = new InformationTipView(rowMenu.btnIcon); btnNew.Visible = false; - rowMenu.frameTable.AddChidren(btnNew, ChidrenBindMode.BindEventOnly); + rowMenu.frameTable.AddChidren(btnNew, ChidrenBindMode.BindEvent); rowMenu.AddTag("btnNew", btnNew); //妫�娴嬭澶囨槸鍚︽嫢鏈夊畾浣嶇殑鍔熻兘 @@ -317,17 +333,35 @@ var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac); if (isShow == true) { - //灞曞紑妯″紡鏃讹紝鎵╁ぇ渚濇嵁涓�:瀹冩湁鍑犱釜瀛愭帶浠� - heightValue = (listDevice.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace); - //鏍囬鑷繁灏辨槸涓�涓瓙鎺т欢 - if (rowInfo.frameTable.ChildrenCount == 1) + //鑾峰彇杩欎竴鍫嗚澶囨椂灞炰簬浠�涔堢被鍨嬬殑 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); + if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) { - //鑾峰彇杩欎竴鍫嗚澶囨椂灞炰簬浠�涔堢被鍨嬬殑 - var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); - foreach (CommonDevice info in listDevice) + var listTemp = Common.LocalDevice.Current.GetMutilfunctionPanelByMac(listDevice); + //灞曞紑妯″紡鏃讹紝鎵╁ぇ渚濇嵁涓�:瀹冩湁鍑犱釜瀛愭帶浠� + heightValue = (listTemp.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace); + //鏍囬鑷繁灏辨槸涓�涓瓙鎺т欢 + if (rowInfo.frameTable.ChildrenCount == 1) { - //鍔犺浇瀹冪殑鍒楄〃 - this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo); + foreach (CommonDevice info in listTemp) + { + //鍔犺浇瀹冪殑鍒楄〃 + this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo); + } + } + } + else + { + //灞曞紑妯″紡鏃讹紝鎵╁ぇ渚濇嵁涓�:瀹冩湁鍑犱釜瀛愭帶浠� + heightValue = (listDevice.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace); + //鏍囬鑷繁灏辨槸涓�涓瓙鎺т欢 + if (rowInfo.frameTable.ChildrenCount == 1) + { + foreach (CommonDevice info in listDevice) + { + //鍔犺浇瀹冪殑鍒楄〃 + this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo); + } } } } @@ -481,7 +515,7 @@ { //鏂规偊闈㈡澘鐨勫姛鑳介厤缃� var form = new DevicePanel.PanelFangyueFunctionSettionForm(); - form.AddForm(device); + form.AddForm(device, deviceEnumInfo); } else { @@ -625,7 +659,7 @@ if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, nowGateway) == true) { //閲嶆柊璁剧疆浣忓畢ID(杩欎釜搴旇鏄笉缁忚繃APP,鐩存帴鎶婄綉鍏虫仮澶嶄簡鍑哄巶璁剧疆) - if (HdlGatewayLogic.Current.HomeIdIsEmpty(realWay.getGatewayBaseInfo.HomeId) == true) + if (HdlGatewayLogic.Current.HomeIdIsEmpty(realWay.HomeId) == true) { //鏄剧ず杩涘害鏉� ProgressBar.Show(); @@ -701,13 +735,14 @@ /// </summary> /// <param name="gateWay">缃戝叧瀵硅薄</param> /// <param name="online">鍦ㄧ嚎鐘舵�佸彉鏇村悗鐨勭姸鎬�</param> - public override void GatewayOnlinePush(ZbGateway gateWay, bool online) + /// <param name="hadGwOnline">2020.05.25杩藉姞:姝や綇瀹呮槸鍚︽嫢鏈夌綉鍏冲湪绾�</param> + public override void GatewayOnlinePush(ZbGateway gateWay, bool online, bool hadGwOnline) { if (this.gatewayViewRow == null) { return; } - if (HdlGatewayLogic.Current.GetGatewayId(gateWay) == this.gatewayViewRow.zbGatewayId) + if (gateWay.GwId == this.gatewayViewRow.zbGatewayId) { Application.RunOnMainThread(() => { @@ -789,13 +824,12 @@ if (localDevice != null) { //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂� - if (localDevice.IsOnline == device.IsOnline) + if (localDevice.IsOnline != device.IsOnline) { - return; + //淇濆瓨鐘舵�� + localDevice.IsOnline = device.IsOnline; + localDevice.ReSave(); } - //淇濆瓨鐘舵�� - localDevice.IsOnline = device.IsOnline; - localDevice.ReSave(); } rowInfo.MenuRow.IsOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device); @@ -912,7 +946,7 @@ #region 鈻� 瀹炵幇澶栭儴璋冪敤_______________________ /// <summary> - /// 娣诲姞鏂扮殑璁惧鍒扮晫闈㈡甯冧腑 + /// 娣诲姞鏂扮殑璁惧鍒扮晫闈㈡甯冧腑(澶栭儴璋冪敤) /// </summary> /// <param name="deviceAddr">璁惧Mac鍦板潃</param> public void AddDeviceToFormTable(string deviceAddr) @@ -940,6 +974,30 @@ //鍒涘缓鏂扮殑琛� this.AddDeviceMenuRow(deviceAddr); + + //璁板綍褰撳墠鐨勬鍦ㄦ搷浣滅殑璁惧鐨凪ac鍦板潃 + this.nowActionDeviceMac = deviceAddr; + } + } + + /// <summary> + /// 鍒锋柊鎸囧畾璁惧琛岀殑淇℃伅(澶栭儴璋冪敤) + /// </summary> + /// <param name="deviceAddr">璁惧Mac鍦板潃</param> + public void RefreshDeviceRow(string deviceAddr) + { + if (this.dicRowInfo.ContainsKey(deviceAddr) == true) + { + var row = this.dicRowInfo[deviceAddr]; + row.MenuRow?.RefreshControlInfo(true); + //鏄庣粏 + if (row.dicDetailRow != null) + { + foreach (var detailRow in row.dicDetailRow.Values) + { + detailRow.RefreshControlInfo(); + } + } } } @@ -1103,9 +1161,10 @@ this.UseClickStatu = false; if (i_zbGateway != null) { - this.zbGatewayId = HdlGatewayLogic.Current.GetGatewayId(i_zbGateway); + this.zbGatewayId = i_zbGateway.GwId; } this.BackgroundColor = UserCenterColor.Current.White; + this.Y = Application.GetRealHeight(174); this.Height = Application.GetRealHeight(173); } @@ -1220,7 +1279,55 @@ } } } + #endregion + #region 鈻� 鑷畾涔夋櫤鑳介煶绠辨帶浠禵____________________ + + /// <summary> + /// 鑷畾涔夌綉鍏虫帶浠� + /// </summary> + private class MySmartSoundControl : FrameRowControl + { + + /// <summary> + /// 缃戝叧鍚嶅瓧鎺т欢 + /// </summary> + private NormalViewControl btnName = null; + + /// <summary> + /// 鑷畾闊崇鍏虫帶浠� + /// </summary> + public MySmartSoundControl() + { + this.UseClickStatu = false; + this.BackgroundColor = UserCenterColor.Current.White; + this.Height = Application.GetRealHeight(173); + + //this.InitControl(); + } + + + /// <summary> + /// 鍒濆鍖栨帶浠� + /// </summary> + public void InitControl() + { + //鍥炬爣 + var btnIcon = this.AddLeftIcon(81); + btnIcon.UnSelectedImagePath = "SmartSound/SoundIcon.png"; + + //鏄剧ず鏂囨湰 + btnName = this.AddLeftCaption(string.Empty, 700); + btnName.Height = Application.GetRealHeight(60); + btnName.TextSize = 15; + btnName.Y = Application.GetRealHeight(57); + btnName.Text = "灏忓害灏忓害"; + + this.AddRightArrow(); + this.AddMostRightView("", 300, false).Name = "smartSoundLayout"; + this.AddBottomLine(); + } + } #endregion } } -- Gitblit v1.8.0