JLChen
2020-12-23 320d7cc8feb394d0ce3db2ec1d01593b554d990f
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -63,16 +63,11 @@
                    break;
                //窗帘
                case FunctionType.Curtain:
                    {
                        //3表示(开,关,暂停)功能
                        SwitchView(fLayout, device, index, edit, 3);
                    }
                    break;
                case FunctionType.MotorCurtain:
                case FunctionType.RollingShutter:
                    {
                        //3表示(开,关,暂停)功能
                        SwitchBrightnessView(fLayout, device, index, edit, 3);
                        SwitchView(fLayout, device, index, edit, 3);
                    }
                    break;
                case FunctionType.AC:
@@ -137,7 +132,6 @@
                            //加载数据界面的设置方法(列表互不联动)
                            view.mUIPickerView.setNPicker(temperatureList, null, null);
                            //默认初始选中状态
                            view.mUIPickerView.setCurrentItems(9, 0, 0);
                            //定义一个局部变量记录选中时间
@@ -166,10 +160,11 @@
                                string keyVlaue = "set_temp";
                                string set_temp_value = temperature.Replace("℃", "");
                                LogicMethod.dictionary(dic, "value", set_temp_value);
                                selectedState = device.functionType + "_set_temp";
                                AddDictionaryData(dicSateteList, keyVlaue, dic);
                                selectedState = device.functionType + "_set_temp";
                                RemView(frame);
                                temperatureView.btnState.Text = temperature;
                            };
                        };
