From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 27 八月 2021 13:21:21 +0800
Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs |  791 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 530 insertions(+), 261 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
index 1880dad..2b40f4b 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -1,6 +1,8 @@
-锘縰sing System;
+using System;
 using Shared;
 using System.Collections.Generic;
+using HDL_ON.Entity;
+
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
     public class TargetDeviceFunList : FrameLayout
@@ -17,10 +19,6 @@
         /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
         /// </summary>
         private string selectedState = "unknown";
-        /// <summary>
-        /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬�
-        /// </summary>
-        private string keyVlaue = "";
         public void Show(Entity.Function device, int index, bool edit)
         {
             #region 鐣岄潰甯冨眬
@@ -39,164 +37,438 @@
                 Height = Application.GetRealHeight(667 - 64),
             };
             this.AddChidren(fLayout);
-            #endregion
-            switch (device.functionType)
-            {
-                //寮�鍏崇伅鍏� light.Switch
-                case FunctionType.Dimmer:
-                    {
-                        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.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  淇濆瓨
             ///淇濆瓨View
             LogicView.SaveView saveView = new LogicView.SaveView();
             saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
             saveView.btnSave.TextID = StringId.completeLogic;
             this.AddChidren(saveView.FLayoutView());
+            #endregion
+            #region  缂栬緫璁惧鐘舵��
+            switch (device.spk)
+            {
+                //寮�鍏崇伅鍏� light.Switch
+                case SPK.LightDimming:
+                case SPK.LightRGB:
+                case SPK.LightRGBW:
+                case SPK.LightCCT:
+                    {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        ///浜害
+                        LogicView.FunTypeView brightnessView = new LogicView.FunTypeView();
+                        brightnessView.frameLayout.Y = lightSwitchView.frameLayout.Bottom;
+                        brightnessView.btnText.TextID = StringId.brightnesLogic;
+                        fLayout.AddChidren(brightnessView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            SwitchViewMethod(device, lightSwitchView.btnState, 2);
+                        };
+                        ///浜害鐐瑰嚮浜嬩欢
+                        brightnessView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text);
+
+                        };
+                        if (edit)
+                        {
+                            //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+                            GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null);
+                        }
+                        #endregion
+                    }
+                    break;
+                case SPK.LightSwitch:
+                    {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+                        lightSwitchView.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(lightSwitchView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            SwitchViewMethod(device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+                            GetEditState(device, index, lightSwitchView.btnState, null, null, null);
+                        }
+                        #endregion
+                    }
+                    break;
+                //绐楀笜
+                case SPK.CurtainSwitch:
+                case SPK.CurtainTrietex:
+                case SPK.CurtainRoller:
+                    {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView();
+                        curtainSwitchView.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(curtainSwitchView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        curtainSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            SwitchViewMethod(device, curtainSwitchView.btnState, 3);
+                        };
+                        if (edit)
+                        {
+                            //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+                            GetEditState(device, index, curtainSwitchView.btnState, null, null, null);
+                        }
+                        #endregion
+                    }
+                    break;
+                case SPK.AcStandard:
+                    {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView acSwitchVie = new LogicView.FunTypeView();
+                        acSwitchVie.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(acSwitchVie.FLayoutView());
+
+                        ///娓╁害
+                        LogicView.FunTypeView temperatureView = new LogicView.FunTypeView();
+                        temperatureView.frameLayout.Y = acSwitchVie.frameLayout.Bottom;
+                        temperatureView.btnText.TextID = StringId.temperatureLogic;
+                        fLayout.AddChidren(temperatureView.FLayoutView());
+
+                        ///妯″紡
+                        LogicView.FunTypeView acModehView = new LogicView.FunTypeView();
+                        acModehView.frameLayout.Y = temperatureView.frameLayout.Bottom;
+                        acModehView.btnText.TextID = StringId.modeLogic;
+                        fLayout.AddChidren(acModehView.FLayoutView());
+
+                        ///椋庨��
+                        LogicView.FunTypeView acSpeedView = new LogicView.FunTypeView();
+                        acSpeedView.frameLayout.Y = acModehView.frameLayout.Bottom;
+                        acSpeedView.btnText.TextID = StringId.speedLogic;
+                        fLayout.AddChidren(acSpeedView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        acSwitchVie.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            SwitchViewMethod(device, acSwitchVie.btnState, 2);
+                        };
+                        ///娓╁害鐐瑰嚮浜嬩欢
+                        temperatureView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            ///涔嬪墠鐨勭姸鎬佹枃鏈�
+                            string tempValue = temperatureView.btnState.Text;
+                            LogicView.TemperatureView tempView = new LogicView.TemperatureView();
+                            tempView.FLayoutView(this, tempValue, (stateStr) =>
+                            {
+                                //鐣岄潰鏄剧ず閫変腑鍊�
+                                temperatureView.btnState.Text = stateStr;
+                                //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                                string keyVlaue = "set_temp";
+                                selectedState = device.spk + "_" + keyVlaue;
+                                string set_temp_value = stateStr.Replace("鈩�", "");
+                                //鏁版嵁灏佽
+                                AddDictionary(keyVlaue, set_temp_value);
+                            });
+
+
+                        };
+                        ///妯″紡鐐瑰嚮浜嬩欢
+                        acModehView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            ///涔嬪墠鐨勭姸鎬佹枃鏈�
+                            string currText = acModehView.btnState.Text;
+                            //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                            string keyVlaue = "mode";
+                            selectedState = device.spk + "_" + keyVlaue;
+                            PublicInterface modeView = new PublicInterface();
+                            var modeListStr = modeView.GetViewList(keyVlaue);
+                            modeView.SingleSelectionShow(this, modeListStr, Language.StringByID(StringId.modeLogic), currText
+                               , (stateValue) =>
+                               {
+                                   //鐣岄潰鏄剧ず閫変腑鍊�
+                                   acModehView.btnState.Text = stateValue;
+                                   //鏁版嵁灏佽
+                                   AddDictionary(keyVlaue, modeView.GetModeValueString(stateValue, keyVlaue));
+                               });
+
+                        };
+                        ///椋庨�熺偣鍑讳簨浠�
+                        acSpeedView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+
+                            ///涔嬪墠鐨勭姸鎬佹枃鏈�
+                            string currText = acSpeedView.btnState.Text;
+                            //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                            string keyVlaue = "fan";
+                            selectedState = device.spk + "_" + keyVlaue;
+                            PublicInterface speedView = new PublicInterface();
+                            var speedListStr = speedView.GetViewList(keyVlaue);
+                            speedView.SingleSelectionShow(this, speedListStr, Language.StringByID(StringId.speedLogic), currText
+                               , (stateValue) =>
+                               {
+                                   //鐣岄潰鏄剧ず閫変腑鍊�
+                                   acSpeedView.btnState.Text = stateValue;
+                                   //鏁版嵁灏佽
+                                   AddDictionary(keyVlaue, speedView.GetModeValueString(stateValue, keyVlaue));
+
+                               });
+                        };
+                        if (edit)
+                        {
+                            //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+                            GetEditState(device, index, acSwitchVie.btnState, temperatureView.btnState, acModehView.btnState, acSpeedView.btnState);
+                        }
+
+                        #endregion
+                    }
+                    break;
+                case SPK.FloorHeatStandard:
+                    {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView floorHeatingSwitchVie = new LogicView.FunTypeView();
+                        floorHeatingSwitchVie.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(floorHeatingSwitchVie.FLayoutView());
+
+                        ///娓╁害
+                        LogicView.FunTypeView temperatureView = new LogicView.FunTypeView();
+                        temperatureView.frameLayout.Y = floorHeatingSwitchVie.frameLayout.Bottom;
+                        temperatureView.btnText.TextID = StringId.temperatureLogic;
+                        fLayout.AddChidren(temperatureView.FLayoutView());
+
+                        ///妯″紡
+                        LogicView.FunTypeView floorHeatingModehView = new LogicView.FunTypeView();
+                        floorHeatingModehView.frameLayout.Y = temperatureView.frameLayout.Bottom;
+                        floorHeatingModehView.btnText.TextID = StringId.modeLogic;
+                        fLayout.AddChidren(floorHeatingModehView.FLayoutView());
+
+
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        floorHeatingSwitchVie.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+
+                            SwitchViewMethod(device, floorHeatingSwitchVie.btnState, 2);
+                        };
+                        ///娓╁害鐐瑰嚮浜嬩欢
+                        temperatureView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            string tempValue = temperatureView.btnState.Text;
+                            LogicView.TemperatureView tempView = new LogicView.TemperatureView();
+                            tempView.FLayoutView(this, tempValue, (stateStr) =>
+                            {
+                                //鐣岄潰鏄剧ず閫変腑鍊�
+                                temperatureView.btnState.Text = stateStr;
+                                //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                                string keyVlaue = "set_temp";
+                                selectedState = device.spk + "_" + keyVlaue;
+                                string set_temp_value = stateStr.Replace("鈩�", "");
+                                //鏁版嵁灏佽
+                                AddDictionary(keyVlaue, set_temp_value);
+
+                            });
+
+                        };
+                        ///妯″紡鐐瑰嚮浜嬩欢
+                        floorHeatingModehView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+
+
+                            ///涔嬪墠鐨勭姸鎬佹枃鏈�
+                            string currText = floorHeatingModehView.btnState.Text;
+                            //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                            string keyVlaue = "mode";
+                            selectedState = device.spk + "_" + keyVlaue;
+                            PublicInterface modeView = new PublicInterface();
+                            var modeListStr = modeView.GetViewList("floorheatingmode");
+                            modeView.SingleSelectionShow(this, modeListStr, Language.StringByID(StringId.modeLogic), currText
+                               , (stateValue) =>
+                               {
+                                   //鐣岄潰鏄剧ず閫変腑鍊�
+                                   floorHeatingModehView.btnState.Text = stateValue;
+                                   //鏁版嵁灏佽
+                                   AddDictionary(keyVlaue, modeView.GetModeValueString(stateValue, "floorheatingmode"));
+                               });
+
+                        };
+                        if (edit)
+                        {
+                            //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+                            GetEditState(device, index, floorHeatingSwitchVie.btnState, temperatureView.btnState, floorHeatingModehView.btnState, null);
+                        }
+
+                        #endregion
+                    }
+                    break;
+                case SPK.AirFreshStandard:
+                    {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView AirFreshSwitchVie = new LogicView.FunTypeView();
+                        AirFreshSwitchVie.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(AirFreshSwitchVie.FLayoutView());
+
+                        ///椋庨��
+                        LogicView.FunTypeView AirFreshSpeedView = new LogicView.FunTypeView();
+                        AirFreshSpeedView.frameLayout.Y = AirFreshSwitchVie.frameLayout.Bottom;
+                        AirFreshSpeedView.btnText.TextID = StringId.speedLogic;
+                        fLayout.AddChidren(AirFreshSpeedView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        AirFreshSwitchVie.btnClick.MouseUpEventHandler += (sender, e) =>
+                          {
+
+                              SwitchViewMethod(device, AirFreshSwitchVie.btnState, 2);
+                          };
+                        ///椋庨�熺偣鍑讳簨浠�
+                        AirFreshSpeedView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            //瀹氫箟涓�涓复鏃跺垪琛�
+                            List<string> fanAttrList = new List<string>();
+                            //鍔ㄦ�佽鍙栨柊椋庨閫熷垪琛�
+                            var fanAttr = device.GetAttribute(FunctionAttributeKey.FanSpeed);
+                            foreach (var fanAttrValue in fanAttr.value)
+                            {
+                                switch (fanAttrValue)
+                                {
+                                    case "high":
+                                        {
+                                            fanAttrList.Add(Language.StringByID(StringId.HighWindSpeed));
+                                        }
+                                        break;
+                                    case "medium":
+                                        {
+                                            fanAttrList.Add(Language.StringByID(StringId.MiddleWindSpeed));
+                                        }
+                                        break;
+                                    case "low":
+                                        {
+
+                                            fanAttrList.Add(Language.StringByID(StringId.LowWindSpeed));
+                                        }
+                                        break;
+                                    case "auto":
+                                        {
+                                            fanAttrList.Add(Language.StringByID(StringId.Auto));
+                                            break;
+                                        }
+
+                                }
+                            }
+                            ///涔嬪墠鐨勭姸鎬佹枃鏈�
+                            string currText = AirFreshSpeedView.btnState.Text;
+                            //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                            string keyVlaue = "fan";
+                            selectedState = device.spk + "_" + keyVlaue;
+                            PublicInterface speedView = new PublicInterface();
+                            var speedListStr = fanAttrList;// speedView.GetViewList(keyVlaue);
+                            speedView.SingleSelectionShow(this, speedListStr, Language.StringByID(StringId.speedLogic), currText
+                               , (stateValue) =>
+                               {
+                                   //鐣岄潰鏄剧ず閫変腑鍊�
+                                   AirFreshSpeedView.btnState.Text = stateValue;
+                                   //鏁版嵁灏佽
+                                   AddDictionary(keyVlaue, speedView.GetModeValueString(stateValue, keyVlaue));
+
+                               });
+                        };
+                        if (edit)
+                        {
+                            //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+                            GetEditState(device, index, AirFreshSwitchVie.btnState, AirFreshSpeedView.btnState, null, null);
+                        }
+
+                        #endregion
+                    }
+                    break;
+
+            }
+            #endregion
+            #region  淇濆瓨鐐瑰嚮浜嬩欢
             saveView.btnClick.MouseUpEventHandler += (sen, e) =>
             {
-
-
                 if (selectedState != "unknown")
                 {
                     Output outputDevice = new Output();
                     outputDevice.target_type = "1";
                     outputDevice.sid = device.sid;
+                    switch (device.spk)
+                    {
+                        case SPK.LightDimming:
+                        case SPK.LightRGB:
+                        case SPK.LightRGBW:
+                        case SPK.LightCCT:
+                            {
+                                //璋冨厜鍋氫簡涓�涓壒娈婂鐞嗭紱
+                                if (dicSateteList.Count > 1)
+                                {
+                                    foreach (var dictionary in dicSateteList)
+                                    {
+                                        string keyValue = dictionary["key"];
+                                        if (keyValue == "on_off")
+                                        {
+                                            if (dictionary["value"] == "off")
+                                            {
+                                                //绉婚櫎鍒楄〃鎵�鏈夋暟鎹�
+                                                dicSateteList.Clear();
+                                                //閲嶆柊娣诲姞-鍏�-灞炴�ф暟鎹�
+                                                Dictionary<string, string> diction = new Dictionary<string, string>();
+                                                diction.Add("key", "on_off");
+                                                diction.Add("value", "off");
+                                                dicSateteList.Add(diction);
+                                                break;
+                                            }
+                                        }
+                                    }
+                                }
+                                break;
+                            }
+                        case SPK.AcStandard:
+                        case SPK.FloorHeatStandard:
+                        case SPK.AirFreshStandard:
+                            {
+                                //鍋氫簡涓�涓壒娈婂鐞嗭紱
+                                bool _bool = false;
+                                for (int i = 0; i < dicSateteList.Count; i++)
+                                {
+                                    var dic = dicSateteList[i];
+                                    if (dic.ContainsValue("on_off"))
+                                    {
+                                        //鍒ゆ柇鏄惁瀛樺湪
+                                        _bool = true;
+                                        break;
+                                    }
+                                }
+                                if (!_bool)
+                                {
+                                    //娌℃湁寮�鍏冲氨榛樿娣诲姞-寮�-灞炴��
+                                    Dictionary<string, string> diction = new Dictionary<string, string>();
+                                    diction.Add("key", "on_off");
+                                    diction.Add("value", "on");
+                                    dicSateteList.Add(diction);
+                                }
+                            }
+                            break;
+                    }
                     outputDevice.status = dicSateteList;
+
                     if (edit)
                     {
+                        //鏇存柊寤舵椂鏃堕棿
+                        outputDevice.delay = Logic.currlogic.output[index].delay;
                         //绉婚櫎鏃ф暟鎹�
                         Logic.currlogic.output.RemoveAt(index);
                         //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
@@ -218,75 +490,147 @@
                     this.RemoveFromParent();
                     return;
                 }
-                LogicMethod.RemoveAllView();
+                LogicMethod.CurrLogicMethod.RemoveAllView();
                 AddLogic addLogic = new AddLogic();
                 MainPage.BasePageView.AddChidren(addLogic);
                 addLogic.Show();
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
-
             #endregion
 
         }
         /// <summary>
-        /// 绉婚櫎鎺т欢
+        /// 寮�鍏�=鍔熻兘涓嬩竴绾х晫闈�
         /// </summary>
-        /// <param name="frame"></param>
-        private void RemView(FrameLayout frame)
+        /// <param name="device"></param>
+        /// <param name="button"></param>
+        /// <param name="len">鏄剧ず閫夋嫨View鏁伴噺</param>
+        private void SwitchViewMethod(Entity.Function device, Button button, int len)
         {
-            frame.RemoveFromParent();
+            #region 鐣岄潰
+            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
+            this.AddChidren(frame);
+            LogicView.SwitchView switchView = new LogicView.SwitchView();
+            switchView.FLayoutView(frame, len, button.Text, (strValue) =>
+            {
+                int id = 0;
+                switch (strValue)
+                {
+                    case "on":
+                        {
+                            id = StringId.onLogic;
+                        }
+                        break;
+                    case "off":
+                        {
+                            id = StringId.offLogic;
+                        }
+                        break;
+                    case "stop":
+                        {
+                            id = StringId.stop;
+                        }
+                        break;
+                }
+                //鐣岄潰鏄剧ず閫変腑鍊�
+                button.TextID = id;
+                selectedState = device.spk + "_" + strValue;
+                //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                string keyVlaue = "on_off";
+                //鏁版嵁灏佽
+                AddDictionary(keyVlaue, strValue);
+            });
+            #endregion
+        }
+        /// <summary>
+        /// 浜害/鐧惧垎姣�=鍔熻兘涓嬩竴绾х晫闈�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="button"></param>
+        private void BrightnessMethod(Entity.Function device, Button button, string titleName)
+        {
+            #region 鐣岄潰
+            //涔嬪墠鐨勭姸鎬佸��
+            string stateVlaue = button.Text;
+            LogicView.BrightnessView brightness = new LogicView.BrightnessView();
+            brightness.FLayoutView(this, titleName, stateVlaue, (brightnesValue) =>
+            {
+                //鐣岄潰鏄剧ず閫変腑鍊�
+                button.Text = brightnesValue + "%";
+                selectedState = device.spk + brightnesValue.ToString();
+                //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                string keyVlaue = "";
+                switch (device.spk)
+                {
+                    //寮�鍏崇伅鍏� light.Switch
+                    case SPK.LightDimming:
+                    case SPK.LightRGB:
+                    case SPK.LightRGBW:
+                    case SPK.LightCCT:
+                        {
+                            keyVlaue = "brightness";
+                        }
+                        break;
+                    case SPK.CurtainRoller:
+                    case SPK.CurtainTrietex:
+                        {
+                            keyVlaue = "percent";
+                        }
+                        break;
+                }
+                //鏁版嵁灏佽
+                AddDictionary(keyVlaue, brightnesValue);
+            });
+            #endregion
+
         }
         /// <summary>
         /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
         /// </summary>
         /// <param name="device">缂栬緫璁惧</param>
-        /// <param name="edit">缂栬緫鐘舵��</param>
         /// <param name="index">缂栬緫鏁版嵁鐨勭储寮�</param>
         /// <param name="button1">鏄剧ずBtn</param>
         /// <param name="button2">鏄剧ずBtn</param>
         /// <param name="button3">鏄剧ずBtn</param>
         /// <param name="button4">鏄剧ずBtn</param>
-        private void GetEditState(Entity.Function device, bool edit, int index, Button button1, Button button2, Button button3, Button button4)
+        private void GetEditState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4)
         {
             Output outputs = Logic.currlogic.output[index];
-            var dicList = outputs.status as List<Dictionary<string, string>>;
-
-            switch (device.functionType)
+            var dicList = outputs.status;
+            //娓呴櫎涔嬪墠鏃ф暟鎹�
+            dicSateteList.Clear();
+            if (dicList.Count != 0)
             {
-                //寮�鍏崇伅鍏�
-                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;
-
+                //鏈夋暟鎹噸鏂拌祴鍊�
+                dicSateteList = dicList;
             }
-
+            InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4);
         }
         /// <summary>
         /// 娣诲姞閫変腑鏁版嵁
         /// </summary>
