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/Device/DeviceMacInfoEditorForm.cs |  438 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 316 insertions(+), 122 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 68516c9..c4a9f56 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -20,7 +20,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalListControl listview = null;
+        private FrameListControl listview = null;
         /// <summary>
         /// 璁惧鐨勮澶囩被鍨�
         /// </summary>
@@ -61,7 +61,7 @@
             this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice);
 
             //璁剧疆鏍囬淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceInfo));
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion));
 
             //鍒濆鍖栧彸涓婅鑿滃崟
             this.InitTopRightMenu();
@@ -81,15 +81,19 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            var listBackControl = new VerticalFrameControl();
+            listBackControl.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackControl);
+
             //鍒濆鍖栨甯�
             var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368);
+            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1368);
 
             //鍥剧墖
             var btnPic = new DeviceInfoIconControl();
             btnPic.Y = Application.GetRealHeight(92);
             btnPic.Gravity = Gravity.CenterHorizontal;
-            bodyFrameLayout.AddChidren(btnPic);
+            listBackControl.frameTable.AddChidren(btnPic);
             btnPic.InitControl(listNewDevice[0]);
 
             //璁惧澶囨敞
@@ -124,16 +128,18 @@
             //鍒掔嚎
             btnType.AddBottomLine();
 
-            //鎵�灞炲尯鍩�
+            //瀹夎浣嶇疆
             var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
             listview.AddChidren(rowBeloneArea);
-            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice);
+            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice);
             //搴曠嚎
             rowBeloneArea.AddBottomLine();
 
             var listCheck = new List<string>();
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
+                //閫夋嫨鏈垎閰嶆椂,娓呯┖
+                if (roomKeys == string.Empty) { listCheck = new List<string>(); }
                 foreach (var device in this.listNewDevice)
                 {
                     if (device is OTADevice)
@@ -141,18 +147,30 @@
                         //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
                         continue;
                     }
-                    var room = Room.CurrentRoom.GetRoomByDevice(device);
+                    if (roomKeys == string.Empty)
+                    {
+                        //濡傛灉閫夋嫨鐨勬槸鏈垎閰嶏紝鍒欏畠鐨勫叏閮ㄥ洖璺棤鏉′欢鍏ㄩ儴娓呯┖鎴块棿
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                        continue;
+                    }
+                    var room = HdlRoomLogic.Current.GetRoomByDevice(device);
                     string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
                     if (room == null)
                     {
                         //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
                         listCheck.Add(mainKeys);
-                        Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                    }
+                    else if (this.deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir
+                      && device.Type == DeviceType.FreshAir)
+                    {
+                        //鏂伴闈㈡澘鐨勬柊椋庤澶囷紝鍒欏尯鍩熻窡鐫�妯″潡涓�璧�
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                     else if (listCheck.Contains(mainKeys) == true)
                     {
                         //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇�
-                        Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                 }
                 //淇濆瓨璁惧鎴块棿绱㈠紩
@@ -163,7 +181,7 @@
             this.AddAllMenuRow();
 
             //鍒濆鍖栨甯冨畬鎴�
-            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+            tableContr.FinishInitControl();
             tableContr = null;
 
             //淇濆瓨
@@ -188,6 +206,19 @@
                     this.CloseForm();
                 }
             };
+            //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                for (int i = 0; i < listview.ChildrenCount; i++)
+                {
+                    var myRow = listview.GetChildren(i) as FrameRowControl;
+                    if (myRow != null)
+                    {
+                        myRow.UseClickStatu = false;
+                        myRow.CanClick = false;
+                    }
+                }
+            }
         }
 
         #endregion
@@ -217,6 +248,20 @@
                 //娣诲姞銆愬鍐呮満璁剧疆銆戣(绌鸿皟涓撶敤)
                 this.AddIndoorUnitSettionRow();
             }
+            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+            {
+                //绠�绾﹀鍔熻兘闈㈡澘
+                this.AddIBindRow();
+                this.AddFunctionSettionRow();
+                this.AddHumiditySourceRow();
+                this.AddTemperatureSensorRow();
+
+            }
+            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment)
+            {
+                //娣诲姞銆愮粦瀹氱洰鏍囥�戣(绠�绾︾幆澧冮潰鏉跨敤) 
+                this.AddSimplePanelSettionRow();
+            }
             else
             {
                 //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
@@ -233,8 +278,22 @@
                     //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
                     this.AddPanelSettionRow();
                 }