@@ -418,6 +413,11 @@
                        ///模式点击事件
                        floorHeatingModehView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            FrameLayout frame = new FrameLayout
                            {
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(frame);
                            List<string> modeStr = new List<string> {
                                Language.StringByID(StringId.dayMode),
                                 Language.StringByID(StringId.nightMode),
@@ -425,65 +425,21 @@
                                   Language.StringByID(StringId.ordinaryMode),
                                Language.StringByID(StringId.timeMode),
                            };
                            FrameLayout frame = new FrameLayout
                            {
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(frame);
                            LogicView.DateView modeView = new LogicView.DateView();
                            modeView.btnTitle.TextID = StringId.modeLogic;
                            modeView.FLayoutView(frame, modeStr.Count);
                            modeView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
                            {
                                frame.RemoveFromParent();
                            };
                            ///定义一个Btn记录选中状态
                            Button checkBtn = new Button
                            {
                                Tag = "unknown",
                            };
                            for (int i = 0; i < modeStr.Count; i++)
                            {
                                LogicView.CheckView modeTypeView = new LogicView.CheckView();
                                modeTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                                modeView.frameLayout.AddChidren(modeTypeView.FLayoutView());
                                modeTypeView.btnText.Text = modeStr[i];
                                modeTypeView.btnClick.Tag = modeStr[i];//标记
                            ///之前的状态文本
                            string currText= floorHeatingModehView.btnState.Text;
                            PublicInterface modeView = new PublicInterface();
                            modeView.SingleSelectionShow(frame, modeStr, Language.StringByID(StringId.modeLogic), currText
                               , (stateValue) =>
                               {
                                   string keyVlaue = "mode";
                                   Dictionary<string, string> dic = new Dictionary<string, string>();
                                   LogicMethod.dictionary(dic, "key", "mode");
                                   LogicMethod.dictionary(dic, "value", GetModeValueString(stateValue, "FloorHeating"));
                                   AddDictionaryData(dicSateteList, keyVlaue, dic);
                                   floorHeatingModehView.btnState.Text = stateValue;
                                   selectedState = device.functionType + "_mode";
                               });
                                if (floorHeatingModehView.btnState.Text == modeStr[i])
                                {
                                    //显示之前的选中状态
                                    checkBtn.IsSelected = false;
                                    modeTypeView.btnCheckIcon.IsSelected = true;
                                    checkBtn = modeTypeView.btnCheckIcon;
                                    checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
                                }
                                //星期的点击事件
                                modeTypeView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                                {
                                    checkBtn.IsSelected = false;
                                    modeTypeView.btnCheckIcon.IsSelected = true;
                                    checkBtn = modeTypeView.btnCheckIcon;
                                    checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
                                };
                            }
                            modeView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
                            {
                                if (checkBtn.Tag.ToString() == "unknown")
                                {
                                    return;
                                }
                                Dictionary<string, string> dic = new Dictionary<string, string>();
                                LogicMethod.dictionary(dic, "key", "mode");
                                string keyVlaue = "mode";
                                LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), "FloorHeating"));
                                floorHeatingModehView.btnState.Text = checkBtn.Tag.ToString();
                                selectedState = device.functionType + "_mode";
                                AddDictionaryData(dicSateteList, keyVlaue, dic);
                                RemView(frame);
                            };
                        };
                        if (edit)
                        {
@@ -506,7 +462,69 @@
                    Output outputDevice = new Output();
                    outputDevice.target_type = "1";
                    outputDevice.sid = device.sid;
                    switch (device.functionType)
                    {
                        case FunctionType.Dimmer:
                        case FunctionType.RGB:
                        case FunctionType.RGBW:
                        case FunctionType.ColorTemperature:
                            {
                                //调光做了一个特殊处理;
                                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 FunctionType.AC:
                        case FunctionType.FloorHeating:
                            {
                                //(空调/地热)做了一个特殊处理;
                                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)
                    {
                        //移除旧数据
@@ -708,61 +726,31 @@
            };
            this.AddChidren(frame);
            LogicView.SwitchView switchView = new LogicView.SwitchView();
            switchView.FLayoutView(frame, len);
            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;
                Dictionary<string, string> dic = new Dictionary<string, string>();
                LogicMethod.dictionary(dic, "key", "on_off");
                string keyVlaue = "on_off";
                LogicMethod.dictionary(dic, "value", strValue);
                AddDictionaryData(dicSateteList, keyVlaue, dic);
                selectedState = device.functionType + "_" + strValue;
            });
            #endregion
            #region 点击事件
            Dictionary<string, string> dic = new Dictionary<string, string>();
            LogicMethod.dictionary(dic, "key", "on_off");
            string keyVlaue = "on_off";
            //开-点击事件
            switchView.btnOn.MouseUpEventHandler += (sender2, e2) =>
            {
                LogicMethod.dictionary(dic, "value", "on");
                button.TextID = StringId.onLogic;
                selectedState = device.functionType + "_on";
                AddDictionaryData(dicSateteList, keyVlaue, dic);
                RemView(frame);
            };
            //关-点击事件
            switchView.btnOff.MouseUpEventHandler += (sender3, e3) =>
            {
                LogicMethod.dictionary(dic, "value", "off");
                button.TextID = StringId.offLogic;
                selectedState = device.functionType + "_off";
                AddDictionaryData(dicSateteList, keyVlaue, dic);
                RemView(frame);
            };
            //暂停-点击事件
            switchView.btnStop.MouseUpEventHandler += (sender3, e3) =>
            {
                LogicMethod.dictionary(dic, "value", "stop");
                button.TextID = StringId.stop;
                selectedState = device.functionType + "_stop";
                AddDictionaryData(dicSateteList, keyVlaue, dic);
                RemView(frame);
            };
            ///显示之前状态
            if (button.Text != "")
            {
                if (button.Text == switchView.btnOn.Text)
                {
                    switchView.btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
                }
                else if (button.Text == switchView.btnOff.Text)
                {
                    switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
                }
                else if (button.Text == switchView.btnStop.Text)
                {
                    switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
                }
            }
            #endregion
        }
        /// <summary>
        /// 亮度/百分比=功能下一级界面
