From eb9cf55fc8568cb2d4b4bfac9deb617ce766a7a5 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 20 十二月 2019 14:58:37 +0800
Subject: [PATCH] 2019.12.30

---
 ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs |  271 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 172 insertions(+), 99 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs b/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
index 813d7c9..3ee57ba 100644
--- a/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
@@ -55,14 +55,34 @@
         /// <summary>
         /// 璁惧绫诲瀷RowLayout
         /// </summary>
-        private RowLayout typeRowLayout;
+        private FrameLayout typeRowLayout;
         /// <summary>
         /// 鐩稿悓鐨勮澶囧垪琛�
         /// </summary>
         public VerticalScrolViewLayout deviceListScrolView;
+        /// <summary>
+        /// dList
+        /// </summary>
+        private List<DeviceUI> devList;
+        /// <summary>
+        /// sceneList
+        /// </summary>
+        private List<SceneUI> sceneList;
+
+        /// <summary>
+        /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛�
+        /// </summary>
+        private Dictionary<int ,List<DeviceUI>> typeDeviceDic;
+        /// <summary>
+        /// 璁惧绫诲瀷鐨勫浘id
+        /// </summary>
+        private Dictionary<int, DeviceConcreteType> typeIdDic;
 
         #endregion
 
+        /// <summary>
+        /// UnallocatedRoom
+        /// </summary>
         public UnallocatedRoom()
         {
             BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
@@ -73,11 +93,50 @@
         /// </summary>
         public void Show()
         {
+            InitData();
             AddTop();
-
             AddBodyView();
+            
         }
 
+        /// <summary>
+        /// InitData
+        /// </summary>
+        private void InitData()
+        {
+            typeDeviceDic = new Dictionary<int, List<DeviceUI>> { };
+            typeIdDic = new Dictionary<int, DeviceConcreteType> { };
+
+            RefreshData();
+        }
+
+        /// <summary>
+        /// RefreshData
+        /// </summary>
+        private void RefreshData()
+        {
+            devList = Shared.Common.Room.CurrentRoom.GetUnalloctedDeviceUIs();
+            sceneList = Shared.Common.Room.CurrentRoom.GetUnalloctedScenes();
+            var sameDevList = new List<DeviceUI> { };
+            typeDeviceDic.Clear();
+            typeIdDic.Clear();
+            foreach (var device in devList)
+            {
+                var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device.CommonDevice });
+                sameDevList.Add(device);
+                typeDeviceDic[info.BeloneTextId] = sameDevList;
+                typeIdDic[info.BeloneTextId] = info.ConcreteType;
+            }
+        }
+
+        ///// <summary>
+        ///// RefreshView
+        ///// </summary>
+        //public void RefreshView()
+        //{
+        //    InitData();
+        //    RefreshBodyView();
+        //}
 
         #region Add____________________________________
 
@@ -97,7 +156,7 @@
 
             addBtn = new Button()
             {
-                X = Application.GetRealWidth(800),
+                X = Application.GetRealWidth(1080-150-80),
                 Width = Application.GetRealWidth(150),
                 Height = Application.GetRealHeight(80),
                 Gravity = Gravity.CenterVertical,
@@ -131,18 +190,20 @@
             };
             bodyFrameLayout.AddChidren(functionSceneBG);
 
-            //鍔熻兘
-            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68);
-            functionSceneBG.AddChidren(functionBtn);
-            functionBtn.Init();
-            functionBtn.SetTitle(R.MyInternationalizationString.Function);
-            functionBtn.IsSelected = true;
-
             //鍦烘櫙
-            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68);
+            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 43);
             functionSceneBG.AddChidren(sceneBtn);
             sceneBtn.Init();
             sceneBtn.SetTitle(R.MyInternationalizationString.Scence);
+            sceneBtn.IsSelected = true;
+
+            //鍔熻兘
+            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 43);
+            functionSceneBG.AddChidren(functionBtn);
+            functionBtn.Init();
+            functionBtn.SetTitle(R.MyInternationalizationString.Function);
+            functionBtn.IsSelected = false;
+            functionBtn.X = sceneBtn.Right;
 
             //閫夋嫨鍔熻兘鍒嗘爮
             functionBtn.NameBtn.MouseUpEventHandler += FunctionBtn_MouseUpEventHandler;
