From ba9e028d73bab5b7a0f000d11b39460d2b57707a Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 19 三月 2021 18:07:10 +0800
Subject: [PATCH] 2021-3-19-2

---
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs |  401 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 242 insertions(+), 159 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index d2e068c..8f38cfb 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -12,206 +12,288 @@
             Tag = "PirMain";
         }
         /// <summary>
+        /// 鍥炶皟
+        /// </summary>
+        public Action BackAction;
+        /// <summary>
         /// 涓存椂鍌ㄥ瓨璁惧绫诲瀷鍒楄〃
         /// </summary>
         List<DeviceType> DeviceTypeList = new List<DeviceType>();
-        public void Show(Entity.Function function)
+        public void Show()
         {
-            #region 鐣岄潰甯冨眬
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
             PirDevice.View.TopView topView = new View.TopView();
             topView.topNameBtn.TextID = StringId.hongwaiyaokong;
+            topView.topIconBtn.Visible = true;
             this.AddChidren(topView.FLayoutView());
-            topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); };
+            topView.clickBackBtn.MouseUpEventHandler += (sender, e) => {
+                BackAction();
+                this.RemoveFromParent(); };
+
             FrameLayout middFLayout = new FrameLayout();
             middFLayout.Y = Application.GetRealHeight(64);
             middFLayout.Height = Application.GetRealHeight(667 - 64);
             this.AddChidren(middFLayout);
-            View.MainView mainView = new View.MainView();
-            mainView.Show(middFLayout);
-            FrameLayout deviceListFLayout = new FrameLayout();
-            deviceListFLayout.Y = mainView.pirDeviceFLayout.Bottom + Application.GetRealHeight(12);
-            deviceListFLayout.X = Application.GetRealWidth(16);
-            deviceListFLayout.Width = Application.GetRealWidth(343);
-            deviceListFLayout.Height = Application.GetRealHeight(328);
-            deviceListFLayout.BackgroundColor = CSS.CSS_Color.view;
-            deviceListFLayout.Radius = (uint)Application.GetRealHeight(12);
-            middFLayout.AddChidren(deviceListFLayout);
-            ///娣诲姞閬ユ帶鍣�
-            Button text3Btn = new Button
-            {
-                Y = Application.GetRealHeight(11),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealHeight(20),
-                TextSize = TextSize.text14,
-                TextColor = CSS.CSS_Color.textConfirmColor,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = StringId.tianjiayaokongqi,
-                IsBold = true,
-            };
-            deviceListFLayout.AddChidren(text3Btn);
-            ///绾㈠瀹濆悕绉�
-            Button deviceNameBtn = new Button
-            {
-                Y = Application.GetRealHeight(13),
-                X = Application.GetRealWidth(161),
-                Width = Application.GetRealWidth(150),
-                Height = Application.GetRealHeight(17),
-                TextSize = TextSize.text12,
-                TextColor = CSS.CSS_Color.textColor,
-                TextAlignment = TextAlignment.CenterRight,
-                Text = "mini鏅鸿兘閬ユ帶鍣�",
-            };
-            deviceListFLayout.AddChidren(deviceNameBtn);
 
-            //涓嬫媺鍥炬爣
-            var dropdownIconBtn = new Button
+            VerticalRefreshLayout vv = new VerticalRefreshLayout();
+            middFLayout.AddChidren(vv);
+            //鍔犲彿鍥炬爣
+            Button addDevice = new Button
             {
-                Y = Application.GetRealHeight(13),
-                X = Application.GetRealWidth(343 - 8 - 16),
-                Width = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(16),
-                UnSelectedImagePath = "PirIcon/dropdown.png",
+                Y = Application.GetRealHeight(480),
+                X = Application.GetRealWidth(293),
+                Width = Application.GetRealWidth(82),
+                Height = Application.GetRealWidth(84),
+                UnSelectedImagePath = "PirIcon/add.png",
             };
-            deviceListFLayout.AddChidren(dropdownIconBtn);
-            #endregion
 
-            if (Pir.pirDeviceList.Count != 0)
+            if (Pir.currPir.FunctioList.Count < 10)
             {
-
-                //if (function != null)
-                //{
-                //    Pir pir = new Pir();
-                //    pir.name = function.name;
-                //    pir.deviceId = function.deviceId;
-                //    pir.sid = function.sid;
-                //    Pir.currPir = pir;
-                //}
-                //else
-                //{
-                //    Pir.currPir = Pir.pirDeviceList[0];
-                //}
-                //榛樿绗竴涓孩澶栧疂
-                Pir.currPir = Pir.pirDeviceList[0];
-                int sum = 0;
-                for (int i = 0; i < Pir.pirDeviceList.Count; i++)
-                {
-                    //鏌ユ壘
-                    sum += Pir.pirDeviceList[i].FunctioList.Count;
-                }
-                deviceNameBtn.Text = Pir.pirDeviceList[0].name;
-                mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge);
-                mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge);
+                //10涓仴鎺у櫒灏变細闅愯棌娣诲姞鍥炬爣
+                middFLayout.AddChidren(addDevice);
             }
 
