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/CommonBase/Controls/CompoundControls/BelongAreaControl.cs |  154 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 120 insertions(+), 34 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
index 9b4ae07..f667767 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
@@ -47,11 +47,33 @@
         /// <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 +83,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>
@@ -72,8 +94,8 @@
         /// <param name="i_listDevice">璁惧瀵硅薄</param>
         public void InitControl(string i_caption, List<ZigBee.Device.CommonDevice> i_listDevice)
         {
-            var room = Common.Room.CurrentRoom.GetRoomById(i_listDevice[0].DeviceRoomId);
-            this.InitControl(i_caption, room);
+            var room = Common.LocalDevice.Current.GeteRealDeviceRoom(i_listDevice[0]);
+            this.DoInitControl(i_caption, room);
         }
 
         /// <summary>
@@ -81,7 +103,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)
             {
@@ -115,7 +137,7 @@
             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);
@@ -123,7 +145,7 @@
             txtView.Gravity = Gravity.CenterVertical;
             txtView.TextColor = UserCenterColor.Current.TextGrayColor1;
             txtView.Text = i_RoomName;
-            this.AddChidren(txtView, ChidrenBindMode.BindEventOnly);
+            this.AddChidren(txtView, ChidrenBindMode.BindEvent);
 
             if (chidrenYaxis != 0)
             {
@@ -131,9 +153,15 @@
                 txtView.Y += chidrenYaxis;
             }
 
-            if (IsSharedRoom == true || this.listFloorKeys.Count == 0)
+            if (IsSharedRoom == true)
             {
-                //濡傛灉杩欎釜璁惧浣嶄簬鍒嗕韩鐨勬埧闂�,鎴栬�呮牴鏈氨娌℃湁鍒涘缓鎴块棿锛屽垯涓嶅厑璁告洿鏀�
+                //濡傛灉杩欎釜璁惧浣嶄簬鍒嗕韩鐨勬埧闂�
+                this.UseClickStatu = false;
+                return;
+            }
+            if (this.listFloorKeys.Count == 0 && listRoomKeys.Count == 0)
+            {
+                //鎴栬�呮牴鏈氨娌℃湁鍒涘缓鎴块棿锛屽垯涓嶅厑璁告洿鏀�
                 this.UseClickStatu = false;
                 return;
             }
@@ -152,25 +180,51 @@
         /// </summary>
         private void InitData()
         {
-            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
-            foreach (string fKeys in dicFloor.Keys)
+            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+            if (dicFloor.Count == 0)
             {
-                var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(fKeys, false);
-                if (listRoom.Count > 0)
+                //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤
+                var listKeys = new List<string>() { "" };
+                var listName = new List<string>() { Language.StringByID(R.MyInternationalizationString.uUndistributed) };
+                //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
+                var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false);
+                foreach (var myRoom in listRoom)
                 {
-                    //妤煎眰鍚嶅瓧鍜屼富閿敹闆�
-                    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);
+            }
+            else
+            {
+                //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤(鏈垎閰嶆斁鍦ㄦゼ灞傞偅涓彍鍗�)
+                var listKeys = new List<string>() { "" };
+                var listName = new List<string>() { "" };
+                listRoomName.Add(listName);
+                listRoomKeys.Add(listKeys);
+                this.listFloorKeys.Add("");
+                this.listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed));
+
+                foreach (string fKeys in dicFloor.Keys)
+                {
+                    var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false);
+                    if (listRoom.Count > 0)
                     {
-                        listName.Add(myRoom.Name);
-                        listKeys.Add(myRoom.Id);
+                        //妤煎眰鍚嶅瓧鍜屼富閿敹闆�
+                        this.listFloorKeys.Add(fKeys);
+                        this.listFloorName.Add(dicFloor[fKeys]);
+                        //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
+                        listName = new List<string>();
+                        listKeys = new List<string>();
+                        foreach (var myRoom in listRoom)
+                        {
+                            listName.Add(myRoom.Name);
+                            listKeys.Add(myRoom.Id);
+                        }
+                        listRoomName.Add(listName);
+                        listRoomKeys.Add(listKeys);
                     }
-                    listRoomName.Add(listName);
-                    listRoomKeys.Add(listKeys);
                 }
             }
         }
@@ -191,17 +245,49 @@
             int index2 = this.listRoomKeys[index1].IndexOf(RoomKey);
             if (index2 == -1) { index2 = 0; }
 
-            PickerView.ShowSecondary(this.listFloorName, this.listRoomName, (value1, value2) =>
+            if (this.listFloorKeys.Count == 0)
             {
-                //妤煎眰+鎴块棿
-                txtView.Text = this.listFloorName[value1] + " " + this.listRoomName[value1][value2];
-                FloorKey = this.listFloorKeys[value1];
-                RoomKey = this.listRoomKeys[value1][value2];
-                this.SelectRoomEvent?.Invoke(RoomKey);
+                //鏃犳ゼ灞傛ā寮�
+                PickerView.Show(this.listRoomName[0], (value) =>
+                {
+                    RoomKey = this.listRoomKeys[0][value];
+                    if (RoomKey != string.Empty)
+                    {
+                        //鎴块棿
+                        txtView.Text = this.listRoomName[0][value];
+                    }
+                    else
+                    {
+                        txtView.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
+                    this.SelectRoomEvent?.Invoke(RoomKey);
 
-            }, index1, index2, i_caption,
-            Language.StringByID(R.MyInternationalizationString.uFinish),
-            Language.StringByID(R.MyInternationalizationString.uCancel));
+                }, index2, i_caption,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            else
+            {
+                //鏈夋ゼ灞傛ā寮�
+                PickerView.ShowSecondary(this.listFloorName, this.listRoomName, (value1, value2) =>
+                {
+                    FloorKey = this.listFloorKeys[value1];
+                    RoomKey = this.listRoomKeys[value1][value2];
+                    if (RoomKey != string.Empty)
+                    {
+                        //妤煎眰+鎴块棿
+                        txtView.Text = this.listFloorName[value1] + " " + this.listRoomName[value1][value2];
+                    }
+                    else
+                    {
+                        txtView.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
+                    this.SelectRoomEvent?.Invoke(RoomKey);
+
+                }, index1, index2, i_caption,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
         }
 
         #endregion

--
Gitblit v1.8.0