From 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 03 十二月 2020 15:35:42 +0800
Subject: [PATCH] 2020-12-03-1

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs |  394 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 267 insertions(+), 127 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs
index e6e5698..f4b2557 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs
@@ -13,6 +13,18 @@
         /// 琛ㄧず鏄�(鏉′欢/鐩爣)
         /// </summary>
         private string if_type;
+        /// <summary>
+        /// 瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱
+        /// </summary>
+        private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
+        /// <summary>
+        /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
+        /// </summary>
+        private string selectedState = "unknown";
+        /// <summary>
+        /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬�
+        /// </summary>
+        private string keyVlaue = "";
         public void Show(Entity.Function device, int index, bool edit, string str)
         {
             if_type = str;
@@ -33,131 +45,143 @@
             };
             this.AddChidren(fLayout);
             #endregion
-            //瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱
-            List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
-            //瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
-            string selectedState = "unknown";
-            //瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬�
-            string keyVlaue = "";
             switch (device.functionType)
             {
-                //寮�鍏崇伅鍏�
-                case FunctionType.Relay:
+                //寮�鍏崇伅鍏� light.Switch
+                case FunctionType.Dimmer:
                     {
-                        //for (int i = 0; i < device.function.Count; i++)
-                        //{
-                        //}
-                        LogicView.SelectTypeView relayView = new LogicView.SelectTypeView();
-                        relayView.btnIcon.Visible = false;
-                        relayView.btnState.Visible = true;
-                        relayView.btnText.TextSize = LogicView.TextSize.text16;
-                        relayView.btnText.Height = Application.GetRealHeight(22);
-                        relayView.btnText.TextID = StringId.switchLogic;
-                        relayView.btnText.X = Application.GetRealWidth(16);
-                        relayView.btnText.Width = Application.GetRealWidth(130);
-                        relayView.btnLine.X = Application.GetRealWidth(16);
-                        relayView.btnLine.Width = Application.GetRealWidth(343);
-                        relayView.btnState.Text = "";
-                        fLayout.AddChidren(relayView.FLayoutView());
-                        relayView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        lightSwitchView.btnState.Text = "";
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
                         {
-                            FrameLayout relayFunView = new FrameLayout
+                            FrameLayout frame = new FrameLayout
                             {
                                 BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                             };
-                            this.AddChidren(relayFunView);
-                            LogicView.SwitchView switchView = new LogicView.SwitchView();
-                            switchView.FLayoutView(relayFunView, 2);
-
-                            Button btnOn = new Button
-                            {
-                                TextAlignment = TextAlignment.Center,
-                                TextSize = LogicView.TextSize.text16,
-                                TextColor = CSS.CSS_Color.textCancelColor,
-                                TextID = StringId.onLogic,
-                                Height = Application.GetRealHeight(44),
-                                Width = Application.GetRealWidth(343),
-
-                            };
-                            switchView.frameLayout.AddChidren(btnOn);
-                            Button btnLine = new Button
-                            {
-                                Height = 1,
-                                BackgroundColor = CSS.CSS_Color.viewLine,
-                                Y = btnOn.Bottom,
-                            };
-                            switchView.frameLayout.AddChidren(btnLine);
-                            Button btnOff = new Button
-                            {
-                                Y = btnLine.Bottom,
-                                TextAlignment = TextAlignment.Center,
-                                TextSize = LogicView.TextSize.text16,
-                                TextColor = CSS.CSS_Color.textCancelColor,
-                                TextID = StringId.offLogic,
-                                Height = Application.GetRealHeight(44),
-                                Width = Application.GetRealWidth(343),
-                            };
-                            switchView.frameLayout.AddChidren(btnOff);
-
-                            Dictionary<string, string> dic = new Dictionary<string, string>();
-                            switch (if_type)
-                            {
-                                case LogicMethod.condition_if:
-                                    {
-                                        LogicMethod.dictionary(dic, "key", "on_off");
-                                        LogicMethod.dictionary(dic, "comparator", "=");
-                                        LogicMethod.dictionary(dic, "data_type", "string");
-                                        keyVlaue = "on_off";
-                                    }
-                                    break;
-                                case LogicMethod.target_if:
-                                    {
-                                        LogicMethod.dictionary(dic, "key", "on_off");
-                                        keyVlaue = "on_off";
-                                    }
-                                    break;
-                            }
-
-                            btnOn.MouseUpEventHandler += (sender2, e2) =>
-                            {
-                                LogicMethod.dictionary(dic, "value", "on");
-                                RemView(relayFunView);
-                                relayView.btnState.TextID = StringId.onLogic;
-                                selectedState = device.functionType + "_on";
-                                AddDictionaryData(dicSateteList, keyVlaue, dic);
-                            };
-                            btnOff.MouseUpEventHandler += (sender3, e3) =>
-                            {
-                                LogicMethod.dictionary(dic, "value", "off");
-                                RemView(relayFunView);
-                                relayView.btnState.TextID = StringId.offLogic;
-                                selectedState = device.functionType + "_off";
-                                AddDictionaryData(dicSateteList, keyVlaue, dic);
-                            };
-
-                            if (relayView.btnState.Text != "")
-                            {
-                                if (relayView.btnState.Text == btnOn.Text)
-                                {
-                                    btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
-                                }
-                                else
-                                {
-                                    btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
-                                }
-                            }
-
+                            this.AddChidren(frame);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState,2);
                         };
                         if (edit)
                         {
-                            GetEditState(device, edit, index, relayView.btnState, null, null, null);
+                            GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null);
                         }
 
                     }
                     break;
