From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs |  284 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 166 insertions(+), 118 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs b/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
index 3ee57ba..6916f59 100644
--- a/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/UnallocatedRoom.cs
@@ -15,15 +15,13 @@
         /// bodyFrameLayout
         /// </summary>
         private FrameLayout bodyFrameLayout;
-
-        private Button addBtn;
+        /// <summary>
+        /// top
+        /// </summary>
+        private TopFrameLayout top;
+        private Button selectAllBtn;
 
         private FrameLayout itemView;
-        /// <summary>
-        /// editStatus
-        /// </summary>
-        private bool SelectAll;
-
         /// <summary>
         /// low_High
         /// </summary>
@@ -93,10 +91,10 @@
         /// </summary>
         public void Show()
         {
+            RemoveAll();
             InitData();
             AddTop();
             AddBodyView();
-            
         }
 
         /// <summary>
@@ -117,14 +115,25 @@
         {
             devList = Shared.Common.Room.CurrentRoom.GetUnalloctedDeviceUIs();
             sceneList = Shared.Common.Room.CurrentRoom.GetUnalloctedScenes();
-            var sameDevList = new List<DeviceUI> { };
             typeDeviceDic.Clear();
             typeIdDic.Clear();
+            if (devList == null)
+            {
+                return;
+            }
             foreach (var device in devList)
             {
-                var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device.CommonDevice });
-                sameDevList.Add(device);
-                typeDeviceDic[info.BeloneTextId] = sameDevList;
+                var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device?.CommonDevice);
+                if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false)
+                {
+                    var sameDevList = new List<DeviceUI> { };
+                    sameDevList.Add(device);
+                    typeDeviceDic[info.BeloneTextId] = sameDevList;
+                }
+                else
+                {
+                    typeDeviceDic[info.BeloneTextId].Add(device);
+                }
                 typeIdDic[info.BeloneTextId] = info.ConcreteType;
             }
         }
@@ -145,7 +154,7 @@
         /// </summary>
         public void AddTop()
         {
-            var top = new TopFrameLayout();
+            top = new TopFrameLayout();
             AddChidren(top);
             top.InitTopview();
             top.SetTopTitle(R.MyInternationalizationString.Unallocated);
@@ -153,21 +162,6 @@
             {
                 RemoveFromParent();
             };
-
-            addBtn = new Button()
-            {
-                X = Application.GetRealWidth(1080-150-80),
-                Width = Application.GetRealWidth(150),
-                Height = Application.GetRealHeight(80),
-                Gravity = Gravity.CenterVertical,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextSize = CommonFormResouce.TopTitle_TextSize,
-                TextAlignment = TextAlignment.CenterRight,
-                TextID = R.MyInternationalizationString.AllSelect
-            };
-            top.topView.AddChidren(addBtn);
-
-            addBtn.MouseUpEventHandler += Edit_MouseUpEventHandler;
         }
 
         /// <summary>
@@ -247,35 +241,6 @@
             RefreshBodyView();
         }
 
-        /// <summary>
-        /// 缂栬緫
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="mouseEventArgs"></param>
-        private void Edit_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs)
-        {
-            SelectAll = !SelectAll;
-            if (SelectAll)
-            {
-                addBtn.TextID = R.MyInternationalizationString.Cancel;
-            }
-            else
-            {
-                addBtn.TextID = R.MyInternationalizationString.AllSelect;
-            }
-
-            if (functionBtn.IsSelected)
-            {
-                functionSceneBodyView.RemoveAll();
-                ShowFunction(SelectAll);
-            }
-            else if (sceneBtn.IsSelected)
-            {
-                functionSceneBodyView.RemoveAll();
-                ShowScene(SelectAll);
-            }
-        }
-
         #endregion
 
         #region 鈼� 鍒锋柊____________________________
@@ -285,14 +250,14 @@
         public void RefreshBodyView()
         {
             functionSceneBodyView.RemoveAll();
-            SelectAll = false;
+
             if (functionBtn.IsSelected)
             {
-                ShowFunction(SelectAll);
+                ShowFunction();
             }
             else if (sceneBtn.IsSelected)
             {
-                ShowScene(SelectAll);
+                ShowScene();
             }
         }
 
@@ -302,9 +267,8 @@
         /// <summary>
         /// 鍔熻兘
         /// </summary>