-        /// <param name="dicList">瀛樺偍鏁版嵁鍒楄〃</param>
-        /// <param name="keyValue">璇嗗埆璁惧</param> 
-        /// <param name="dictionary">閫変腑鏁版嵁</param>
+        /// <param name="KeyValue">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param>
+        /// <param name="selectedValue">鐘舵�佸��</param>
+        private void AddDictionary(string KeyValue, string selectedValue)
+        {
+            //鏁版嵁灏佽
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", KeyValue);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", selectedValue);
+            AddDictionaryList(KeyValue, dic);
+        }
+        /// <summary>
+        /// 鏇存柊鏁版嵁鍒楄〃
+        /// </summary>
+        /// <param name="keyValue">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> 
+        /// <param name="dictionary">娣诲姞閫変腑鏁版嵁</param>
         /// <returns></returns>
-        private void AddDictionaryData(List<Dictionary<string, string>> dicList, string keyValue, Dictionary<string, string> dictionary)
+        private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary)
         {
             int indexValue = -1;
-            for (int i = 0; i < dicList.Count; i++)
+            for (int i = 0; i < dicSateteList.Count; i++)
             {
-                var dic = dicList[i];
+                var dic = dicSateteList[i];
                 if (dic.ContainsValue(keyValue))
                 {
                     //鍒ゆ柇鏄惁瀛樺湪
@@ -298,18 +642,17 @@
             if (indexValue != -1)
             {
                 //瀛樺湪绉婚櫎
-                dicList.RemoveAt(indexValue);
+                dicSateteList.RemoveAt(indexValue);
                 //閲嶆柊娣诲姞
-                dicList.Insert(indexValue, dictionary);
+                dicSateteList.Insert(indexValue, dictionary);
             }
             else
             {
                 //鏂版坊鍔�
-                dicList.Add(dictionary);
+                dicSateteList.Add(dictionary);
             }
 
         }
-      
         /// <summary>
         /// 娣诲姞鐩爣
         /// </summary>
@@ -337,80 +680,6 @@
             }
 
         }
-        /// <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>();
-            LogicMethod.dictionary(dic, "key", "on_off");
-            keyVlaue = "on_off";
-        
-            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