@@ -778,63 +766,36 @@
            };
            this.AddChidren(frame);
            LogicView.BrightnessView brightness = new LogicView.BrightnessView();
            brightness.btnTitle.Text = titleName;
            brightness.FLayoutView(frame);
            #endregion
            #region 点击事件
            int brightnesValue = 0;
            Dictionary<string, string> dic = new Dictionary<string, string>();
            LogicMethod.dictionary(dic, "key", "brightness");
            string keyVlaue = "brightness";
            //—点击事件
            brightness.btn_subtract_click.MouseUpEventHandler += (sender2, e2) =>
            brightness.FLayoutView(frame, titleName, button.Text, (brightnesValue) =>
            {
                if (brightnesValue > 0)
                button.Text = brightnesValue+"%";
                Dictionary<string, string> dic = new Dictionary<string, string>();
                string keyVlaue = "";
                switch (device.functionType)
                {
                    brightnesValue -= 1;
                    brightness.seekBarVol.Progress = brightnesValue;
                    //开关灯光 light.Switch
                    case FunctionType.Dimmer:
                    case FunctionType.RGB:
                    case FunctionType.RGBW:
                    case FunctionType.ColorTemperature:
                        {
                            LogicMethod.dictionary(dic, "key", "brightness");
                            keyVlaue = "brightness";
                        }
                        break;
                    case FunctionType.MotorCurtain:
                    case FunctionType.RollingShutter:
                        {
                            LogicMethod.dictionary(dic, "key", "percent");
                            keyVlaue = "percent";
                        }
                        break;
                }
            };
            //+点击事件
            brightness.btn_add_click.MouseUpEventHandler += (sende2, e2) =>
            {
                if (brightnesValue < 100)
                {
                    brightnesValue += 1;
                    brightness.seekBarVol.Progress = brightnesValue;
                }
            };
            //进度条滑动点击事件
            EventHandler<int> progressclick = (sender2, e2) =>
            {
                brightnesValue = brightness.seekBarVol.Progress;
            };
            brightness.seekBarVol.OnProgressChangedEvent += progressclick;
            brightness.seekBarVol.OnStopTrackingTouchEvent += progressclick;
            //确定点击事件
            brightness.btnConfirm.MouseUpEventHandler += (sende2, e2) =>
            {
                if (brightnesValue == 0)
                {
                    return;
                }
                LogicMethod.dictionary(dic, "value", brightnesValue.ToString());
                selectedState = device.functionType + brightnesValue.ToString();
                AddDictionaryData(dicSateteList, keyVlaue, dic);
                button.Text = brightnesValue.ToString();
                RemView(frame);
            };
            //显示之前状态
            if (button.Text != "")
            {
                brightnesValue = int.Parse(button.Text);
                brightness.seekBarVol.Progress = brightnesValue;
            }
                selectedState = device.functionType + brightnesValue.ToString();
            });
            #endregion
        }
        /// <summary>
@@ -909,7 +870,7 @@
                                case "brightness":
                                    {
                                        button2.Text = value;
                                        button2.Text = value+"%";
                                    }
                                    break;
                            }
@@ -918,6 +879,8 @@
                    }
                    break;
                case FunctionType.Curtain:
                case FunctionType.MotorCurtain:
                case FunctionType.RollingShutter:
                    {
                        foreach (var dic in dicList)
                        {
@@ -940,48 +903,6 @@
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.MotorCurtain:
                case FunctionType.RollingShutter:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        switch (value)
                                        {
                                            case "on":
                                                {
                                                    button1.Text = Language.StringByID(StringId.onLogic);
                                                }
                                                break;
                                            case "off":
                                                {
                                                    button1.Text = Language.StringByID(StringId.offLogic);
                                                }
                                                break;
                                            case "stop":
                                                {
                                                    button1.Text = Language.StringByID(StringId.stop);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "brightness":
                                    {
                                        button2.Text = value;
                                    }
                                    break;
                            }
                        }
                    }
                    break;
@@ -1155,7 +1076,6 @@
                    }
                    break;
            }
        }
        /// <summary>
        /// 添加处理选中数据