-                //娣诲姞銆愬姛鑳借缃�戣
-                this.AddFunctionSettionRow();
+                //妫�娴嬭兘鍚︽樉绀哄姛鑳借缃殑鑿滃崟
+                if (this.CheckCanShowFunctionSettionRow() == true)
+                {
+                    //娣诲姞銆愬姛鑳借缃�戣
+                    if (deviceEnumInfo.ConcreteType == DeviceConcreteType.Sensor_PMTwoPointFive)
+                    {
+                        //PM浼犳劅鍣�
+                        this.AddFunctionSettionRowPM();
+                    }
+                    else
+                    {
+                        this.AddFunctionSettionRow();
+                    }
+
+                }
+
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
@@ -290,7 +349,7 @@
                          };
                          actionNone = () =>
                          {
-                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock);
                          };
                          HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
                      }
@@ -311,7 +370,7 @@
                              };
                              actionNone = () =>
                              {
-                                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
+                                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock);
                              };
                              HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
 
@@ -353,6 +412,11 @@
                 if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword) == false)
                 {
                     btnswitch.IsSelected = true;
+                }
+                //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇�,璁╂墍鏈夎彍鍗曢兘涓嶈兘鐐瑰嚮
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    btnswitch.CanClick = false;
                 }
 
                 btnswitch.ButtonClickEvent += async (sender, e) =>
@@ -481,6 +545,31 @@
             };
         }
 
+        #region 鈻� 绠�绾︾幆澧�(闈㈡澘)_____________________
+
+        /// <summary>
+        /// 娣诲姞銆愭寜閿缃�戣绠�绾︾幆澧�(闈㈡澘)
+        /// </summary>
+        private void AddSimplePanelSettionRow()
+        {
+            //鎸夐敭璁剧疆
+            string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DeviceBind.PanelSimpleEnvironmentTargetsForm();
+
+            };
+        }
+
+        #endregion
+		
         #endregion
 
         #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
@@ -494,7 +583,7 @@
                 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
                 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight
                 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
-                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueNewWind)
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
             {
                 //鎸夐敭璁剧疆
                 string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion);
@@ -511,7 +600,7 @@
                     || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
                     || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
                     {
-                        //鏂规偊闈㈡澘鐨勬寜閿厤缃�
+                        //鏂规偊鎸夐敭闈㈡澘[鍗曞紑鍙屾帶/鍙屽紑鍥涙帶/鍥涘紑鍏帶]閰嶇疆
                         var form = new DevicePanel.PanelFangyueButtonSettionForm();
                         form.AddForm(listNewDevice[0]);
                     }
@@ -524,6 +613,8 @@
                     else
                     {
                         //鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃�
+                        var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm();
+                        form.AddForm(listNewDevice[0]);
                     }
                 };
                 return true;
@@ -639,12 +730,31 @@
             //鍙湁鍥炶矾鏁板ぇ浜�1鎵嶈兘鏈夎繖涓彍鍗�
             if (Common.LocalDevice.Current.GetDevicesCountByMac(listNewDevice[0].DeviceAddr) == 1)
             {
-                return;
+                //鏂伴灏忔ā鍧楀彧鏈変竴涓洖璺紝浣嗚姹傛柊椋庡皬妯″潡鐨勬柊椋庢湁鍔熻兘璁剧疆
+                if (deviceEnumInfo.ConcreteType != DeviceConcreteType.Relay_FangyueFreshAirModul)
+                {
+                    return;
+                }
             }
             if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
-                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueNewWind)
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
             {
                 //鐜闈㈡澘娌℃湁鍔熻兘璁剧疆
+                return;
+            }
+
+            //2020.03.06鏂拌拷鍔狅細濡傛灉鍏ㄩ儴閮芥槸骞叉帴鐐圭殑璇�,涔熶笉鑳芥湁杩欎釜涓滆タ
+            int dryContactCount = 0;
+            for (int i = 0; i < listNewDevice.Count; i++)
+            {
+                if (listNewDevice[i].Type == DeviceType.OnOffSwitch)
+                {
+                    dryContactCount++;
+                }
+            }
+            if (listNewDevice.Count == dryContactCount)
+            {
+                //杩欎釜璁惧鍏ㄦ槸骞叉帴鐐�
                 return;
             }
 
