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/Panel/PanelFangyueFunctionSettionForm.cs |  208 +++++++++------------------------------------------
 1 files changed, 37 insertions(+), 171 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs
index 82f7f96..bebb777 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs
@@ -33,13 +33,13 @@
         /// </summary>
         private CommonDevice deviceObj = null;
         /// <summary>
+        /// 璁惧鐨勭被鍨�
+        /// </summary>
+        private DeviceEnumInfo deviceEnum = null;
+        /// <summary>
         /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
         /// </summary>
         private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
-        /// <summary>
-        /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘
-        /// </summary>
-        private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
         /// <summary>
         /// 淇℃伅缂栬緫鎺т欢
         /// </summary>
@@ -53,9 +53,11 @@
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
         /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
-        public void ShowForm(CommonDevice i_device)
+        /// <param name="i_deviceEnum">璁惧鐨勭被鍨�</param>
+        public void ShowForm(CommonDevice i_device, DeviceEnumInfo i_deviceEnum)
         {
             this.deviceObj = i_device;
+            this.deviceEnum = i_deviceEnum;
 
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp));
@@ -90,12 +92,10 @@
             var btnFinish = new BottomClickButton();
             btnFinish.TextID = R.MyInternationalizationString.uSave;
             bodyFrameLayout.AddChidren(btnFinish);
-            btnFinish.ButtonClickEvent += async (sender, e) =>
+            btnFinish.ButtonClickEvent += (sender, e) =>
             {
                 //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
                 dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
-                //寮�鍚繘搴︽潯
-                this.ShowProgressBar();
                 foreach (var epoint in dicDeviceSaveName.Keys)
                 {
                     var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
@@ -109,48 +109,13 @@
                     if (oldName != newName)
                     {
                         //璁惧鍚嶇О淇敼
-                        var result = await Common.LocalDevice.Current.ReName(device, newName);
+                        var result = Common.LocalDevice.Current.ReName(device, newName);
                         if (result == false)
                         {
-                            //鍏抽棴
-                            this.CloseProgressBar();
                             return;
                         }
                     }
                 }
-                foreach (var epoint in dicDeviceFuncType.Keys)
-                {
-                    var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
-                    if (device == null)
-                    {
-                        continue;
-                    }
-                    //璁剧疆鍔熻兘绫诲瀷
-                    device.DfunctionType = dicDeviceFuncType[epoint];
-                    if (device.IsCustomizeImage == true)
-                    {
-                        continue;
-                    }
-                    //閲嶆柊璁剧疆鍥剧墖
-                    if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                    {
-                        device.IconPath = "Device/Switch.png";
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                    {
-                        device.IconPath = "Device/Socket1.png";
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
-                    {
-                        device.IconPath = "Device/Light.png";
-                    }
-                    else
-                    {
-                        device.IconPath = "Device/RelayEpoint.png";
-                    }
-                    device.ReSave();
-                }
-                this.CloseProgressBar();
                 //鍏抽棴鑷韩
                 this.CloseForm();
             };
@@ -175,7 +140,7 @@
             listview.AddChidren(btnDeviceName);
             btnDeviceName.InitControl();
             btnDeviceName.AddBottomLine();
-            btnDeviceName.txtInput.FinishInputEvent += async () =>
+            btnDeviceName.txtInput.FinishInputEvent += () =>
             {
                 string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
                 if (btnDeviceName.Text.Trim() == string.Empty)
@@ -186,7 +151,7 @@
                 if (oldName != btnDeviceName.Text.Trim())
                 {
                     //璁惧鍚嶇О淇敼
-                    var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
+                    var result = Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
                     if (result == false)
                     {
                         return;
@@ -281,95 +246,14 @@
         /// </summary>
         private void AddFunctionTypeRow()
         {
-            //濡傛灉鏄户鐢靛櫒鍜岃皟鍏夊櫒鐨勮瘽
-            if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
-                || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
+            //鑷畾涔夊姛鑳界被鍨嬫帶浠�
+            var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
+            if (rowFunction.CanShowRow == true)
             {
-                //鍔熻兘绫诲瀷
-                string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
-                var DfunctionType = nowSelectDevice.DfunctionType;
-                if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
-                {
-                    DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint];
-                }
-
-                //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
-                int nowSelectNo = 1;
-                string strType = string.Empty;
-                if (DfunctionType == DeviceFunctionType.A鐏厜)
-                {
-                    strType = Language.StringByID(R.MyInternationalizationString.uLight);
-                    nowSelectNo = 1;
-                }
-                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 = false;
-                listview.AddChidren(btnFunction);
-                btnFunction.InitControl();
+                listview.AddChidren(rowFunction);
+                rowFunction.InitControl();
                 //搴曠嚎
-                btnFunction.AddBottomLine();
-
-                //濡傛灉鏄户鐢靛櫒鎵嶈兘澶熸洿鏀硅繖涓姛鑳界被鍨�
-                if (nowSelectDevice.Type == DeviceType.OnOffOutput)
-                {
-                    btnFunction.UseClickStatu = true;
-                    //鍙崇澶�
-                    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.CancelCallEvent = true;//鍏佽鍙栨秷
-                        form.AddForm(title, listText, nowSelectNo);
-                        form.FinishSelectEvent += (selectNo) =>
-                        {
-                            if (selectNo == -1)
-                            {
-                                //閫夋嫨鍙栨秷
-                                btnFunction.Text = string.Empty;
-                            }
-                            else
-                            {
-                                btnFunction.Text = listText[selectNo];
-                            }
-                            nowSelectNo = selectNo;
-                            //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
-                            if (selectNo == 0)
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A寮�鍏�;
-                            }
-                            else if (selectNo == 1)
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鐏厜;
-                            }
-                            else if (selectNo == 2)
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鎻掑骇;
-                            }
-                            else
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鏈畾涔�;
-                            }
-                        };
-                    };
-                }
+                rowFunction.AddBottomLine();
             }
         }
 