@@ -152,7 +213,7 @@
             //鍔熻兘鍜屽満鏅痓odyView
             functionSceneBodyView = new FrameLayout()
             {
-                Y= Application.GetRealHeight(187-58),
+                Y= Application.GetRealHeight(127),
                 Height = Application.GetRealHeight(1607),
                 BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
             };
@@ -244,68 +305,79 @@
         public void ShowFunction(bool selectAll)
         {
             SelectAll = selectAll;
-
-            var devList = Common.Room.AllRoomDeviceUIList;
-
-            //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
-            if (devList == null)
-            {
-                return;
-            }
-            if (devList.Count == 0)
+            if (typeIdDic.Count == 0)
             {
                 ShowNoFunctionTip();
             }
             else
             {
+                var functionTypeView1 = new FrameLayout
+                {
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y = Application.GetRealHeight(58),
+                    Height = Application.GetRealHeight(160),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                };
+                functionSceneBodyView.AddChidren(functionTypeView1);
+                functionTypeView1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
+
+                var functionTypeView2 = new FrameLayout
+                {
+                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y = Application.GetRealHeight(58+150),
+                    Height = Application.GetRealHeight(279-150),
+                    Width = Application.GetRealWidth(1028),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                };
+                functionSceneBodyView.AddChidren(functionTypeView2);
+                functionTypeView2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+
                 functionTypeScrowView = new HorizontalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                    Y=Application.GetRealHeight(58),
                     Height = Application.GetRealHeight(279),
-                    Width = Application.GetRealWidth(1028),
-                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                    Width = Application.GetRealWidth(1028)
                 };
                 functionSceneBodyView.AddChidren(functionTypeScrowView);
-
+                
                 deviceListScrolView = new VerticalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                    Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50),
+                    Y = Application.GetRealHeight(372),
                     Width = Application.GetRealWidth(1028),
-                    Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-
+                    Height = Application.GetRealHeight(1034),
+                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                 };
                 functionSceneBodyView.AddChidren(deviceListScrolView);
-
-                
+                deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
 
                 tempFunctionTypeBtn = new FunctionButton();
                 tempFunctionTypeBtn.Init("", "");
 
-                foreach (var deviceType in Common.Room.AllRoomDeviceTypeList)
+                foreach (var deviceType in typeIdDic)
                 {
-                    typeRowLayout = new RowLayout()
+                    typeRowLayout = new FrameLayout()
                     {
-                        Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        Tag = deviceType
+                        Width = Application.GetRealWidth(220),
                     };
                     functionTypeScrowView.AddChidren(typeRowLayout);
 
                     functionTypeIMG = new FunctionButton()
                     {
-                        Tag = deviceType
+                        Tag = deviceType.Key
                     };
-                    functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType));
-                    functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
+                    string imgPath=string.Empty;
+                    string imgSeletedPath=string.Empty;
+                    Common.LocalDevice.Current.GetDeviceBeloneIcon(deviceType.Value, ref imgPath ,ref imgSeletedPath);
+                    functionTypeIMG.Init(imgPath,imgSeletedPath);
+                    functionTypeIMG.SetTitle(deviceType.Key);
                     typeRowLayout.AddChidren(functionTypeIMG);
 
-
                     functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
-                    
 
-                    if (deviceType == devList[0].CommonDevice.Type)
+                    if (typeRowLayout.ChildrenCount == 1)
                     {
                         ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                     }
@@ -329,20 +401,7 @@
 
             var sameTypeList = new List<DeviceUI> { };
             var selectedList = new List<DeviceUI> { };