@@ -665,7 +775,7 @@
                     || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
                 {
                     var form = new DevicePanel.PanelFangyueFunctionSettionForm();
-                    form.AddForm(listNewDevice[0]);
+                    form.AddForm(listNewDevice[0], deviceEnumInfo);
                 }
                 //娌充笢鐨勯潰鏉胯澶�
                 else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
@@ -678,6 +788,27 @@
                     var form = new DeviceFunctionSettionForm();
                     form.AddForm(listNewDevice[0], false);
                 }
+            };
+        }
+
+        /// <summary>
+        /// 娣诲姞浼犳劅鍣ㄣ�愬姛鑳借缃�戣
+        /// </summary>
+        private void AddFunctionSettionRowPM()
+        {
+            //鍔熻兘璁剧疆
+            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DeviceFunctionSettionForm();
+                form.AddForm(listNewDevice[0], false);
             };
         }
 
@@ -755,15 +886,22 @@
             var btnSwitch = btnFunction.AddMostRightSwitchIcon();
             //搴曠嚎
             btnFunction.AddBottomLine();
-            btnSwitch.ButtonClickEvent += async (sender, e) =>
+            btnSwitch.ButtonClickEvent += (sender, e) =>
             {
                 //鍒囨崲妯″紡
-                var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected);
+                bool statu = !btnSwitch.IsSelected;
+                var result = HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu);
                 if (result == true)
                 {
-                    btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                    btnSwitch.IsSelected = statu;
                 }
             };
+            //濡傛灉鏄櫄鎷熶綇瀹�
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                btnSwitch.IsSelected = ModelData.DeviceModelDataLogic.Current.GetCurtainHandPullControl(deviceCurtain);
+                return;
+            }
 
             //娣诲姞灞炴�т笂鎶ョ洃鍚�
             string mainkeys = LocalDevice.Current.GetDeviceMainKeys(this.listNewDevice[0]);
@@ -823,7 +961,115 @@
                 form.AddForm(listNewDevice[0].DeviceAddr);
             };
         }
+        #endregion
 
+        #region 鈻�  绠�绾﹀鍔熻兘闈㈡澘鐢╛__________________
+        /// <summary>
+        /// 娣诲姞銆愮粦瀹氱洰鏍囥�戣 
+        /// </summary>
+        private void AddIBindRow()
+        {
+            string bindTargets = Language.StringByID(R.MyInternationalizationString.uBindTargets);
+            var btnBindTargets = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnBindTargets);
+            btnBindTargets.AddLeftCaption(bindTargets, 600);
+            //鍚戝彸鍥炬爣
+            btnBindTargets.AddRightArrow();
+            //搴曠嚎
+            btnBindTargets.AddBottomLine();
+            btnBindTargets.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DeviceBind.PanelSimpleMutilfunctionTargetsForm();
+            };
+        }
+
+        /// <summary>
+        ///  婀垮害鏉ユ簮琛�
+        /// </summary>
+        private void AddHumiditySourceRow()
+        {
+            //婀垮害
+            var rowHumidity = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowHumidity);
+            rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600);
+            //搴曠嚎
+            rowHumidity.AddBottomLine();
+            //鍙崇澶�
+            rowHumidity.AddRightArrow();
+            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
+            //if (!string.IsNullOrEmpty(bindHumidityName))
+            //{
+            //    msg = bindHumidityName;
+            //}
+            var btnHumidityStatu = rowHumidity.AddMostRightView(msg, 700);
+            rowHumidity.ButtonClickEvent += (sender, e) =>
+            {
+                //var key = new Panel();
+                //var bindHumiditySensorPage = new Shared.Phone.UserCenter.DeviceBind.PanelSimpleMutilfunctionBindSensorForm(key, bindHumidityDev, 3);
+                //Shared.Phone.UserView.HomePage.Instance.AddChidren(bindHumiditySensorPage);
+                //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                //bindHumiditySensorPage.Show();
+
+                //bindHumiditySensorPage.actionHumidityTarget += (bindName) =>
+                //{
+                //    Application.RunOnMainThread(() =>
+                //    {
+                //        if (string.IsNullOrEmpty(bindName))
+                //        {
+                //            btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
+                //        }
+                //        else
+                //        {
+                //            btnHumidityStatu.Text = bindName;
+                //        }
+                //    });
+                //};
+            };
+        }
+
+        /// <summary>
+        ///  娓╁害鏉ユ簮琛�
+        /// </summary>
+        private void AddTemperatureSensorRow()
+        {
+            //娓╁害鏉ユ簮
+            var rowTemPerature = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowTemPerature);
+            rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600);
+            //搴曠嚎
+            rowTemPerature.AddBottomLine();
+            //鍙崇澶�
+            rowTemPerature.AddRightArrow();
+            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
+            //if (!string.IsNullOrEmpty(bindTemperatureName))
+            //{
+            //    msg = bindTemperatureName;
+            //}
+            var btnTemperatureStatu = rowTemPerature.AddMostRightView(msg, 700);
+            rowTemPerature.ButtonClickEvent += (sender, e) =>
+            {
+                //var key = new Panel();
+                //var bindTemperatureSensorPage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(key, bindTemperatureDev, 2);
+                //Shared.Phone.UserView.HomePage.Instance.AddChidren(bindTemperatureSensorPage);
+                //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                //bindTemperatureSensorPage.Show();
+
+                //bindTemperatureSensorPage.actionTemperatureTarget += (bindName) =>
+                //{
+                //    Application.RunOnMainThread(() =>
+                //    {
+                //        if (string.IsNullOrEmpty(bindName))
+                //        {
+                //            btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
+                //        }
+                //        else
+                //        {
+                //            btnTemperatureStatu.Text = bindName;
+                //        }
+                //    });
+                //};
+            };
+        }
         #endregion
 
         #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________
