From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 18 九月 2020 13:58:19 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs |  191 +++++++++++++++++------------------------------
 1 files changed, 70 insertions(+), 121 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
index b0aca49..2ecd19d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
@@ -20,25 +20,9 @@
         /// </summary>
         public string RoomKey = string.Empty;
         /// <summary>
-        /// 褰撳墠閫夋嫨鐨勬ゼ灞備富閿�(娌″繀瑕佸叕寮�鍑哄幓)
+        /// 鏄剧ず鏂囨湰
         /// </summary>
-        private string FloorKey = string.Empty;
-        /// <summary>
-        /// 妤煎眰鍒楄〃鍚嶅瓧
-        /// </summary>
-        private List<string> listFloorName = new List<string>();
-        /// <summary>
-        /// 妤煎眰鍒楄〃涓婚敭
-        /// </summary>
-        private List<string> listFloorKeys = new List<string>();
-        /// <summary>
-        /// 鎴块棿鍚嶅瓧
-        /// </summary>
-        private List<List<string>> listRoomName = new List<List<string>>();
-        /// <summary>
-        /// 鎴块棿涓婚敭
-        /// </summary>
-        private List<List<string>> listRoomKeys = new List<List<string>>();
+        private NormalViewControl btnTextView = null;
 
         #endregion
 
@@ -47,11 +31,31 @@
         /// <summary>
         /// 鎵�灞炲尯鍩熺殑鎺т欢
         /// </summary>
-        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
         public BelongAreaControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
         {
-            //鍒濆鍖栨暟鎹�
-            this.InitData();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸鍦烘櫙)
+        /// </summary>
+        /// <param name="i_caption">鏍囬鏂囨湰</param>
+        /// <param name="i_roomId">鎴块棿ID</param>
+        public void InitControl(string i_caption, string i_roomId)
+        {
+            var room = HdlRoomLogic.Current.GetRoomById(i_roomId);
+            this.DoInitControl(i_caption, room);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸缃戝叧)
+        /// </summary>
+        /// <param name="i_caption">鏍囬鏂囨湰</param>
+        /// <param name="i_gateway">缃戝叧瀵硅薄</param>
+        public void InitControl(string i_caption, ZigBee.Device.ZbGateway i_gateway)
+        {
+            var room = HdlGatewayLogic.Current.GetRoomByGateway(i_gateway);
+            this.DoInitControl(i_caption, room);
         }
 
         /// <summary>
@@ -61,8 +65,8 @@
         /// <param name="i_device">璁惧瀵硅薄</param>
         public void InitControl(string i_caption, ZigBee.Device.CommonDevice i_device)
         {
-            var room = Common.Room.CurrentRoom.GetRoomByDevice(i_device);
-            this.InitControl(i_caption, room);
+            var room = HdlRoomLogic.Current.GetRoomByDevice(i_device);
+            this.DoInitControl(i_caption, room);
         }
 
         /// <summary>
@@ -73,7 +77,7 @@
         public void InitControl(string i_caption, List<ZigBee.Device.CommonDevice> i_listDevice)
         {
             var room = Common.LocalDevice.Current.GeteRealDeviceRoom(i_listDevice[0]);
-            this.InitControl(i_caption, room);
+            this.DoInitControl(i_caption, room);
         }
 
         /// <summary>
@@ -81,7 +85,7 @@
         /// </summary>
         /// <param name="i_caption"></param>
         /// <param name="i_Room"></param>