-            foreach (var devieceUI in Common.Room.AllRoomDeviceUIList)
-            {
-                if (devieceUI == null || devieceUI.CommonDevice == null)
-                {
-                    continue;
-                }
-                if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString())
-                {
-                    if (!sameTypeList.Contains(devieceUI))
-                    {
-                        sameTypeList.Add(devieceUI);
-                    }
-                }
-            }
+            sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
 
             if (SelectAll)
             {
@@ -360,14 +419,13 @@
                 var deviceRow = new SelectFunctionView(0, 35);
                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                 deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                deviceRow.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
-                deviceRow.SetSelectStatu(SelectAll);
+                deviceRow.IsSelected = SelectAll;
                 deviceTypeRowLayout.AddChidren(deviceRow);
 
                 EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                 {
-                    deviceRow.SelectBtn.IsSelected = !deviceRow.SelectBtn.IsSelected;
-                    if (deviceRow.SelectBtn.IsSelected)
+                    deviceRow.IsSelected = !deviceRow.IsSelected;
+                    if (deviceRow.IsSelected)
                     {
                         if (!selectedList.Contains(deviceUI))
                         {
@@ -382,11 +440,16 @@
                         }
                     }
                 };
-                deviceRow.NameBtn.MouseUpEventHandler += eventHandler;
-                deviceRow.ImageBtn.MouseUpEventHandler += eventHandler;
-                deviceRow.MouseUpEventHandler+=eventHandler;
-                deviceRow.SelectBtn.MouseUpEventHandler += eventHandler;
+                deviceRow.ClickBtn.MouseUpEventHandler += eventHandler;
 
+                var addBackground = new Button
+                {
+                    Y = Application.GetRealHeight(1405),
+                    Width = Application.GetMinRealAverage(1080),
+                    Height = Application.GetMinRealAverage(202),
+                    UnSelectedImagePath = "Room/AddBackground.png"
+                };
+                functionSceneBodyView.AddChidren(addBackground);
                 var add = new Button
                 {
                     Y = Application.GetRealHeight(1428),
@@ -394,22 +457,25 @@
                     Height = Application.GetRealHeight(156),
                     BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                     TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    Radius = (uint)Application.GetRealHeight(17),
+                    Radius = (uint)Application.GetRealHeight(35),
                     TextID = R.MyInternationalizationString.AddTo,
-                    Gravity = Gravity.CenterHorizontal
+                    Gravity = Gravity.CenterHorizontal,
+                    TextSize=17
                 };
                 functionSceneBodyView.AddChidren(add);
                 add.MouseUpEventHandler += (sender, e) =>
                 {
                     var selectZone = new SelectZone();
-                    CommonPage.Instance.AddChidren(selectZone);
+                    AddChidren(selectZone);
                     selectZone.Init();
                     selectZone.ZoneAction = (r) =>
                     {
                         foreach (var d in selectedList)
                         {
-                            r.AddDevice(d.FileName);
+                            r.AddDevice(d.CommonDevice,true);
+                            deviceListScrolView.RemoveViewByTag(d);
                         }
+                        RefreshData();
                     };
                 };
             }
