New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.Intelligence.Automation |
| | | { |
| | | public class LogicSeriesSettingPage :FrameLayout |
| | | { |
| | | FrameLayout bodyView; |
| | | |
| | | public LogicSeriesSettingPage() |
| | | { |
| | | bodyView = this; |
| | | } |
| | | |
| | | public void LoadPage(List<Function> list) |
| | | { |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.HorseRaceLamp)).LoadTopView(); |
| | | bodyView.BackgroundColor = CSS.CSS_Color.BackgroundColor; |
| | | |
| | | VerticalScrolViewLayout contentView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(603 - 50), |
| | | }; |
| | | bodyView.AddChidren(contentView); |
| | | |
| | | #region 找出所有序列的oid |
| | | List<string> oidList = new List<string>(); |
| | | |
| | | foreach (var rgb in list) |
| | | { |
| | | var oid = rgb.sid.Substring(0, 16); |
| | | if (!oidList.Contains(oid)) |
| | | { |
| | | oidList.Add(oid); |
| | | } |
| | | } |
| | | |
| | | var seriesList = FunctionList.List.GetSeries(); |
| | | |
| | | foreach(var temp in seriesList) |
| | | { |
| | | var oid = temp.sid.Substring(0, 16); |
| | | if (!oidList.Contains(oid)) |
| | | { |
| | | oidList.Add(oid); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | //Dictionary<string, List<string>> deviceList = new Dictionary<string, List<string>>(); |
| | | //foreach(var oid in oidList) |
| | | //{ |
| | | // var sidList = FunctionList.List. |
| | | |
| | | // if (!deviceList.ContainsKey(oid)) |
| | | // { |
| | | // deviceList.Add(oid) |
| | | // } |
| | | //} |
| | | |
| | | foreach(var oid in oidList) |
| | | { |
| | | Function rgb = null; |
| | | rgb = list.Find((obj) => obj.sid.Substring(0, 16) == oid); |
| | | if(rgb == null) |
| | | { |
| | | rgb = FunctionList.List.GetLightList().Find((obj) => obj.spk == SPK.LightRGB && obj.sid.Substring(0, 16) == oid); |
| | | if (rgb == null) |
| | | { |
| | | rgb = FunctionList.List.GetLightList().Find((obj) => obj.spk == SPK.LightCCT && obj.sid.Substring(0, 16) == oid); |
| | | if (rgb == null) |
| | | { |
| | | rgb = FunctionList.List.GetLightList().Find((obj) => obj.spk == SPK.LightDimming && obj.sid.Substring(0, 16) == oid); |
| | | } |
| | | } |
| | | } |
| | | var titleView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(44), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | }; |
| | | contentView.AddChidren(titleView); |
| | | titleView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS.CSS_Color.DividingLineColor, Gravity = Gravity.BottomCenter }); |
| | | |
| | | var btnViewTitle = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | TextSize = CSS.CSS_FontSize.SubheadingFontSize, |
| | | IsBold = true, |
| | | Text = rgb.name, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS.CSS_Color.MainColor, |
| | | }; |
| | | titleView.AddChidren(btnViewTitle); |
| | | |
| | | if (rgb.GetAttribute(FunctionAttributeKey.Colorful) != null) |
| | | { |
| | | var autoColorfulView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(44), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | }; |
| | | contentView.AddChidren(autoColorfulView); |
| | | autoColorfulView.AddChidren(new Button() { Width = Application.GetRealWidth(343), Gravity = Gravity.BottomCenter, Height = 1, BackgroundColor = CSS.CSS_Color.DividingLineColor, Y = Application.GetRealHeight(44) - 1 }); |
| | | |
| | | Button btnAutoColorfulRight = new Button() |
| | | { |
| | | X = Application.GetRealWidth(339), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | | UnSelectedImagePath = "Public/Right.png", |
| | | }; |
| | | autoColorfulView.AddChidren(btnAutoColorfulRight); |
| | | |
| | | var btnAutoColorfulTitle = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CSS.CSS_FontSize.TextFontSize, |
| | | TextColor = CSS.CSS_Color.FirstLevelTitleColor, |
| | | TextID = StringId.Auto, |
| | | }; |
| | | autoColorfulView.AddChidren(btnAutoColorfulTitle); |
| | | btnAutoColorfulTitle.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | LoadEditDialog_OnOff(rgb.sid, true); |
| | | }; |
| | | } |
| | | |
| | | var rgbSeriesList = seriesList.FindAll((obj) => obj.sid.Substring(0, 16) == rgb.sid.Substring(0, 16)); |
| | | foreach(var rgbSeries in rgbSeriesList) |
| | | { |
| | | var colorfulView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(44), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | }; |
| | | contentView.AddChidren(colorfulView); |
| | | colorfulView.AddChidren(new Button() { Width = Application.GetRealWidth(343), Gravity = Gravity.BottomCenter, Height = 1, BackgroundColor = CSS.CSS_Color.DividingLineColor, Y = Application.GetRealHeight(44) - 1 }); |
| | | |
| | | Button btnColorfulRight = new Button() |
| | | { |
| | | X = Application.GetRealWidth(339), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | | UnSelectedImagePath = "Public/Right.png", |
| | | }; |
| | | colorfulView.AddChidren(btnColorfulRight); |
| | | |
| | | var btnColorfulTitle = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CSS.CSS_FontSize.TextFontSize, |
| | | TextColor = CSS.CSS_Color.FirstLevelTitleColor, |
| | | Text = rgbSeries.name, |
| | | }; |
| | | colorfulView.AddChidren(btnColorfulTitle); |
| | | btnColorfulTitle.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | LoadEditDialog_OnOff(rgbSeries.sid); |
| | | }; |
| | | |
| | | } |
| | | |
| | | |
| | | contentView.AddChidren(new Button { |
| | | Height = Application.GetRealHeight(8), |
| | | BackgroundColor = CSS_Color.BackgroundColor, |
| | | }); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载开关选择弹窗 |
| | | /// </summary> |
| | | /// <param name="function"></param> |
| | | /// <param name="btn"></param> |
| | | void LoadEditDialog_OnOff(string sid, bool isRgb = false) |
| | | { |
| | | Dialog dialog = new Dialog(); |
| | | |
| | | var pView = new FrameLayout() |
| | | { |
| | | BackgroundColor = CSS_Color.DialogTransparentColor1, |
| | | }; |
| | | dialog.AddChidren(pView); |
| | | |
| | | var optionBaseView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(500), |
| | | Height = Application.GetRealHeight(160), |
| | | AnimateSpeed = 0.3f, |
| | | Animate = Animate.DownToUp, |
| | | }; |
| | | pView.AddChidren(optionBaseView); |
| | | |
| | | var optionView = new VerticalScrolViewLayout() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(100), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | ScrollEnabled = false, |
| | | }; |
| | | optionBaseView.AddChidren(optionView); |
| | | |
| | | var btnOn = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.On, |
| | | }; |
| | | optionView.AddChidren(btnOn); |
| | | |
| | | optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor }); |
| | | |
| | | var btnOff = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = CSS_Color.TextualColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.OFF, |
| | | }; |
| | | optionView.AddChidren(btnOff); |
| | | |
| | | var btnCancel = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(8) + optionView.Bottom, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | TextID = StringId.Cancel, |
| | | TextColor = CSS_Color.WarningColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | }; |
| | | optionBaseView.AddChidren(btnCancel); |
| | | |
| | | dialog.Show(); |
| | | |
| | | pView.MouseUpEventHandler = (sender, e) => { |
| | | dialog.Close(); |
| | | }; |
| | | |
| | | btnCancel.MouseUpEventHandler = (sender, e) => { |
| | | dialog.Close(); |
| | | }; |
| | | btnOn.MouseUpEventHandler = (sender, e) => { |
| | | dialog.Close(); |
| | | Output outputDevice = new Output(); |
| | | outputDevice.target_type = "1"; |
| | | outputDevice.sid = sid; |
| | | outputDevice.delay = "0"; |
| | | |
| | | List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>(); |
| | | |
| | | Dictionary<string, string> diction = new Dictionary<string, string>(); |
| | | if (isRgb) |
| | | { |
| | | diction.Add("key", FunctionAttributeKey.Colorful); |
| | | } |
| | | else |
| | | { |
| | | diction.Add("key", "on_off"); |
| | | } |
| | | diction.Add("value", "on"); |
| | | dicSateteList.Add(diction); |
| | | |
| | | outputDevice.status = dicSateteList; |
| | | |
| | | var oldTemp = Logic.currlogic.output.Find((obj) => obj.sid.Substring(0, 16) == sid.Substring(0, 16)); |
| | | if (oldTemp != null) |
| | | { |
| | | Logic.currlogic.output.Remove(oldTemp); |
| | | } |
| | | Logic.currlogic.output.Add(outputDevice); |
| | | |
| | | this.RemoveFromParent(); |
| | | LogicMethod.Current.RemoveAllView(); |
| | | AddLogic addLogic = new AddLogic(); |
| | | MainPage.BasePageView.AddChidren(addLogic); |
| | | addLogic.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | |
| | | }; |
| | | btnOff.MouseUpEventHandler = (sender, e) => { |
| | | dialog.Close(); |
| | | |
| | | |
| | | Output outputDevice = new Output(); |
| | | outputDevice.target_type = "1"; |
| | | outputDevice.sid = sid; |
| | | outputDevice.delay = "0"; |
| | | |
| | | List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>(); |
| | | |
| | | Dictionary<string, string> diction = new Dictionary<string, string>(); |
| | | if (isRgb) |
| | | { |
| | | diction.Add("key", FunctionAttributeKey.Colorful); |
| | | } |
| | | else |
| | | { |
| | | diction.Add("key", "on_off"); |
| | | } |
| | | diction.Add("value", "off"); |
| | | dicSateteList.Add(diction); |
| | | |
| | | outputDevice.status = dicSateteList; |
| | | |
| | | try |
| | | { |
| | | var oldTemp = Logic.currlogic.output.Find((obj) => obj.sid != null && obj.sid.Length > 16 && obj.sid.Substring(0, 16) == sid.Substring(0, 16)); |
| | | if (oldTemp != null) |
| | | { |
| | | Logic.currlogic.output.Remove(oldTemp); |
| | | } |
| | | }catch(Exception ex) |
| | | { |
| | | MainPage.Log($"自动化保存跑马灯数据异常:{ex.Message}"); |
| | | } |
| | | Logic.currlogic.output.Add(outputDevice); |
| | | |
| | | |
| | | this.RemoveFromParent(); |
| | | |
| | | LogicMethod.Current.RemoveAllView(); |
| | | AddLogic addLogic = new AddLogic(); |
| | | MainPage.BasePageView.AddChidren(addLogic); |
| | | addLogic.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | |
| | | } |
| | | |
| | | } |
| | | } |