From c047239d340038cea872bae276e713ef866c0a34 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 02 三月 2021 13:22:21 +0800
Subject: [PATCH] Merge branch 'NewFilePath' into CJL

---
 HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs |  464 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 459 insertions(+), 5 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
index 96b2b0f..3e848e6 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
@@ -1,21 +1,475 @@
-锘縰sing System;
-using Shared;
+锘縰sing Shared;
+using HDL_ON.Stan;
 using HDL_ON.UI.CSS;
+using HDL_ON.Entity;
+using System.Collections.Generic;
+using System;
+using HDL_ON.DriverLayer;
 
 namespace HDL_ON.UI
 {
     /// <summary>
     /// 鏅捐。鏋剁晫闈�
     /// </summary>
-    public class ClothesHangerPage : FrameLayout
+    public class ClothesHangerPage : DeviceFunctionCardCommonForm
     {
-        public ClothesHangerPage()
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍥炬爣
+        /// </summary>
+        private Button btnIcon = null;
+        /// <summary>
+        /// 涓婂崌
+        /// </summary>
+        Button btnUp;
+        /// <summary>
+        /// 鍋滄
+        /// </summary>
+        Button btnStop;
+        /// <summary>
+        /// 涓嬮檷
+        /// </summary>
+        Button btnDown;
+        /// <summary>
+        /// 鐑樺共鎺т欢
+        /// </summary>
+        ClothesHangerControl hotDryView;
+        /// <summary>
+        /// 椋庡共鎺т欢
+        /// </summary>
+        ClothesHangerControl windDryView;
+        /// <summary>
+        /// 娑堟瘨鎺т欢
+        /// </summary>
+        ClothesHangerControl disinfectView;
+        /// <summary>
+        /// 鐓ф槑鎺т欢
+        /// </summary>
+        ClothesHangerControl lightingView;
+
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+        /// </summary>
+        public override void InitFrameWhiteContent()
         {
+            base.ShowColltionButton = false;
+            base.SetTitleText(Language.StringByID(StringId.Electric));
+
+            //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+            this.InitFrameWhiteContent1();
+
+            //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+            this.RefreshNowDeviceStatuMemory(this.device);
+            //鍒锋柊鐣岄潰鐘舵��
+            this.RefreshFormStatu();
+            //璇诲彇鐘舵��
+            new System.Threading.Thread(() =>
+            {
+                Control.Ins.SendReadCommand(device);
+            })
+            { IsBackground = true }.Start();
         }
 
-        public void LoadPage()
+        /// <summary>
+        /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+        /// </summary>
+        private void InitFrameWhiteContent1()
         {
+            btnIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(85),
+                Width = Application.GetRealWidth(195),
+                Height = Application.GetRealHeight(121),
+                UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBgIcon.png",
+                SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBgIconOn.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnIcon);
 
+            #region 涓婂崌 鍋滄 涓嬮檷
+            btnUp = new Button()
+            {
+                X = Application.GetRealWidth(42),
+                Y = Application.GetRealHeight(236),
+                Width = Application.GetRealWidth(28),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon.png",
+                SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIconOn.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnUp);
+
+            btnStop = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(236),
+                Width = Application.GetRealWidth(28),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerStopIcon.png",
+                SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerStopIconOn.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnStop);
+
+            btnDown = new Button()
+            {
+                X = Application.GetRealWidth(257),
+                Y = Application.GetRealHeight(236),
+                Width = Application.GetRealWidth(28),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon.png",
+                SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIconOn.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnDown);
+
+            #endregion
+
+            #region 鑿滃崟
+            var menu = new List<string>() {
+                FunctionAttributeKey.HotDry,
+                FunctionAttributeKey.WindDry,
+                FunctionAttributeKey.Disinfect,
+                FunctionAttributeKey.OnOff
+            };
+
+            int index = 0;
+            List<string> attrs = device.GetAttributes();
+
+            hotDryView = new ClothesHangerControl(
+                            "FunctionIcon/Electrical/ClothesHanger/ClothesHangerHotDryIcon.png",
+                            "FunctionIcon/Electrical/ClothesHanger/ClothesHangerHotDryIconOn.png",
+                            Language.StringByID(StringId.HotDry),
+                            device.GetAttrState(FunctionAttributeKey.HotDryTimeLeft));
+            hotDryView.X = 0;
+            hotDryView.Y = Application.GetRealHeight(304);
+            hotDryView.Width = Application.GetRealWidth(96);
+            hotDryView.Height = Application.GetRealHeight(74);//28 29 14 3
+            if (attrs.Contains(menu[0]))
+            {
+                FrameWhiteCentet1.AddChidren(hotDryView);
+
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+                    device.SetAttrState(FunctionAttributeKey.HotDry, "true");
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.HotDry, "true");
+                    Control.Ins.SendWriteCommand(device, d);
+                };
+                hotDryView.SetThouchEvent(eventHandler);
+
+                index++;
+            }
+
+            windDryView = new ClothesHangerControl(
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerWindDryIcon.png",
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerWindDryIconOn.png",
+                                Language.StringByID(StringId.WindDry),
+                                device.GetAttrState(FunctionAttributeKey.WindDryTimeLeft));
+            windDryView.Y = Application.GetRealHeight(304);
+            windDryView.Width = Application.GetRealWidth(96);
+            windDryView.Height = Application.GetRealHeight(74);
+            if (attrs.Contains(menu[1]))
+            {
+                if(index == 1)
+                {
+                    windDryView.Gravity = Gravity.CenterHorizontal;
+                }
+                FrameWhiteCentet1.AddChidren(windDryView);
+
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+                    device.SetAttrState(FunctionAttributeKey.WindDry, "true");
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.WindDry, "true");
+                    Control.Ins.SendWriteCommand(device, d);
+                };
+                windDryView.SetThouchEvent(eventHandler);
+
+                index++;
+            }
+
+            
+
+            disinfectView = new ClothesHangerControl(
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIcon.png",
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIconOn.png",
+                                Language.StringByID(StringId.Disinfect),
+                                device.GetAttrState(FunctionAttributeKey.DisinfectTimeLeft));
+            disinfectView.Y = Application.GetRealHeight(304);
+            disinfectView.Width = Application.GetRealWidth(96);
+            disinfectView.Height = Application.GetRealHeight(74);
+            if (attrs.Contains(menu[2]))
+            {
+                if(index == 1)
+                {
+                    disinfectView.Gravity = Gravity.CenterHorizontal;
+                }
+                else if (index == 2)
+                {
+                    disinfectView.X = Application.GetRealWidth(266 - 33);
+                }
+                FrameWhiteCentet1.AddChidren(disinfectView);
+
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+                    device.SetAttrState(FunctionAttributeKey.Disinfect, "true");
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Disinfect, "true");
+                    Control.Ins.SendWriteCommand(device, d);
+                };
+                disinfectView.SetThouchEvent(eventHandler);
+
+                index++;
+            }
+
+            lightingView = new ClothesHangerControl(
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerLightIcon.png",
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerLightIconOn.png",
+                                Language.StringByID(StringId.Lighting),
+                                "");
+            lightingView.Width = Application.GetRealWidth(96);
+            lightingView.Height = Application.GetRealHeight(74);
+            if (attrs.Contains(menu[3]))
+            {
+                if(index >2)
+                {
+                    lightingView.Y = Application.GetRealHeight(409);
+                }else
+                {
+                    lightingView.Y = Application.GetRealHeight(304);
+                    if (index == 1)
+                    {
+                        lightingView.Gravity = Gravity.CenterHorizontal;
+                    }
+                    else if (index == 2)
+                    {
+                        lightingView.X = Application.GetRealWidth(266 - 33);
+                    }
+                }
+                FrameWhiteCentet1.AddChidren(lightingView);
+
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+                    string onoff = lightingView.Lighting ? "off" : "on";
+                    device.SetAttrState(FunctionAttributeKey.OnOff, onoff);
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.OnOff, onoff);
+                    Control.Ins.SendWriteCommand(device, d);
+                };
+                lightingView.SetThouchEvent(eventHandler);
+
+                index++;
+            }
+
+            #endregion
         }
