From 528c105b3aea0e6e00477365f16f57c1e3d7eb1c Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 24 十月 2019 15:31:28 +0800
Subject: [PATCH] 2019-10-24-3

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs |  205 +++++++++++++++++++++-----------------------------
 1 files changed, 86 insertions(+), 119 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index 974b763..15b929a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -36,6 +36,10 @@
         /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
         /// </summary>
         private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
+        /// <summary>
+        /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘
+        /// </summary>
+        private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
 
         #endregion
 
@@ -44,44 +48,44 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        /// <param name="i_deviceMac">璁惧Mac鍦板潃</param>
-        public void ShowForm(string i_deviceMac)
-        {
-            this.deviceMac = i_deviceMac;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// <param name="i_deviceMac">璁惧Mac鍦板潃</param>
+        public void ShowForm(string i_deviceMac)
+        {
+            this.deviceMac = i_deviceMac;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
             this.InitMiddleFrame();
 
             //鍒濆鍖栧彸涓婅鑿滃崟
-            this.InitTopRightMenu();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
+            this.InitTopRightMenu();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
         {
             //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            //鍒濆鍖栨甯�
-            this.InitFrameTable();
+            this.ClearBodyFrame();
+
+            //鍒濆鍖栨甯�
+            var tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1128);
+
             //鍒濆鍖栬澶囧洖璺浘鏍�
             this.InitDeviceEpointIcon();
 
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+            tableContr = null;
+
             //淇濆瓨
-            var btnFinish = new BottomClickButton();
-            //鍊熺敤Y杞村潗鏍�(璁╄繖涓尯鍩熶笉鑳界偣鍑昏彍鍗�)
-            var frameBack = new FrameLayout();
-            frameBack.Y = btnFinish.Yaxis;
-            frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis;
-            bodyFrameLayout.AddChidren(frameBack);
-
-            btnFinish.TextID = R.MyInternationalizationString.uSave;
-            bodyFrameLayout.AddChidren(btnFinish);
+            var btnFinish = new BottomClickButton();
+            btnFinish.TextID = R.MyInternationalizationString.uSave;
+            bodyFrameLayout.AddChidren(btnFinish);
             btnFinish.ButtonClickEvent += async (sender, e) =>
             {
                 //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
@@ -110,10 +114,38 @@
                         }
                     }
                 }
+                foreach (var epoint in dicDeviceFuncType.Keys)
+                {
+                    var device = Common.LocalDevice.Current.GetDevice(deviceMac, 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";
+                    }
+                    device.ReSave();
+                }
                 this.CloseProgressBar();
                 //鍏抽棴鑷韩
                 this.CloseForm();
-            };
+            };
         }
 
         /// <summary>
@@ -158,54 +190,28 @@
             };
 
             //鎵�灞炲尯鍩�
-            List<string> listRoomName = Common.Room.CurrentRoom.GetRoomListNameByDevice(nowSelectDevice);
-            caption = Language.StringByID(R.MyInternationalizationString.uBelongArea);
-            nameValue = Common.Room.CurrentRoom.GetRoomName(listRoomName);
-            var btnBeloneArea = new FrameCaptionViewControl(caption, nameValue, listview.rowSpace / 2);
-            listview.AddChidren(btnBeloneArea);
-            btnBeloneArea.InitControl();
+            var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+            listview.AddChidren(rowBeloneArea);
+            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), nowSelectDevice);
             //搴曠嚎
-            btnBeloneArea.AddBottomLine();
-            //鍙崇澶�
-            btnBeloneArea.AddRightIconControl();
-            btnBeloneArea.ButtonClickEvent += (sender, e) =>
+            rowBeloneArea.AddBottomLine();
+            rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
-                var form = new SelectRoomForm();
-                form.AddForm(listRoomName);
-                form.ActionSelectRoom = (list) =>
-                {
-                    //鍙樻洿鎴块棿
-                    Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, list);
-
-                    btnBeloneArea.Text = Common.Room.CurrentRoom.GetRoomName(list);
-                    listRoomName.Clear();
-                    listRoomName.AddRange(list);
-                };
+                //鍙樻洿鎴块棿
+                Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys);
             };
 
             //娣诲姞鍔熻兘绫诲瀷琛�
             this.AddFunctionTypeRow();