@@ -387,9 +271,8 @@
             var listSort = new List<CommonDevice>();
             foreach (var device in listDevice)
             {
-                //濡傛灉鏄户鐢靛櫒鍜岃皟鍏夊櫒鐨勮瘽
-                if (device.Type == DeviceType.OnOffOutput || device.Type == DeviceType.DimmableLight
-                    || device.Type == DeviceType.ColorDimmableLight)
+                //濡傛灉鏄户鐢靛櫒
+                if (device.Type == DeviceType.OnOffOutput)
                 {
                     listSort.Add(device);
                     if (device.DeviceEpoint == deviceObj.DeviceEpoint)
@@ -425,21 +308,21 @@
 
             frameBorder.AddChidren(btnPic);
 
-            if (listSort.Count == 8)
+            if (deviceEnum.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueEight)
             {
-                //鍏寜閿潰鏉�
+                //鍥涘紑鍏帶闈㈡澘
                 btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueEightButtonTable.png";
                 this.InitEightButtonPanelIcon(frameBorder, listSort);
             }
-            else if (listSort.Count == 4)
+            else if (deviceEnum.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFour)
             {
-                //鍥涙寜閿潰鏉�
+                //鍙屽紑鍥涙帶闈㈡澘
                 btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueFourButtonTable.png";
                 this.InitFourButtonPanelIcon(frameBorder, listSort);
             }
             else
             {
-                //浜屾寜閿潰鏉�
+                //鍗曞紑鍙屾帶闈㈡澘
                 btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueTwoButtonTable.png";
                 this.InitTwoButtonPanelIcon(frameBorder, listSort);
             }
@@ -454,12 +337,13 @@
         private NormalViewControl InitDeviceButtonControl(FrameLayout frame, CommonDevice device)
         {
             var btnIcon = new NormalViewControl(this.GetPictrueRealSize(52), this.GetPictrueRealSize(52), false);
-            btnIcon.Text = "Button" + device.DeviceEpoint;
+            btnIcon.Text = "CHANNEL" + device.DeviceEpoint;
             btnIcon.TextAlignment = TextAlignment.Center;
             btnIcon.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnIcon.IsBold = true;
             if (frame is FrameLayoutStatuControl)
             {
-                ((FrameLayoutStatuControl)frame).AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
+                ((FrameLayoutStatuControl)frame).AddChidren(btnIcon, ChidrenBindMode.BindEvent);
                 ((FrameLayoutStatuControl)frame).ButtonClickEvent += (sender, e) =>
                 {
                     //鎸夐敭鐐瑰嚮
@@ -490,7 +374,7 @@
         #region 鈻� 鍒濆鍖栦簩鎸夐敭鍥炬爣___________________
 
         /// <summary>
-        /// 鍒濆鍖栦簩鎸夐敭闈㈡澘鐨勫浘鏍�
+        /// 鍒濆鍖栧崟寮�鍙屾帶闈㈡澘鐨勫浘鏍�
         /// </summary>
         /// <param name="frameBack">瀹瑰櫒</param>
         /// <param name="listDevice">璁惧鍒楄〃</param>
@@ -516,7 +400,7 @@
         #region 鈻� 鍒濆鍖栧洓鎸夐敭鍥炬爣___________________
 
         /// <summary>
-        /// 鍒濆鍖栧洓鎸夐敭闈㈡澘鐨勫浘鏍�
+        /// 鍒濆鍖栧弻寮�鍥涙帶閿潰鏉跨殑鍥炬爣
         /// </summary>
         /// <param name="frameBack">瀹瑰櫒</param>
         /// <param name="listDevice">璁惧鍒楄〃</param>
@@ -524,7 +408,7 @@
         {
             //鎸夐敭1
             var btnButton1 = this.InitDeviceButtonControl(frameBack, listDevice[0]);
-            btnButton1.TextSize = 12;
+            btnButton1.TextSize = 8;
             btnButton1.Height = this.GetPictrueRealSize(175);
             btnButton1.Width = this.GetPictrueRealSize(183);
             btnButton1.X = this.GetPictrueRealSize(34);
@@ -532,7 +416,7 @@
 
             //鎸夐敭2
             var btnButton2 = this.InitDeviceButtonControl(frameBack, listDevice[1]);
-            btnButton2.TextSize = 12;
+            btnButton2.TextSize = 8;
             btnButton2.Height = this.GetPictrueRealSize(175);
             btnButton2.Width = this.GetPictrueRealSize(183);
             btnButton2.X = btnButton1.Right;
@@ -540,7 +424,7 @@
 
             //鎸夐敭3
             var btnButton3 = this.InitDeviceButtonControl(frameBack, listDevice[2]);
-            btnButton3.TextSize = 12;
+            btnButton3.TextSize = 8;
             btnButton3.Height = this.GetPictrueRealSize(175);
             btnButton3.Width = this.GetPictrueRealSize(183);
             btnButton3.X = btnButton1.X;
@@ -548,7 +432,7 @@
 
             //鎸夐敭4
             var btnButton4 = this.InitDeviceButtonControl(frameBack, listDevice[3]);
-            btnButton4.TextSize = 12;
+            btnButton4.TextSize = 8;
             btnButton4.Height = this.GetPictrueRealSize(175);
             btnButton4.Width = this.GetPictrueRealSize(183);
             btnButton4.X = btnButton2.X;
@@ -560,7 +444,7 @@
         #region 鈻� 鍒濆鍖栧叓鎸夐敭鍥炬爣___________________
 
         /// <summary>
-        /// 鍒濆鍖栧叓鎸夐敭闈㈡澘鐨勫浘鏍�
+        /// 鍒濆鍖栧洓寮�鍏帶闈㈡澘鐨勫浘鏍�
         /// </summary>
         /// <param name="frameBack">瀹瑰櫒</param>
         /// <param name="listDevice">璁惧鍒楄〃</param>
@@ -583,24 +467,6 @@
             frame2.Width = frame1.Width;
             frameBack.AddChidren(frame2);
             this.InitEightButtonPanelIcon(frame2, listDevice[2], listDevice[3]);
-
-            //鎸夐敭5锝炴寜閿�6
-            var frame3 = new FrameLayout();
-            frame3.X = frame1.X;
-            frame3.Y = frame1.Bottom + this.GetPictrueRealSize(4);
-            frame3.Height = frame1.Height;
-            frame3.Width = frame1.Width;
-            frameBack.AddChidren(frame3);
-            this.InitEightButtonPanelIcon(frame3, listDevice[4], listDevice[5]);
-
-            //鎸夐敭7锝炴寜閿�8
-            var frame4 = new FrameLayout();
-            frame4.X = frame1.Right;
-            frame4.Y = frame1.Bottom + this.GetPictrueRealSize(4);
-            frame4.Height = frame1.Height;
-            frame4.Width = frame1.Width;
-            frameBack.AddChidren(frame4);
-            this.InitEightButtonPanelIcon(frame4, listDevice[6], listDevice[7]);
         }
 
         /// <summary>
@@ -618,7 +484,7 @@
             frameButton1.Width = this.GetPictrueRealSize(183);
             frameBack.AddChidren(frameButton1);
             var btnButton1 = this.InitDeviceButtonControl(frameButton1, device1);
-            btnButton1.TextSize = 10;
+            btnButton1.TextSize = 8;
             btnButton1.Height = this.GetPictrueRealSize(35);
             btnButton1.Width = this.GetPictrueRealSize(183);
             btnButton1.Y = this.GetPictrueRealSize(37);
@@ -631,7 +497,7 @@
             frameButton2.Y = frameButton1.Bottom;
             frameBack.AddChidren(frameButton2);
             var btnButton2 = this.InitDeviceButtonControl(frameButton2, device2);
-            btnButton2.TextSize = 10;
+            btnButton2.TextSize = 8;
             btnButton2.Height = btnButton1.Height;
             btnButton2.Width = btnButton1.Width;
             btnButton2.Y = this.GetPictrueRealSize(20);
@@ -665,7 +531,7 @@
             nowContr.TextColor = 0xfffb744a;
 
             nowSelectControl = nowContr;
-            nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Text.Replace("Button", string.Empty)));
+            nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Text.Replace("CHANNEL", string.Empty)));
 
             //閲嶆柊鍒濆鍖栬彍鍗曡
             this.InitMenuRow();

--
Gitblit v1.8.0