+        #endregion
+
+        #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+        /// <summary>
+        /// 璁惧鐘舵�佸弽棣�
+        /// </summary>
+        /// <param name="i_LocalDevice"></param>
+        public override void DeviceStatuPush(Function i_LocalDevice)
+        {
+            //涓嶆槸鍚屼竴涓笢瑗�
+            if (this.device.sid != i_LocalDevice.sid) { return; }
+
+            //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+            this.RefreshNowDeviceStatuMemory(i_LocalDevice);
+            //鍒锋柊鐣岄潰鐘舵��
+            this.RefreshFormStatu();
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+        /// <summary>
+        /// 鍒锋柊鐣岄潰鐘舵��
+        /// </summary>
+        private void RefreshFormStatu()
+        {
+            Application.RunOnMainThread(() => {
+                btnIcon.IsSelected = true;
+                #region 鐐逛寒鏂囨湰
+                var hotDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDry);
+                if (hotDryTemp != null)
+                {
+                    hotDryView.SetViewStatus(hotDryTemp.value == "true");
+                }
+                var windDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDry);
+                if (windDryTemp != null)
+                {
+                    windDryView.SetViewStatus(windDryTemp.value == "true");
+                }
+                var disinfectTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Disinfect);
+                if (disinfectTemp != null)
+                {
+                    disinfectView.SetViewStatus(disinfectTemp.value == "true");
+                }
+                var lightTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.OnOff);
+                if (lightTemp != null)
+                {
+                    lightingView.SetViewStatus(lightTemp.value == "on");
+                }
+                #endregion
+
+                #region 淇敼鏃堕棿
+                var hotDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDryTimeLeft);
+                if (hotDryTimeLeftTemp != null)
+                {
+                    hotDryView.ChangeTime(hotDryTimeLeftTemp.value);
+                }
+                var windDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDryTimeLeft);
+                if (windDryTimeLeftTemp != null)
+                {
+                    windDryView.ChangeTime(windDryTimeLeftTemp.value);
+                }
+                var disinfectTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.DisinfectTimeLeft);
+                if (disinfectTimeLeftTemp != null)
+                {
+                    disinfectView.ChangeTime(disinfectTimeLeftTemp.value);
+                }
+                #endregion
+
+
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+        /// </summary>
+        private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
+        {
+            foreach (var data in i_LocalDevice.status)
+            {
+                //寮�鍏�
+                //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; }
+            }
+        }
+
+        #endregion
+    }
+
+    public class ClothesHangerControl : FrameLayout
+    {
+        private Button btnIcon;
+        private Button btnTitle;
+        private Button btnTime;
+        /// <summary>
+        /// 鎺т欢鏄惁鐐逛寒
+        /// </summary>
+        public bool Lighting = false;
+
+        public ClothesHangerControl(string iconPath1, string iconPath2,string title,string time)
+        {
+            btnIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(28),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = iconPath1,
+                SelectedImagePath = iconPath2,
+            };
+            this.AddChidren(btnIcon);
+
+            btnTitle = new Button()
+            {
+                Gravity = Gravity.Center,
+                Text = title,
+                Height = Application.GetRealHeight(42),
+                TextColor = CSS_Color.TextualColor,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            };
+            this.AddChidren(btnTitle);
+
+            btnTime = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = btnTitle.Bottom,
+                Height = Application.GetRealHeight(32),
+                Text = time,
+                TextColor = 0x00000000,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+            };
+            this.AddChidren(btnTime);
+        }
+        /// <summary>
+        /// 淇敼鏄剧ず鏃堕棿
+        /// </summary>
+        /// <param name="newTime"></param>
+        public void ChangeTime (string newTime)
+        {
+            if(newTime == "0")
+            {
+                newTime = "";
+            }
+
+            int time = 0;
+            int.TryParse(newTime, out time);
+            time = time * 60;
+
+            if (countdownThread == null)
+            {
+                countdownThread = new System.Threading.Thread(() => {
+                    while(true)
+                    {
+                        if(time>1)
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnTime.Text = new TimeSpan(0, 0, time).ToString();
+                            });
+                            System.Threading.Thread.Sleep(1000);
+                            time--;
+                        }else
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnTime.Text = "";
+                            });
+                        }
+                    }
+                }) { IsBackground = true };
+                countdownThread.Start();
+            }
+        }
+
+        public void SetViewStatus(bool state)
+        {
+            btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = Lighting = state;
+        }
+
+        public bool GetViewState()
+        {
+            return Lighting;
+        }
+
+        /// <summary>
+        /// 璁剧疆鐐瑰嚮浜嬩欢
+        /// </summary>
+        public void SetThouchEvent(EventHandler<MouseEventArgs> eventHandler)
+        {
+            btnIcon.MouseUpEventHandler = eventHandler;
+            btnTime.MouseUpEventHandler = eventHandler;
+            btnTitle.MouseUpEventHandler = eventHandler;
+        }
+
+        /// <summary>
+        /// 鍊掕鏃剁嚎绋�
+        /// </summary>
+        System.Threading.Thread countdownThread;
     }
 }

--
Gitblit v1.8.0