-        public void ShowFunction(bool selectAll)
+        public void ShowFunction()
         {
-            SelectAll = selectAll;
             if (typeIdDic.Count == 0)
             {
                 ShowNoFunctionTip();
@@ -341,7 +305,7 @@
                     Width = Application.GetRealWidth(1028)
                 };
                 functionSceneBodyView.AddChidren(functionTypeScrowView);
-                
+
                 deviceListScrolView = new VerticalScrolViewLayout
                 {
                     X = Application.GetRealWidth(CommonFormResouce.X_Left),
@@ -370,18 +334,19 @@
                     };
                     string imgPath=string.Empty;
                     string imgSeletedPath=string.Empty;
-                    Common.LocalDevice.Current.GetDeviceBeloneIcon(deviceType.Value, ref imgPath ,ref imgSeletedPath);
+                    Common.LocalDevice.Current.GetDeviceObjectIcon(deviceType.Value, ref imgPath ,ref imgSeletedPath);
                     functionTypeIMG.Init(imgPath,imgSeletedPath);
                     functionTypeIMG.SetTitle(deviceType.Key);
                     typeRowLayout.AddChidren(functionTypeIMG);
 
                     functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
 
-                    if (typeRowLayout.ChildrenCount == 1)
+                    if (functionTypeScrowView.ChildrenCount == 1)
                     {
                         ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                     }
                 }
+
             }
         }
 
@@ -392,7 +357,6 @@
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs)
         {
-            //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
             tempFunctionTypeBtn.IsSelected = false;
             tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton;
             ((typeSender as Button).Parent as FunctionButton).IsSelected = true;
@@ -403,10 +367,6 @@
             var selectedList = new List<DeviceUI> { };
             sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
 
-            if (SelectAll)
-            {
-                selectedList.AddRange(sameTypeList);
-            }
             foreach (var deviceUI in sameTypeList)
             {
                 var deviceTypeRowLayout = new FrameLayout()
@@ -418,8 +378,7 @@
 
                 var deviceRow = new SelectFunctionView(0, 35);
                 deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
-                deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                deviceRow.IsSelected = SelectAll;
+                deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI.CommonDevice));
                 deviceTypeRowLayout.AddChidren(deviceRow);
 
                 EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
@@ -441,44 +400,96 @@
                     }
                 };
                 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),
-                    Width = Application.GetRealWidth(1034),
-                    Height = Application.GetRealHeight(156),
-                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    Radius = (uint)Application.GetRealHeight(35),
-                    TextID = R.MyInternationalizationString.AddTo,
-                    Gravity = Gravity.CenterHorizontal,
-                    TextSize=17
-                };
-                functionSceneBodyView.AddChidren(add);
-                add.MouseUpEventHandler += (sender, e) =>
-                {
-                    var selectZone = new SelectZone();
-                    AddChidren(selectZone);
-                    selectZone.Init();
-                    selectZone.ZoneAction = (r) =>
-                    {
-                        foreach (var d in selectedList)
-                        {
-                            r.AddDevice(d.CommonDevice,true);
-                            deviceListScrolView.RemoveViewByTag(d);
-                        }
-                        RefreshData();
-                    };
-                };
             }
