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(); viewLayout.AddChidren(inputView.FLayoutView()); ///记录条件类型 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) { case FunctionType.Relay: {//开关灯 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; //表示是条件 string if_type = LogicMethod.condition_if; 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); DeviceFunList deviceFunList = new DeviceFunList(); MainPage.BasePageView.AddChidren(deviceFunList); deviceFunList.Show(device, indexVulae,edit, if_type); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } break; } }; } } /// /// 输出条件处理方法 /// /// 当前界面 /// 上下滑动控件 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(); viewLayout.AddChidren(targetView.FLayoutView()); ///记录条件类型 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); //区别不同设备,显示不同设备状态 switch (device.functionType) { case FunctionType.Relay: {//开关灯 foreach (var dic in dicList) { string value = dic["value"]; if (value == "on") { targetView.btnState.Text = Language.StringByID(StringId.onLogic); } else { targetView.btnState.Text = Language.StringByID(StringId.offLogic); } } } 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; //表示是目标 string if_type = LogicMethod.target_if; switch (button.Name) { case "1": { //用sid找到设备; var device = LogicMethod.GetDevice(outputTarget.sid); DeviceFunList deviceFunList = new DeviceFunList(); MainPage.BasePageView.AddChidren(deviceFunList); deviceFunList.Show(device, indexVulae, edit, if_type); 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; } }; } } } }