@@ -420,6 +486,7 @@
         /// </summary>
         private void ShowNoFunctionTip()
         {
+            return;
             var noFunction = new Button()
             {
                 Y = Application.GetRealHeight(320),
@@ -452,20 +519,12 @@
         /// </summary>
         public void ShowScene(bool selectAll)
         {
-            //鍒锋柊鍦烘櫙
-            //var reFreshResult=await Shared.Common.Room.RefreshSceneUIList();
-            Shared.Common.SceneRoomUI.GetAllSceneRoomUIList();
-            if (SceneRoomUI.AllSceneRoomUIList == null)
-            {
-                return;
-            }
-            var sceneList = SceneRoomUI.AllSceneRoomUIList;
-            List<SceneRoomUI> selectedList = new List<SceneRoomUI>();
+            List<SceneUI> selectedList = new List<SceneUI>();
             if(selectAll)
             {
                 selectedList.AddRange(sceneList);
             }
-            if (sceneList.Count == 0)
+            if (sceneList == null || sceneList.Count == 0)
             {
                 ShowNoSceneTip();
             }
@@ -473,31 +532,32 @@
             {
                 var sceneScrolView = new VerticalScrolViewLayout
                 {
-                    Y = Application.GetRealHeight(0)
+                    Y = Application.GetRealHeight(22),
+                    Height=Application.GetRealHeight(1405-22)
                 };
                 functionSceneBodyView.AddChidren(sceneScrolView);
-                foreach (var sceneRoomUI in sceneList)
+                foreach (var sceneUI in sceneList)
                 {
                     var sceneFL = new FrameLayout()
                     {
-                        Width=Application.GetRealWidth(CommonFormResouce.AppRealWidth),
-                        Height = Application.GetRealHeight(397+58),
+                        Width = Application.GetRealWidth(CommonFormResouce.AppRealWidth),
+                        Height = Application.GetRealHeight(397 + 58),
                         Gravity = Gravity.CenterHorizontal,
                         BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-                        Tag = sceneRoomUI
+                        Tag = sceneUI,
+                        Radius = (uint)Application.GetRealHeight(17)
                     };
                     sceneScrolView.AddChidren(sceneFL);
 
-                    var sceneImg = new Button()
+                    var sceneImg = new ImageView()
                     {
-                        X=Application.GetRealWidth(179),
-                        Y=Application.GetRealHeight(58),
+                        X = Application.GetRealWidth(179),
+                        Y = Application.GetRealHeight(58),
                         Width = Application.GetRealWidth(844),
                         Height = Application.GetRealHeight(397),
-                        UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath,
+                        ImagePath = sceneUI.IconPath,
                         Radius = (uint)Application.GetRealHeight(17)
                     };
-                    sceneImg.UnSelectedImagePath = "Room/r0.png";
                     sceneFL.AddChidren(sceneImg);
 
                     var selectedBtn = new Button
@@ -508,7 +568,7 @@
                         Height = Application.GetMinRealAverage(60),
                         UnSelectedImagePath = "Room/ItemUnSelected.png",
                         SelectedImagePath = "Room/ItemSelected.png",
-                        IsSelected= selectAll
+                        IsSelected = selectAll
                     };
                     sceneFL.AddChidren(selectedBtn);
 
@@ -538,33 +598,42 @@
                         Width = Application.GetRealWidth(176),
                         Height = Application.GetRealHeight(200),
                         TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                        Text = sceneRoomUI.sceneUI.Name,
+                        Text = sceneUI.Name,
                         Gravity = Gravity.Center,
                         IsMoreLines = true
                     };
                     leftFL.AddChidren(sceneNameBtn);
 
-                    EventHandler<MouseEventArgs> eventHandler = (sender,e) =>
+                    EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                     {
                         selectedBtn.IsSelected = !selectedBtn.IsSelected;
-                        if(selectedBtn.IsSelected)
+                        if (selectedBtn.IsSelected)
                         {
-                            if(!selectedList.Contains(sceneRoomUI))
+                            if (!selectedList.Contains(sceneUI))
                             {
-                                selectedList.Add(sceneRoomUI);
+                                selectedList.Add(sceneUI);
                             }
                         }
                         else
                         {
-                            if (selectedList.Contains(sceneRoomUI))
+                            if (selectedList.Contains(sceneUI))
                             {
-                                selectedList.Remove(sceneRoomUI);
+                                selectedList.Remove(sceneUI);
                             }
                         }
                     };
                     selectedBtn.MouseUpEventHandler += eventHandler;
                     sceneImg.MouseUpEventHandler += eventHandler;
                 }
+
+                var addBackground = new Button
+                {
+                    Y = Application.GetRealHeight(1405),
+                    Width = Application.GetMinRealAverage(1080),
+                    Height = Application.GetMinRealAverage(202),
+                    UnSelectedImagePath = "Room/AddBackground.png"
+                };
+                functionSceneBodyView.AddChidren(addBackground);
 
                 var add = new Button
                 {
@@ -573,9 +642,10 @@
                     Height = Application.GetRealHeight(156),
                     BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
                     TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    Radius = (uint)Application.GetRealHeight(17),
+                    Radius = (uint)Application.GetRealHeight(35),
                     TextID = R.MyInternationalizationString.AddTo,
-                    Gravity=Gravity.CenterHorizontal
+                    Gravity = Gravity.CenterHorizontal,
+                    TextSize=17,
                 };
                 functionSceneBodyView.AddChidren(add);
                 add.MouseUpEventHandler += (sender, e) =>
@@ -585,10 +655,12 @@
                     selectZone.Init();
                     selectZone.ZoneAction = (r) =>
                     {
-                        foreach(var s in selectedList)
+                        foreach (var s in selectedList)
                         {
-                            r.AddScene(s.sceneUI);
+                            r.AddScene(s);
+                            sceneScrolView.RemoveViewByTag(s);
                         }
+                        RefreshData();
                     };
                 };
             }
@@ -599,6 +671,7 @@
         /// </summary>
         private void ShowNoSceneTip()
         {
+            return;
             var noFunction = new Button()
             {
                 Y = Application.GetRealHeight(320),

--
Gitblit v1.8.0