@@ -833,90 +1079,23 @@
         /// </summary>
         private void AddAirSwitchFunctionTypeRow()
         {
-            if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A鏅鸿兘绌哄紑)
+            //2020.04.28鍙樻洿:鏈変釜鍒澶囧畠闄や簡缁х數鍣ㄥ洖璺紝浠�涔堥兘娌℃湁浜�,
+            //杩欎釜鏃跺�欎篃瑕佺幇瀹炲嚭鏉�
+            if (this.listNewDevice.Count != 1)
             {
-                //涓嶆槸绌烘皵寮�鍏�
                 return;
             }
-
-            //鍔熻兘绫诲瀷
-            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
-            var DfunctionType = this.listNewDevice[0].DfunctionType;
-
-            //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
-            int nowSelectNo = 1;
-            string strType = string.Empty;
-            if (DfunctionType == DeviceFunctionType.A鐏厜)
+            if (this.listNewDevice[0].Type != DeviceType.OnOffOutput
+                && this.listNewDevice[0].Type != DeviceType.AirSwitch)
             {
-                strType = Language.StringByID(R.MyInternationalizationString.uLight);
-                nowSelectNo = 1;
+                return;
             }
-            else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
-            {
-                strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
-                nowSelectNo = 0;
-            }
-            else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
-            {
-                strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
-                nowSelectNo = 2;
-            }
-
-            var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
-            btnFunction.UseClickStatu = true;
-            listview.AddChidren(btnFunction);
-            btnFunction.InitControl();
+            //鑷畾涔夊姛鑳界被鍨嬫帶浠�
+            var rowFunction = new DeviceFunctionTypeRowControl(this.listNewDevice[0], listview.rowSpace / 2);
+            listview.AddChidren(rowFunction);
+            rowFunction.InitControl();
             //搴曠嚎
-            btnFunction.AddBottomLine();
-            //鍙崇澶�
-            btnFunction.AddRightArrow();
-            btnFunction.ButtonClickEvent += (sender, e) =>
-            {
-                //鏄剧ず鍒楄〃
-                var listText = new List<string>();
-                listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏�
-                listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜
-                listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇
-                //鏍囬:閫夋嫨鍔熻兘绫诲瀷
-                var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
-
-                var form = new BottomItemSelectForm();
-                form.AddForm(title, listText, nowSelectNo);
-                form.FinishSelectEvent += (selectNo) =>
-                {
-                    btnFunction.Text = listText[selectNo];
-                    nowSelectNo = selectNo;
-                    //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
-                    if (selectNo == 0)
-                    {
-                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A寮�鍏�;
-                        if (this.listNewDevice[0].IsCustomizeImage == false)
-                        {
-                            //閲嶆柊璁剧疆鍥剧墖
-                            this.listNewDevice[0].IconPath = "Device/Switch.png";
-                        }
-                    }
-                    else if (selectNo == 1)
-                    {
-                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鐏厜;
-                        if (this.listNewDevice[0].IsCustomizeImage == false)
-                        {
-                            //閲嶆柊璁剧疆鍥剧墖
-                            this.listNewDevice[0].IconPath = "Device/Light.png";
-                        }
-                    }
-                    else
-                    {
-                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鎻掑骇;
-                        if (this.listNewDevice[0].IsCustomizeImage == false)
-                        {
-                            //閲嶆柊璁剧疆鍥剧墖
-                            this.listNewDevice[0].IconPath = "Device/Socket1.png";
-                        }
-                    }
-                    this.listNewDevice[0].ReSave();
-                };
-            };
+            rowFunction.AddBottomLine();
         }
 
         #endregion