-        private void InitControl(string i_caption, Common.Room i_Room)
+        private void DoInitControl(string i_caption, Common.Room i_Room)
         {
             if (i_Room == null)
             {
@@ -92,7 +96,6 @@
             {
                 string roomName = i_Room.Name;
                 this.RoomKey = i_Room.Id;
-                this.FloorKey = i_Room.FloorId;
                 if (Common.Config.Instance.Home.FloorDics.ContainsKey(i_Room.FloorId) == true)
                 {
                     //妤煎眰+鎴块棿
@@ -115,20 +118,20 @@
             btnCaption.X = ControlCommonResourse.XXLeft;
             btnCaption.Gravity = Gravity.CenterVertical;
             btnCaption.Text = i_caption + "锛�";
-            this.AddChidren(btnCaption, ChidrenBindMode.BindEventOnly);
+            this.AddChidren(btnCaption, ChidrenBindMode.BindEvent);
 
             //鏄剧ず妗�
-            var txtView = new NormalViewControl(700, true);
-            txtView.X = Application.GetRealWidth(294);
-            txtView.Gravity = Gravity.CenterVertical;
-            txtView.TextColor = UserCenterColor.Current.TextGrayColor1;
-            txtView.Text = i_RoomName;
-            this.AddChidren(txtView, ChidrenBindMode.BindEventOnly);
+            this.btnTextView = new NormalViewControl(700, true);
+            btnTextView.X = Application.GetRealWidth(294);
+            btnTextView.Gravity = Gravity.CenterVertical;
+            btnTextView.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnTextView.Text = i_RoomName;
+            this.AddChidren(btnTextView, ChidrenBindMode.BindEvent);
 
             if (chidrenYaxis != 0)
             {
                 btnCaption.Y += chidrenYaxis;
-                txtView.Y += chidrenYaxis;
+                btnTextView.Y += chidrenYaxis;
             }
 
             if (IsSharedRoom == true)
@@ -137,67 +140,18 @@
                 this.UseClickStatu = false;
                 return;
             }
-            if (this.listFloorKeys.Count == 0 && listRoomKeys.Count == 0)
-            {
-                //鎴栬�呮牴鏈氨娌℃湁鍒涘缓鎴块棿锛屽垯涓嶅厑璁告洿鏀�
-                this.UseClickStatu = false;
-                return;
-            }
+
             //鍙崇澶�
             this.AddRightArrow();
 
-            this.ButtonClickEvent += (sender, e) =>
+            //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欓渶瑕佸鐞�
+            if (Common.Config.Instance.Home.IsShowTemplate == false)
             {
-                //鍖哄煙閫夋嫨
-                this.ShowSelectRoom(txtView, i_caption);
-            };
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栨暟鎹�
-        /// </summary>
-        private void InitData()
-        {
-            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
-            if (dicFloor.Count == 0)
-            {
-                var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(string.Empty, false);
-                if (listRoom.Count > 0)
+                this.ButtonClickEvent += (sender, e) =>
                 {
-                    //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
-                    var listName = new List<string>();
-                    var listKeys = new List<string>();
-                    foreach (var myRoom in listRoom)
-                    {
-                        listName.Add(myRoom.Name);
-                        listKeys.Add(myRoom.Id);
-                    }
-                    listRoomName.Add(listName);
-                    listRoomKeys.Add(listKeys);
-                }
-            }
-            else
-            {
-                foreach (string fKeys in dicFloor.Keys)
-                {
-                    var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(fKeys, false);
-                    if (listRoom.Count > 0)
-                    {
-                        //妤煎眰鍚嶅瓧鍜屼富閿敹闆�
-                        this.listFloorKeys.Add(fKeys);
-                        this.listFloorName.Add(dicFloor[fKeys]);
-                        //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
-                        var listName = new List<string>();
-                        var listKeys = new List<string>();
-                        foreach (var myRoom in listRoom)
-                        {
-                            listName.Add(myRoom.Name);
-                            listKeys.Add(myRoom.Id);
-                        }
-                        listRoomName.Add(listName);
-                        listRoomKeys.Add(listKeys);
-                    }
-                }
+                    //鍖哄煙閫夋嫨
+                    this.ShowSelectRoom(btnTextView, i_caption);
+                };
             }
         }
 
@@ -212,44 +166,39 @@
         /// <param name="i_caption"></param>
         private void ShowSelectRoom(NormalViewControl txtView, string i_caption)
         {
-            int index1 = this.listFloorKeys.IndexOf(FloorKey);
-            if (index1 == -1) { index1 = 0; }
-            int index2 = this.listRoomKeys[index1].IndexOf(RoomKey);
-            if (index2 == -1) { index2 = 0; }
-
-            if (this.listFloorKeys.Count == 0)
+            //鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛�
+            var result = HdlControlLogic.Current.ShowBottomListRoomView(this.RoomKey, i_caption, (selectId, selectName) =>
             {
-                //鏃犳ゼ灞傛ā寮�
-                PickerView.Show(this.listRoomName[0], (value) =>
-                {
-                    //妤煎眰+鎴块棿
-                    txtView.Text = this.listRoomName[0][value];
-                    RoomKey = this.listRoomKeys[0][value];
-                    this.SelectRoomEvent?.Invoke(RoomKey);
-
-                }, index2, i_caption,
-                Language.StringByID(R.MyInternationalizationString.uFinish),
-                Language.StringByID(R.MyInternationalizationString.uCancel));
-            }
-            else
+                this.RoomKey = selectId;
+                txtView.Text = selectName;
+                //璋冪敤鍥炶皟鍑芥暟
+                this.SelectRoomEvent?.Invoke(RoomKey);
+            });
+            if (result == false)
             {
-                //鏈夋ゼ灞傛ā寮�
-                PickerView.ShowSecondary(this.listFloorName, this.listRoomName, (value1, value2) =>
-                {
-                    //妤煎眰+鎴块棿
-                    txtView.Text = this.listFloorName[value1] + " " + this.listRoomName[value1][value2];
-                    FloorKey = this.listFloorKeys[value1];
-                    RoomKey = this.listRoomKeys[value1][value2];
-                    this.SelectRoomEvent?.Invoke(RoomKey);
-
-                }, index1, index2, i_caption,
-                Language.StringByID(R.MyInternationalizationString.uFinish),
-                Language.StringByID(R.MyInternationalizationString.uCancel));
+                //鎴栬�呮牴鏈氨娌℃湁鍒涘缓鎴块棿锛屽垯涓嶅厑璁告洿鏀�
+                this.UseClickStatu = false;
             }
         }
 
         #endregion
 
+        #region 鈻� 鍒锋柊鎺т欢___________________________
+
+        /// <summary>
+        /// 閲嶆柊鍒锋柊鎺т欢
+        /// </summary>
+        /// <param name="i_RoomId">鎸囧畾浠ュ摢涓埧闂碔D鍒锋柊鎺т欢</param>
+        public void RefreshControl(string i_RoomId)
+        {
+            this.RoomKey = i_RoomId;
+
+            var room = HdlRoomLogic.Current.GetRoomById(i_RoomId);
+            this.btnTextView.Text = HdlRoomLogic.Current.GetRoomName(room);
+        }
+
+        #endregion
+
         #region 鈻� 鎺т欢鎽ф瘉___________________________
 
         /// <summary>

--
Gitblit v1.8.0