+
+            selectAllBtn?.RemoveFromParent();
+            selectAllBtn = new Button()
+            {
+                X = Application.GetRealWidth(1080 - 150 - 80),
+                Width = Application.GetRealWidth(150),
+                Height = Application.GetRealHeight(80),
+                Gravity = Gravity.CenterVertical,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = CommonFormResouce.TopTitle_TextSize,
+                TextAlignment = TextAlignment.CenterRight,
+                TextID = R.MyInternationalizationString.AllSelect
+            };
+            top.topView.AddChidren(selectAllBtn);
+            selectAllBtn.MouseUpEventHandler += (sender, e) =>
+             {
+                 try
+                 {
+                     (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                     for (int i = 0; i < deviceListScrolView.ChildrenCount; i++)
+                     {
+                         var frame = deviceListScrolView.GetChildren(i) as FrameLayout;
+                         (frame.GetChildren(0) as SelectFunctionView).IsSelected = (sender as Button).IsSelected;
+                     }
+                     if ((sender as Button).IsSelected)
+                     {
+                         (sender as Button).TextID = R.MyInternationalizationString.Cancel;
+                         selectedList.Clear();
+                         selectedList.AddRange(sameTypeList);
+                     }
+                     else
+                     {
+                         (sender as Button).TextID = R.MyInternationalizationString.AllSelect;
+                         selectedList.Clear();
+                     }
+                 }
+                 catch
+                 {
+
+                 }
+             };
+
+            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),
+                Width = Application.GetRealWidth(1034),
+                Height = Application.GetRealHeight(156),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+                TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                Radius = (uint)Application.GetRealHeight(35),
+                TextID = R.MyInternationalizationString.AddTo,
+                Gravity = Gravity.CenterHorizontal,
+                TextSize = 17
+            };
+            functionSceneBodyView.AddChidren(add);
+            add.MouseUpEventHandler += (sender, e) =>
+            {
+                var selectZone = new SelectZone();
+                selectZone.title = Language.StringByID(R.MyInternationalizationString.AddTo);
+                selectZone.Init();
+                selectZone.ZoneAction += (r) =>
+                {
+                    foreach (var d in selectedList)
+                    {
+                        r.AddDevice(d.CommonDevice, true);
+                        deviceListScrolView.RemoveViewByTag(d);
+                    }
+
+                    if (sameTypeList.Count == selectedList.Count)
+                    {
+                        RefreshData();
+                        RefreshBodyView();
+                    }
+                    else
+                    {
+                        RefreshData();
+                        sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())];
+                    }
+                };
+            };
         }
 
         /// <summary>
@@ -517,19 +528,15 @@
         /// <summary>
         /// 閫夋嫨鍦烘櫙--鎵�鏈夋埧闂寸殑鎵�鏈夊満鏅�
         /// </summary>
-        public void ShowScene(bool selectAll)
+        public void ShowScene()
         {
             List<SceneUI> selectedList = new List<SceneUI>();
-            if(selectAll)
-            {
-                selectedList.AddRange(sceneList);
-            }
             if (sceneList == null || sceneList.Count == 0)
             {
                 ShowNoSceneTip();
             }
             else
-            {
+            {
                 var sceneScrolView = new VerticalScrolViewLayout
                 {
                     Y = Application.GetRealHeight(22),
@@ -568,7 +575,6 @@
                         Height = Application.GetMinRealAverage(60),
                         UnSelectedImagePath = "Room/ItemUnSelected.png",
                         SelectedImagePath = "Room/ItemSelected.png",
-                        IsSelected = selectAll
                     };
                     sceneFL.AddChidren(selectedBtn);
 
@@ -626,6 +632,48 @@
                     sceneImg.MouseUpEventHandler += eventHandler;
                 }
 
+                selectAllBtn?.RemoveFromParent();
+                selectAllBtn = new Button()
+                {
+                    X = Application.GetRealWidth(1080 - 150 - 80),
+                    Width = Application.GetRealWidth(150),
+                    Height = Application.GetRealHeight(80),
+                    Gravity = Gravity.CenterVertical,
+                    TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                    SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                    TextSize = CommonFormResouce.TopTitle_TextSize,
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextID = R.MyInternationalizationString.AllSelect
+                };
+                top.topView.AddChidren(selectAllBtn);
+                selectAllBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    try
+                    {
+                        (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                        for (int i = 0; i < sceneScrolView.ChildrenCount; i++)
+                        {
+                            var frame = sceneScrolView.GetChildren(i) as FrameLayout;
+                            (frame.GetChildren(1) as Button).IsSelected = (sender as Button).IsSelected;
+                        }
+
+                        if ((sender as Button).IsSelected)
+                        {
+                            (sender as Button).TextID = R.MyInternationalizationString.Cancel;
+                            selectedList.AddRange(sceneList);
+                        }
+                        else
+                        {
+                            (sender as Button).TextID = R.MyInternationalizationString.AllSelect;
+                            selectedList.Clear();
+                        }
+                    }
+                    catch
+                    {
+
+                    }
+                };
+
                 var addBackground = new Button
                 {
                     Y = Application.GetRealHeight(1405),
@@ -651,9 +699,9 @@
                 add.MouseUpEventHandler += (sender, e) =>
                 {
                     var selectZone = new SelectZone();
-                    CommonPage.Instance.AddChidren(selectZone);
+                    selectZone.title = Language.StringByID(R.MyInternationalizationString.AddTo);
                     selectZone.Init();
-                    selectZone.ZoneAction = (r) =>
+                    selectZone.ZoneAction += (r) =>
                     {
                         foreach (var s in selectedList)
                         {

--
Gitblit v1.8.0