-            ///璁惧绠$悊鐨勭偣鍑讳簨浠�
-            mainView.clickBtn.MouseUpEventHandler += (sender, e) =>
+            vv.BeginHeaderRefreshingAction += () =>
+                {
+                    ////鍏抽棴鍒锋柊View锛�
+                    vv.EndHeaderRefreshing();
+
+                    Method.GetControlList(this, () =>
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            //鍒锋柊鐣岄潰
+                            UIView(vv);
+                        });
+                    }, Pir.currPir);
+
+                };
+            UIView(vv);
+
+            topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
             {
 
-                DeviceSet deviceSet = new DeviceSet();
-                MainPage.BasePageView.AddChidren(deviceSet);
-                deviceSet.Show(() =>
+                SetPir setPir = new SetPir();
+                MainPage.BasePageView.AddChidren(setPir);
+                setPir.Show(() =>
                 {
-                    if (Pir.currPir != null)
-                    {
-                        deviceNameBtn.Text = Pir.currPir.name;
-                        mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge);
-                    }
-                    int sum = 0;
-                    for (int i = 0; i < Pir.pirDeviceList.Count; i++)
-                    {
-                        sum += Pir.pirDeviceList[i].FunctioList.Count;
-                    }
-                    mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge);
-
-
+                    BackAction();
+                    ////鍒锋柊鐣岄潰
+                    UIView(vv);
                 });
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
-            ///绾㈠鍚嶇О鐨勭偣鍑讳簨浠�
-            deviceNameBtn.MouseUpEventHandler += (sender, e) =>
+            addDevice.MouseUpEventHandler += (sender, e) =>
             {
-                View.HeigthChangeView heigthChangeView = new View.HeigthChangeView();
-                heigthChangeView.Show(this, Pir.pirDeviceList, (pirJson) =>
+                FrameLayout frame = new FrameLayout
                 {
-                    deviceNameBtn.Text = pirJson.name;
-                    Pir.currPir = pirJson;
-                });
-            };
-
-            int line = 0;
-            for (int i = 1, j = 0; i <= 7; i++, j++)
-            {
-                var currpirdeviceFLayout = new FrameLayout
-                {
-                    Width = Application.GetRealWidth(80),
-                    Height = Application.GetRealWidth(80),
-                    X = Application.GetRealWidth(26 + (80 + 25) * j),
-                    Y = Application.GetRealHeight(52 + (80 + 12) * line),
-
+                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                 };
-                deviceListFLayout.AddChidren(currpirdeviceFLayout);
-                var deviceIconBtn = new Button
+                this.AddChidren(frame);
+                FrameLayout controlFl = new FrameLayout();
+                controlFl.Y = Application.GetRealHeight(319);
+                controlFl.X = Application.GetRealWidth(16);
+                controlFl.Width = Application.GetRealWidth(343);
+                controlFl.Height = Application.GetRealHeight(328);
+                controlFl.BackgroundColor = CSS.CSS_Color.view;
+                controlFl.Radius = (uint)Application.GetRealHeight(12);
+                frame.AddChidren(controlFl);
+                ///娣诲姞閬ユ帶鍣�
+                Button text3Btn = new Button
                 {
-                    Y = Application.GetRealHeight(8),
-                    X = Application.GetRealWidth(20),
-                    Width = Application.GetRealWidth(40),
-                    Height = Application.GetRealWidth(40),
-                    UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
-                };
-                currpirdeviceFLayout.AddChidren(deviceIconBtn);
-                var iconNameBtn = new Button
-                {
-                    Y = deviceIconBtn.Bottom + Application.GetRealHeight(8),
-                    Width = Application.GetRealWidth(80),
-                    Height = Application.GetRealHeight(17),
-                    TextSize = TextSize.text12,
-                    TextColor = CSS.CSS_Color.TextualColor,
+                    Y = Application.GetRealHeight(12),
+                    X = Application.GetRealWidth(16),
+                    Width = Application.GetRealWidth(343 - 16 * 2),
+                    Height = Application.GetRealHeight(20),
+                    TextSize = TextSize.text14,
+                    TextColor = CSS.CSS_Color.textConfirmColor,
                     TextAlignment = TextAlignment.Center,
+                    TextID = StringId.tianjiayaokongqi,
+                    IsBold = true,
                 };
-                currpirdeviceFLayout.AddChidren(iconNameBtn);
-                var clickBtn = new Button { Tag = i };
-                currpirdeviceFLayout.AddChidren(clickBtn);
-                if (i % 3 == 0)
-                {
-                    //婊′竴琛岄噸缃甹=0鍊�;
-                    j = -1;
-                    line += 1;
-                }
-                GetIconAndText(i, deviceIconBtn, iconNameBtn);
-                clickBtn.MouseUpEventHandler += (sender, e) =>
+                controlFl.AddChidren(text3Btn);
+                frame.MouseUpEventHandler += (sender1, e1) =>
                 {
 
-                    //1=绌鸿皟;2=鐢佃;3=椋庢墖;4=鏈洪《鐩�;5=DVD/EVD/VCD;6=鎶曞奖浠�;7=鑷畾涔�;
-                    int if_value = int.Parse(clickBtn.Tag.ToString());
-                    if (if_value == 7)
+                    frame.RemoveFromParent();
+                };
+                int line = 0;
+                for (int i = 1, j = 0; i <= 7; i++, j++)
+                {
+                    var currpirdeviceFLayout = new FrameLayout
                     {
-                        Method method = new Method();
-                        method.AddControl(this, (control) =>
-                        {
-                            AddButton addButton = new AddButton();
-                            MainPage.BasePageView.AddChidren(addButton);
-                            addButton.Show(control);
-                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                        });
+                        Width = Application.GetRealWidth(80),
+                        Height = Application.GetRealWidth(80),
+                        X = Application.GetRealWidth(26 + (80 + 25) * j),
+                        Y = Application.GetRealHeight(52 + (80 + 12) * line),
+
+                    };
+                    controlFl.AddChidren(currpirdeviceFLayout);
+                    var deviceIconBtn = new Button
+                    {
+                        Y = Application.GetRealHeight(8),
+                        X = Application.GetRealWidth(20),
+                        Width = Application.GetRealWidth(40),
+                        Height = Application.GetRealWidth(40),
+                        UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
+                    };
+                    currpirdeviceFLayout.AddChidren(deviceIconBtn);
+                    var iconNameBtn = new Button
+                    {
+                        Y = deviceIconBtn.Bottom + Application.GetRealHeight(8),
+                        Width = Application.GetRealWidth(80),
+                        Height = Application.GetRealHeight(17),
+                        TextSize = TextSize.text12,
+                        TextColor = CSS.CSS_Color.TextualColor,
+                        TextAlignment = TextAlignment.Center,
+                    };
+                    currpirdeviceFLayout.AddChidren(iconNameBtn);
+                    var clickBtn = new Button { Tag = i };
+                    currpirdeviceFLayout.AddChidren(clickBtn);
+                    if (i % 3 == 0)
+                    {
+                        //婊′竴琛岄噸缃甹=0鍊�;
+                        j = -1;
+                        line += 1;
                     }
-                    else
+                    GetIconAndText(i, deviceIconBtn, iconNameBtn);
+                    clickBtn.MouseUpEventHandler += (sender2, e2) =>
                     {
-                        if (DeviceTypeList.Count == 0)
+                       
+                        //1=绌鸿皟;2=鐢佃;3=椋庢墖;4=鏈洪《鐩�;5=DVD/EVD/VCD;6=鎶曞奖浠�;7=鑷畾涔�;
+                        int if_value = int.Parse(clickBtn.Tag.ToString());
+                        if (if_value == 7)
                         {
-                            GetDeviceTypeList(true, () =>
-                             {
-                                 DeviceTypeViewClick(if_value);
-
-                             });
+                            Method method = new Method();
+                            method.AddControl(this, (control) =>
+                            {
+                                //鎴愬姛鍚庣Щ闄�;
+                                frame.RemoveFromParent();
+                                AddButton addButton = new AddButton();
+                                MainPage.BasePageView.AddChidren(addButton);
+                                addButton.Show(control);
+                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            });
                         }
                         else
                         {
-                            DeviceTypeViewClick(if_value);
+                            //杩涙潵閮借绉婚櫎;
+                            frame.RemoveFromParent();
+                            if (DeviceTypeList.Count == 0)
+                            {
+                                GetDeviceTypeList(true, () =>
+                                 {
+                                     DeviceTypeViewClick(if_value);
+
+                                 });
+                            }
+                            else
+                            {
+                                DeviceTypeViewClick(if_value);
+                            }
                         }
-                    }
+                    };
+                }
+
+            };
+
+        }
+        /// <summary>
+        /// 鍔犺浇UI鐣岄潰
+        /// </summary>
+        /// <param name="vv">涓婁笅婊戞帶浠�</param>
+        private void UIView(VerticalRefreshLayout vv)
+        {
+            vv.RemoveAll();
+            #region 绾㈠瀹濆浘鏍� 鐗堟湰鍙� 鍚嶇О 鐘舵��
+            FrameLayout fLayout = new FrameLayout
+            {
+                Width = Application.GetRealWidth(375),
+                Height = Application.GetRealHeight(12 + 92 + (50 * Pir.currPir.FunctioList.Count)),
+            };
+            vv.AddChidren(fLayout);
+            View.PirView pirView = new View.PirView();
+            //绾㈠瀹濆悕绉�
+            pirView.deviceNameBtn.Text = Pir.currPir.name;
+            //绾㈠瀹濆綋鍓嶆湁澶氬皯涓仴鎺у櫒
+            pirView.geBtn.Text = Pir.currPir.FunctioList.Count.ToString();
+            //绾㈠瀹濇槸鍚﹀湪绾�-绂荤嚎
+            if (Pir.currPir.online)
+            {
+                pirView.stateIconBtn.IsSelected = true;
+                pirView.stateTextBtn.IsSelected = true;
+                pirView.stateTextBtn.TextID = StringId.zaixian;
+            }
+            else
+            {
+                pirView.stateIconBtn.IsSelected = false;
+                pirView.stateTextBtn.IsSelected = false;
+                pirView.stateTextBtn.TextID = StringId.lixian;
+            }
+            //鏍囪绾㈠瀹�
+            pirView.clickBtn.Tag = Pir.currPir;
+            //鍔犺浇鐣岄潰
+            pirView.Show(Pir.currPir.FunctioList.Count, fLayout);
+            //鏈�鍚庝竴涓悗闈㈠鍔犻棿闅旇儗鏅�
+            vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) });
+            #endregion
+
+            for (int j = 0; j < Pir.currPir.FunctioList.Count; j++)
+            {
+                var control = Pir.currPir.FunctioList[j];
+
+                View.ControlView controlView = new View.ControlView();
+                controlView.Show(pirView.devfLayout, j);
+                //閬ユ帶鍣ㄥ悕绉�
+                controlView.nameBtn.Text = control.name;
+                //閬ユ帶鍣ㄥ瓨鏀惧尯鍩�
+                controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(control);
+                //鏍囪閬ユ帶鍣�
+                controlView.delBtn.Tag = control;
+                //鍒犻櫎鐐瑰嚮浜嬩欢
+                controlView.delBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    var Function = controlView.delBtn.Tag as Entity.Function;
+                    string text = Language.StringByID(StringId.shanchushebei) + Function.name + "?";
+                    TipPopView tipPopView = new TipPopView();
+                    tipPopView.TipBox(StringId.tip, text, (dialog) =>
+                    {
+                        Method.ThreadSend(new Control { deviceId=control.deviceId}, (responsePackNew) =>
+                        {
+                            dialog.Close();
+                            var function = Pir.currPir.FunctioList.Find((c) => c.sid == Function.sid);
+                            if (function != null)
+                            {
+                                Pir.currPir.FunctioList.Remove(Function);
+                            }
+                            UIView(vv);
+
+                        }, "鍒犻櫎", "dialog", null, dialog);
+
+                    }, () => { }, false);
                 };
+                //view鐐瑰嚮浜嬩欢
+                controlView.clickBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    EditControl editControl = new EditControl();
+                    MainPage.BasePageView.AddChidren(editControl);
+                    editControl.Show(control,(device) =>
+                    {
+                        //鍥炶皟鏇存柊鍚嶅瓧/鍖哄煙
+                        controlView.nameBtn.Text = device.name;
+                        controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(device);
+
+                    });
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                };
+                if (j == Pir.currPir.FunctioList.Count - 1)
+                {
+                    //鏈�鍚庢敼鍙樹竴涓嚎鐨勯鑹�
+                    controlView.line1Btn.BackgroundColor = CSS.CSS_Color.viewTranslucence;
+                    controlView.funControlRow.LineColor = CSS.CSS_Color.viewTranslucence;
+                }
+
+
             }
         }
         /// <summary>
@@ -237,7 +319,6 @@
             });
 
         }
-
         /// <summary>
         /// 鑾峰彇璁惧绫诲瀷str
         /// </summary>
@@ -423,6 +504,8 @@
                 }
             }, id, "鍝佺墝鍒楄〃");
         }
+
+
     }
 
 }

--
Gitblit v1.8.0