+                case FunctionType.RGB:
+                    {
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        lightSwitchView.btnState.Text = "";
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            FrameLayout frame = new FrameLayout
+                            {
+                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                            };
+                            this.AddChidren(frame);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null);
+                        }
 
+                    }
+                    break;
+                case FunctionType.RGBW:
+                    {
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        lightSwitchView.btnState.Text = "";
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            FrameLayout frame = new FrameLayout
+                            {
+                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                            };
+                            this.AddChidren(frame);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
+                case FunctionType.CCT:
+                    {
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        lightSwitchView.btnState.Text = "";
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            FrameLayout frame = new FrameLayout
+                            {
+                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                            };
+                            this.AddChidren(frame);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
+                case FunctionType.Relay:
+                    {
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        lightSwitchView.btnState.Text = "";
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            FrameLayout frame = new FrameLayout
+                            {
+                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                            };
+                            this.AddChidren(frame);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
+                //绐楀笜
+                case FunctionType.Curtain:
+                    {
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        lightSwitchView.btnState.Text = "";
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            FrameLayout frame = new FrameLayout
+                            {
+                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                            };
+                            this.AddChidren(frame);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
             }
-
 
 
             #region  淇濆瓨
@@ -270,25 +294,53 @@
                     }
                     break;
             }
-            switch (device.functionType)
-            {
-                //寮�鍏崇伅鍏�
-                case FunctionType.Relay:
-                    {
-                        foreach (var dic in dicList)
+            if (if_type== LogicMethod.condition_if) {
+                switch (device.functionType)
+                {
+                    //寮�鍏崇伅鍏�
+                    case FunctionType.Relay:
                         {
-                            string value = dic["value"];
-                            if (value == "on")
+                            foreach (var dic in dicList)
                             {
-                                button1.Text = Language.StringByID(StringId.onLogic);
-                            }
-                            else
-                            {
-                                button1.Text = Language.StringByID(StringId.offLogic);
+                                string value = dic["value"];
+                                if (value == "on")
+                                {
+                                    button1.Text = Language.StringByID(StringId.onLogic);
+                                }
+                                else
+                                {
+                                    button1.Text = Language.StringByID(StringId.offLogic);
+                                }
                             }
                         }
-                    }
-                    break;
+                        break;
+
+                }
+
+            }
+            else if (if_type == LogicMethod.target_if)
+            {
+                switch (device.functionType)
+                {
+                    //寮�鍏崇伅鍏�
+                    case FunctionType.Relay:
+                        {
+                            foreach (var dic in dicList)
+                            {
+                                string value = dic["value"];
+                                if (value == "on")
+                                {
+                                    button1.Text = Language.StringByID(StringId.onLogic);
+                                }
+                                else
+                                {
+                                    button1.Text = Language.StringByID(StringId.offLogic);
+                                }
+                            }
+                        }
+                        break;
+
+                }
 
             }
 
@@ -296,8 +348,8 @@
         /// <summary>
         /// 娣诲姞閫変腑鏁版嵁
         /// </summary>
-        /// <param name="dicList">鏁版嵁鍒楄〃</param>
-        /// <param name="keyValue">璇嗗埆璁惧</param>
+        /// <param name="dicList">瀛樺偍鏁版嵁鍒楄〃</param>
+        /// <param name="keyValue">璇嗗埆璁惧</param> 
         /// <param name="dictionary">閫変腑鏁版嵁</param>
         /// <returns></returns>
         private void AddDictionaryData(List<Dictionary<string, string>> dicList, string keyValue, Dictionary<string, string> dictionary)
@@ -306,7 +358,7 @@
             for (int i = 0; i < dicList.Count; i++)
             {
                 var dic = dicList[i];
-                if (dic.ContainsValue(keyValue))
+                if (dic.ContainsValue(keyValue)) 
                 {
                     //鍒ゆ柇鏄惁瀛樺湪
                     indexValue = i;
@@ -382,5 +434,93 @@
             }
 
         }
+        /// <summary>
+        /// 寮�鍏冲姛鑳藉睍寮�鐣岄潰
+        /// </summary>
+        /// <param name="frame"></param>
+        /// <param name="device"></param>
+        /// <param name="button"></param>
+        /// <param name="len"></param>
+        public void SwitchViewMethod(FrameLayout frame, Entity.Function device,Button button, int len) {
+
+            LogicView.SwitchView switchView = new LogicView.SwitchView();
+            switchView.FLayoutView(frame, len);
+
+            Button btnOn = new Button
+            {
+                TextAlignment = TextAlignment.Center,
+                TextSize = LogicView.TextSize.text16,
+                TextColor = CSS.CSS_Color.textCancelColor,
+                TextID = StringId.onLogic,
+                Height = Application.GetRealHeight(44),
+                Width = Application.GetRealWidth(343),
+
+            };
+            switchView.frameLayout.AddChidren(btnOn);
+            Button btnLine = new Button
+            {
+                Height = 1,
+                BackgroundColor = CSS.CSS_Color.viewLine,
+                Y = btnOn.Bottom,
+            };
+            switchView.frameLayout.AddChidren(btnLine);
+            Button btnOff = new Button
+            {
+                Y = btnLine.Bottom,
+                TextAlignment = TextAlignment.Center,
+                TextSize = LogicView.TextSize.text16,
+                TextColor = CSS.CSS_Color.textCancelColor,
+                TextID = StringId.offLogic,
+                Height = Application.GetRealHeight(44),
+                Width = Application.GetRealWidth(343),
+            };
+            switchView.frameLayout.AddChidren(btnOff);
+
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            switch (if_type)
+            {
+                case LogicMethod.condition_if:
+                    {
+                        LogicMethod.dictionary(dic, "key", "on_off");
+                        LogicMethod.dictionary(dic, "comparator", "=");
+                        LogicMethod.dictionary(dic, "data_type", "string");
+                        keyVlaue = "on_off";
+                    }
+                    break;
+                case LogicMethod.target_if:
+                    {
+                        LogicMethod.dictionary(dic, "key", "on_off");
+                        keyVlaue = "on_off";
+                    }
+                    break;
+            }
+            btnOn.MouseUpEventHandler += (sender2, e2) =>
+            {
+                LogicMethod.dictionary(dic, "value", "on");
+                RemView(frame);
+                button.TextID = StringId.onLogic;
+                selectedState = device.functionType + "_on";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+            };
+            btnOff.MouseUpEventHandler += (sender3, e3) =>
+            {
+                LogicMethod.dictionary(dic, "value", "off");
+                RemView(frame);
+                button.TextID = StringId.offLogic;
+                selectedState = device.functionType + "_off";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+            };
+            if (button.Text != "")
+            {
+                if (button.Text == btnOn.Text)
+                {
+                    btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+                else
+                {
+                    btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+            }
+        }
     }
 }

--
Gitblit v1.8.0