using System; using Shared; using System.Collections.Generic; namespace HDL_ON.UI.UI2.Intelligence.Automation { public class InpOrOutLogicMethod { /// /// 输入条件处理方法 /// /// 当前界面 /// 上下滑动控件 public static void InputCondition(FrameLayout thisView, VerticalScrolViewLayout viewLayout) { for (int i = 0; i < Logic.currlogic.input.Count; i++) { Input inputCondition = Logic.currlogic.input[i]; ///各种条件的View LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView(); inputView.FLayoutView(viewLayout); ///记录条件类型 inputView.btnClick.Name = inputCondition.condition_type; ///记录条件索引 inputView.btnClick.Tag = i; ///条件状态数组 List> dicList = inputCondition.condition as List>; //显示条件各种类型状态 switch (inputCondition.condition_type) { case "1": { inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png"; foreach (var dic in dicList) { string value = dic["value"]; inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value; inputView.btnClick.AddTag("timepoint", value); } } break; case "2": { inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png"; foreach (var dic in dicList) { string value = dic["value"]; inputView.btnText.Text = Language.StringByID(StringId.timeHorizon) + ": " + value; inputView.btnClick.AddTag("timeHorizon", value); } } break; case "3": { //用sid找到设备; var device = LogicMethod.GetDevice(inputCondition.sid); //用设备的functionType类型找到对应图标; inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType); //显示设备名称 inputView.btnText.Text = device.name; //改变设备名称显示控件宽度 inputView.btnText.Width = Application.GetRealWidth(80); //区别不同设备,显示不同设备状态 switch (device.functionType) { //开关灯光 light.Switch case FunctionType.Dimmer: case FunctionType.RGB: case FunctionType.RGBW: case FunctionType.CCT: case FunctionType.Relay: //窗帘 case FunctionType.Curtain: case FunctionType.RollerCurtain: case FunctionType.TrietexCurtain: //空调 case FunctionType.AC: //地热 case FunctionType.FloorHeating: {//开关灯 foreach (var dic in dicList) { string value = dic["value"]; if (value == "on") { inputView.btnState.Text = Language.StringByID(StringId.onLogic); } else { inputView.btnState.Text = Language.StringByID(StringId.offLogic); } } } break; } } break; } //再次编辑条件状态点击事件 inputView.btnClick.MouseUpEventHandler += (sen, e) => { Button button = (Button)sen; //找到当前编辑的索引 int indexVulae = int.Parse(inputView.btnClick.Tag.ToString()); //标记编辑状态 bool edit = true; switch (button.Name) { case "1": { FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; thisView.AddChidren(fLayout); TimeTpye timeTpye = new TimeTpye(); timeTpye.TimePoint(fLayout, edit, indexVulae); } break; case "2": { FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; thisView.AddChidren(fLayout); TimeTpye timeTpye = new TimeTpye(); timeTpye.TimeHorizon(fLayout, edit, indexVulae); } break; case "3": { //用sid找到设备; var device = LogicMethod.GetDevice(inputCondition.sid); ConditionDeviceFunList deviceFunList = new ConditionDeviceFunList(); MainPage.BasePageView.AddChidren(deviceFunList); deviceFunList.Show(device, indexVulae, edit); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } break; } }; ///删除控件 inputView.btnDel.MouseUpEventHandler += (sender, e) => { Logic.currlogic.input.Remove(inputCondition); inputView.frameLayout.RemoveFromParent(); }; } } /// /// 输出条件处理方法 /// /// 当前界面 /// 上下滑动控件 public static void OutputTarget(FrameLayout thisView, VerticalScrolViewLayout viewLayout) { for (int i = 0; i < Logic.currlogic.output.Count; i++) { Output outputTarget = Logic.currlogic.output[i]; ///各种条件的View LogicView.AddOutputInputView targetView = new LogicView.AddOutputInputView(); targetView.FLayoutView(viewLayout); ///记录条件类型 targetView.btnClick.Name = outputTarget.target_type; ///记录条件索引 targetView.btnClick.Tag = i; ///条件状态数组 List> dicList = outputTarget.status as List>; //显示条件各种类型状态 switch (outputTarget.target_type) { case "1": { //用sid找到设备; var device = LogicMethod.GetDevice(outputTarget.sid); //用设备的functionType类型找到对应图标; targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType); //显示设备名称 targetView.btnText.Text = device.name; //改变设备名称显示控件宽度 targetView.btnText.Width = Application.GetRealWidth(80); //第一个变量显示状态值 string stateStr = ""; //区别不同设备,显示不同设备状态 switch (device.functionType) { case FunctionType.Relay: {//开关灯 foreach (var dic in dicList) { string value = dic["value"]; if (value == "on") { stateStr = Language.StringByID(StringId.onLogic); } else { stateStr = Language.StringByID(StringId.offLogic); } } targetView.btnState.Text = stateStr; } break; case FunctionType.Dimmer: { bool _if = false; foreach (var dic in dicList) { if (dic["key"] == "on_off") { string value = dic["value"]; if (value == "on") { targetView.btnState.Text = Language.StringByID(StringId.onLogic); _if = false; } else { targetView.btnState.Text = Language.StringByID(StringId.offLogic); _if = true; } } } foreach (var dic in dicList) { if (dic["key"] == "brightness") { string value = dic["value"]; if (!_if) { targetView.btnState.Text += value; } } } } break; case FunctionType.Curtain: {//开关灯 foreach (var dic in dicList) { string value = dic["value"]; switch (value) { case "on": { stateStr = Language.StringByID(StringId.onLogic); } break; case "off": { stateStr = Language.StringByID(StringId.offLogic); } break; case "stop": { stateStr = Language.StringByID(StringId.stop); } break; } } targetView.btnState.Text = stateStr; } break; } } break; case "2": { //用sid找到场景; var scene = LogicMethod.GetSecne(outputTarget.sid); targetView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png"; targetView.btnNextIcon.Visible = false; //显示场景名称 targetView.btnText.Text = scene.name; } break; case "3": { targetView.btnIcon.UnSelectedImagePath = "LogicIcon/delayed.png"; foreach (var dic in dicList) { string value = dic["value"]; targetView.btnText.Text =value; } } break; } //再次编辑条件状态点击事件 targetView.btnClick.MouseUpEventHandler += (sen, e) => { Button button = (Button)sen; //找到当前编辑的索引 int indexVulae = int.Parse(targetView.btnClick.Tag.ToString()); //标记编辑状态 bool edit = true; switch (button.Name) { case "1": { //用sid找到设备; var device = LogicMethod.GetDevice(outputTarget.sid); TargetDeviceFunList deviceFunList = new TargetDeviceFunList(); MainPage.BasePageView.AddChidren(deviceFunList); deviceFunList.Show(device, indexVulae, edit); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } break; case "3": { FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; thisView.AddChidren(fLayout); AddTarget addTarget = new AddTarget(); addTarget.Delayed(fLayout, edit, indexVulae); } break; } }; ///删除控件 targetView.btnDel.MouseUpEventHandler += (sender, e) => { Logic.currlogic.output.Remove(outputTarget); targetView.frameLayout.RemoveFromParent(); }; } } } }