@@ -1003,7 +1182,7 @@
             btnNewVersion.Visible = false;
             btnNewVersion.X = Application.GetRealWidth(242);
             btnNewVersion.Y = Application.GetRealHeight(23);
-            rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEventOnly);
+            rowUpDate.AddChidren(btnNewVersion, ChidrenBindMode.BindEvent);
 
             rowUpDate.ButtonClickEvent += (sender, e) =>
             {
@@ -1022,8 +1201,12 @@
                 btnNewVersion.Visible = false;
             };
 
-            //璁剧疆璁惧鐨勭増鏈俊鎭�
-            this.SetDeviceVersionInfo(btnNewVersion, oTADevice);
+            //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢
+            if (Common.Config.Instance.Home.IsVirtually == false)
+            {
+                //璁剧疆璁惧鐨勭増鏈俊鎭�
+                this.SetDeviceVersionInfo(btnNewVersion, oTADevice);
+            }
         }
 
         /// <summary>
@@ -1082,17 +1265,11 @@
         /// 璁惧閲嶅懡鍚�
         /// </summary>
         /// <param name="i_deviceName">deviceName.</param>
-        private async void DeviceReName(string i_deviceName, bool closeForm)
+        private void DeviceReName(string i_deviceName, bool closeForm)
         {
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
-
             //淇敼MAC鍚�
             string deviceName = i_deviceName.Trim();
-            var result = await Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-
+            var result = Common.LocalDevice.Current.ReMacName(this.listNewDevice, deviceName);
             if (result == false)
             {
                 return;
@@ -1137,18 +1314,8 @@
         {
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
-            if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
-            {
-                canTest = false;
-            }
-            else if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A浼犳劅鍣�
-                && this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
-            {
-                //浼犳劅鍣ㄩ櫎浜哖ir閮芥病鏈夊畾浣嶅姛鑳�
-                canTest = false;
-            }
-            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
 
+            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
             string deviceMenu = string.Empty;
             if (canTest == true)
             {
@@ -1165,6 +1332,11 @@
             deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
             frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
             {
+                //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�,姝ゅ姛鑳芥棤鏁�
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    return;
+                }
                 //纭鍒犻櫎璇ヨ澶囧強鍔熻兘锛�
                 string msg = Language.StringByID(R.MyInternationalizationString.uDeleteDeviceMsg);
                 this.ShowMassage(ShowMsgType.Confirm, msg, () =>
@@ -1213,6 +1385,12 @@
             HdlGatewayReceiveLogic.Current.RemoveEvent("HandPullControl");
             //绉婚櫎鑾峰彇璁惧纭欢淇℃伅鐨勭洃鍚嚎绋�
             HdlDeviceHardInfoLogic.Current.RemoveDeviceHardInfoThread(listNewDevice[0]);
+
+            //璁惧鏂板叆缃�
+            if (UserCenterResourse.DicActionForm.ContainsKey("AddDeviceTypeListForm") == true)
+            {
+                this.LoadFormMethodByName("DeviceListMainForm", "RefreshDeviceRow", new object[] { listNewDevice[0].DeviceAddr });
+            }
 
             base.CloseFormBefore();
         }
@@ -1295,6 +1473,22 @@
             });
         }
 
+        /// <summary>
+        /// 妫�娴嬭兘鍚︽樉绀哄姛鑳借缃殑鑿滃崟
+        /// </summary>
+        /// <returns></returns>
+        private bool CheckCanShowFunctionSettionRow()
+        {
+            //鏂规偊鏂伴闈㈡澘娌℃湁鍔熻兘璁剧疆
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FourButtonScene
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_TwoButtonCurtain)
+            {
+                return false;
+            }
+            return true;
+        }
+
         #endregion
     }
 }

--
Gitblit v1.8.0