-
-            //鍊熺敤Y杞村潗鏍�
-            var btnTemp = new BottomClickButton();
-            var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount;
-            if (bodyFrameLayout.Height - btnTemp.Yaxis + realHeight > listview.Height)
-            {
-                //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
-                var frameTemp = new FrameLayout();
-                frameTemp.Height = bodyFrameLayout.Height - btnTemp.Yaxis + Application.GetRealHeight(115);
-                listview.AddChidren(frameTemp);
-            }
-            btnTemp = null;
         }
 
         #endregion
 
-        #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
+        #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
 
         /// <summary>
         /// 鍒濆鍖栧彸涓婅鑿滃崟
-        /// </summary>
+        /// </summary>
         private void InitTopRightMenu()
         {
             var btnIcon = new MostRightIconControl(69, 69);
@@ -221,7 +227,7 @@
 
         /// <summary>
         /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
-        /// </summary>
+        /// </summary>
         private void ShowTopRightMenu()
         {
             int menuCount = 1;
@@ -266,32 +272,31 @@
             {
                 //鍔熻兘绫诲瀷
                 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 (nowSelectDevice.DfunctionType == DeviceFunctionType.A鐏厜)
+                if (DfunctionType == DeviceFunctionType.A鐏厜)
                 {
                     strType = Language.StringByID(R.MyInternationalizationString.uLight);
                     nowSelectNo = 1;
                 }
-                else if (nowSelectDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
+                else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
                 {
                     strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
                     nowSelectNo = 0;
                 }
-                else if (nowSelectDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
+                else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
                 {
                     strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
                     nowSelectNo = 2;
                 }
-                else
-                {
-                    //榛樿鐏厜
-                    strType = Language.StringByID(R.MyInternationalizationString.uLight);
-                    nowSelectDevice.DfunctionType = DeviceFunctionType.A鐏厜;
-                    nowSelectDevice.ReSave();
-                }
+
                 var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
                 btnFunction.UseClickStatu = false;
                 listview.AddChidren(btnFunction);
@@ -304,7 +309,7 @@
                 {
                     btnFunction.UseClickStatu = true;
                     //鍙崇澶�
-                    btnFunction.AddRightIconControl();
+                    btnFunction.AddRightArrow();
                     btnFunction.ButtonClickEvent += (sender, e) =>
                     {
                         //鏄剧ず鍒楄〃
@@ -321,19 +326,19 @@
                         {
                             btnFunction.Text = listText[selectNo];
                             nowSelectNo = selectNo;
+                            //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
                             if (selectNo == 0)
                             {
-                                nowSelectDevice.DfunctionType = DeviceFunctionType.A寮�鍏�;
+                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A寮�鍏�;
                             }
                             else if (selectNo == 1)
                             {
-                                nowSelectDevice.DfunctionType = DeviceFunctionType.A鐏厜;
+                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鐏厜;
                             }
                             else
                             {
-                                nowSelectDevice.DfunctionType = DeviceFunctionType.A鎻掑骇;
+                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鎻掑骇;
                             }
-                            nowSelectDevice.ReSave();
                         };
                     };
                 }
@@ -497,44 +502,6 @@
                 listIcon.Insert(0, listTemp);
             }
             return listIcon;
-        }
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖栨甯僟________________________
-
-        /// <summary>
-        /// 鍒濆鍖栨甯�
-        /// </summary>
-        private void InitFrameTable()
-        {
-            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
-            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
-            //寮у害鐨勫渾
-            var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
-            btnRound.Y = Application.GetRealHeight(708);
-            btnRound.BackgroundColor = UserCenterColor.Current.White;
-            btnRound.Radius = (uint)halfRoundHeigth;
-            bodyFrameLayout.AddChidren(btnRound);
-            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�)
-            var detailBackFrame = new FrameLayout();
-            detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
-            detailBackFrame.Height = Application.GetRealHeight(1128);//楂樺害灏辨槸瑕佸畠瓒呰繃
-            detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(detailBackFrame);
-
-            //璁惧缂栬緫
-            var btnTile = new NormalViewControl(800, 60, true);
-            btnTile.X = ControlCommonResourse.XXLeft;
-            btnTile.TextSize = 15;
-            btnTile.TextColor = UserCenterColor.Current.TextColor2;
-            btnTile.TextID = R.MyInternationalizationString.uDeviceEditor;
-            detailBackFrame.AddChidren(btnTile);
-
-            this.listview = new VerticalListControl(12);
-            listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
-            listview.Height = Application.GetRealHeight(1028) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
-            detailBackFrame.AddChidren(listview);
         }
 
         #endregion

--
Gitblit v1.8.0