using System; using System.Collections.Generic; using Shared.Common; using Shared.R; using Shared; namespace Shared.Phone.Device.Logic { public class SoneLogicList : FrameLayout { public SoneLogicList() { Tag = "SoneLogic"; } public async void Show() { #region 界面的布局代码 UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑 TopView view = new TopView(); this.AddChidren(view.TopRowView()); view.toptitleNameBtn.TextID = MyInternationalizationString.selection; view.clickBtn.MouseDownEventHandler += (sender, e) => { UserView.HomePage.Instance.ScrollEnabled = true; RemoveFromParent(); }; var middle = new FrameLayout { Y = view.topRowLayout.Bottom, Height = Application.GetRealHeight(Method.H - 184), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; this.AddChidren(middle); #endregion #region 常开模式图标 时效性常开设置 ///第二块第一级父控件 var fLayout = new FrameLayout { Width = Application.GetRealWidth(1080), Height = Application.GetRealHeight(829 - 184), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; middle.AddChidren(fLayout); ///常开模式图标 var modeIconBtn = new Button { X = Application.GetRealWidth(395), Y = Application.GetRealHeight(92), Width = Application.GetMinRealAverage(294), Height = Application.GetMinRealAverage(294), UnSelectedImagePath = "ZigeeLogic/noMode.png", SelectedImagePath = "ZigeeLogic/openMode.png", }; fLayout.AddChidren(modeIconBtn); var logic = await SkipView.GetLogicIfon(); if (logic != null) { fLayout.Height = Application.GetRealHeight(780);//改变高度 modeIconBtn.IsSelected = true;//改变图标状态 ///第二级父控件 var openModeFl = new FrameLayout { Y = Application.GetRealHeight(455), Height = Application.GetRealHeight(127 + 199), Width = Application.GetRealWidth(1080), }; fLayout.AddChidren(openModeFl); ///关闭时效性自动化 Button closeBtn = new Button { X = Application.GetRealWidth(86), Height = Application.GetRealHeight(127), Width = Application.GetRealWidth(907), Radius = (uint)Application.GetRealHeight(58), BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor, TextID = MyInternationalizationString.closeUp, TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, TextSize = 16, }; openModeFl.AddChidren(closeBtn); closeBtn.MouseUpEventHandler += (sender,e) => { var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm, Language.StringByID(MyInternationalizationString.doyouwanttodelete), Language.StringByID(MyInternationalizationString.confrim)); alert.Show(); alert.ConfirmClickEvent += () => { Send.DelLogic(logic.LogicId); this.RemoveFromParent(); var soneLogicList = new SoneLogicList(); UserView.HomePage.Instance.AddChidren(soneLogicList); UserView.HomePage.Instance.PageIndex += 1; soneLogicList.Show(); }; }; ///显示失效设置时间文本控件 var timeTextBtn= new Button { Y = Application.GetRealHeight(127 + 69), X = Application.GetRealWidth(225), Width = Application.GetRealWidth(634), Height = Application.GetRealHeight(60), TextSize = 15, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Text = "时效性常开设置12:20", }; openModeFl.AddChidren(timeTextBtn); ///时效性常开只有一个条件; try { var y = DateTime.Now.ToString("yy");//那一年 var m = DateTime.Now.ToString("mm");//那一月 var d = DateTime.Now.ToString("dd");//那一天 var h =int.Parse(DateTime.Now.ToString("HH"));//当前系统时间 var me = DateTime.Now.ToLongDateString(); var timeInt = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]); int dayInt = (h + timeInt)/ 24;//算出几天后执行 int hour = (h + timeInt) % 24;//算出几天后那个时间执行 timeTextBtn.Text = "时效性常开设置" + y + "年" + m + "月" + d + dayInt + "号" + timeInt + "时"+ "执行"; } catch { } } else { fLayout.Height = Application.GetRealHeight(645);//改变高度 modeIconBtn.IsSelected = false;//改变图标状态 ///第二级父控件 var modeFl = new FrameLayout { Y = Application.GetRealHeight(478), X = Application.GetRealWidth(58), Height = Application.GetRealHeight(138), Width = Application.GetRealWidth(1022), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; fLayout.AddChidren(modeFl); modeFl.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft); modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); ///时效性常开设置显示文本控件 var modeTextBtn = new Button { Y = Application.GetRealHeight(40), X = Application.GetRealWidth(58), Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(60), TextSize = 15, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextAlignment = TextAlignment.CenterLeft, // Text = "时效性常开设置", TextID=MyInternationalizationString.timeSetSone, }; modeFl.AddChidren(modeTextBtn); ///下一级菜单图标控件 var nextIconBtn = new Button { Width = Application.GetMinRealAverage(104), Height = Application.GetMinRealAverage(104), X = Application.GetRealWidth(861), Y = Application.GetRealHeight(17), UnSelectedImagePath = "ZigeeLogic/next.png", }; modeFl.AddChidren(nextIconBtn); var clickBtn = new Button { Y = Application.GetRealHeight(478), X = Application.GetRealWidth(58), Height = Application.GetRealHeight(138), Width = Application.GetRealWidth(1022), }; modeFl.AddChidren(clickBtn); clickBtn.MouseUpEventHandler += async (sender, e) => { var d = await SkipView.LockAddModifyLogic(12, Send.CurrentDoorLock); }; } #endregion #region 常开自动化 ///第三块第一级父控件 var listLogicFl = new FrameLayout { Y = fLayout.Bottom, X = Application.GetRealWidth(58), Height = middle.Height - fLayout.Height, Width = Application.GetRealWidth(1022), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(listLogicFl); listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); ///添加常开自动化的父控件 var addLogicfL = new FrameLayout { Height = Application.GetRealHeight(187), Width = Application.GetRealWidth(1080 - 58), }; listLogicFl.AddChidren(addLogicfL); ///常开自动化显示文本的控件 var addTextBtn = new Button { Y = Application.GetRealHeight(46), X = Application.GetRealWidth(58), Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(95), TextSize = 24, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextAlignment = TextAlignment.CenterLeft, //Text = "常开自动化", TextID = MyInternationalizationString.openAutomationSone, }; addLogicfL.AddChidren(addTextBtn); ///添加自动化图标的控件 var addIconBtn = new Button { Width = Application.GetMinRealAverage(69), Height = Application.GetMinRealAverage(69), X = Application.GetRealWidth(890), Y = Application.GetRealHeight(60), UnSelectedImagePath = "ZigeeLogic/add.png", }; addLogicfL.AddChidren(addIconBtn); addIconBtn.MouseUpEventHandler += (sender, e) => { //读取系统当前时间:时-分 //读取系统当前时间:时-分 var h = DateTime.Now.ToString("HH"); var m = DateTime.Now.ToString("mm"); Dictionary timeConditionsInfo = new Dictionary(); timeConditionsInfo.Add("Type", "0"); timeConditionsInfo.Add("IsValid", "1"); timeConditionsInfo.Add("DateType", "0"); timeConditionsInfo.Add("RemindTime", "0"); timeConditionsInfo.Add("EnDelay", "0"); timeConditionsInfo.Add("DelayTime", "0"); timeConditionsInfo.Add("DoorLockOpenDelayTime", "0"); timeConditionsInfo.Add("StartHour", h); timeConditionsInfo.Add("StartMin", m); Dictionary actionsInfo = new Dictionary(); actionsInfo.Add("LinkType", 8); actionsInfo.Add("DeviceAddr", Send.CurrentDoorLock.DeviceAddr); actionsInfo.Add("Epoint", "200"); actionsInfo.Add("PassData", "055704010113");//默认门锁常关 //new一个新逻辑对象; //新增门锁常开模式自动化入口; Common.Logic.CurrentLogic = new Common.Logic(); Common.Logic.CurrentLogic.IsEnable = 1;//默认为开 Common.Logic.CurrentLogic.LogicType = 2;//标记逻辑类型 Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode); Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//添加条件 Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//添加目标 var oneLogic = new OneLogic(); UserView.HomePage.Instance.AddChidren(oneLogic); UserView.HomePage.Instance.PageIndex += 1; oneLogic.Show(false); }; ///常开自动化列表上下滑动的控件 var verticalRefresh = new VerticalRefreshLayout { Y = addLogicfL.Bottom, X = Application.GetRealWidth(46), Height = listLogicFl.Height - addLogicfL.Height, Width = listLogicFl.Width - Application.GetRealWidth(46), }; listLogicFl.AddChidren(verticalRefresh); verticalRefresh.BeginHeaderRefreshingAction += () => { Common.Logic.SoneLogicList.Clear(); Read(verticalRefresh, false); verticalRefresh.EndHeaderRefreshing(); }; Read(verticalRefresh, true); #endregion } /// /// 读取自动化列表数据; /// /// private async void Read(VerticalRefreshLayout verticalRefresh, bool yes) { if (yes) { CommonPage.Loading.Start(); } try { if (Common.Logic.SoneLogicList.Count == 0) { var Idlist = await Send.GetLogicId(2);//门锁常开模式 if (Idlist.Count != 0) { var listlogic = await Send.ReadList(Idlist.Count, 2); for (int i = 0; i < listlogic.Count; i++) { var logic = listlogic[i]; if (logic.LogicType != 2) { continue; } Common.Logic.SoneLogicList.Add(logic); } } } } catch (Exception e) { var dd = e.Message; } //自动化 RefreshView(verticalRefresh); if (yes) { CommonPage.Loading.Hide(); } } /// /// 加载自动化列表 /// /// private void RefreshView(VerticalRefreshLayout verticalRefresh) { verticalRefresh.RemoveAll(); for (int i = 0; i < 6; i++) { Common.Logic.SoneLogicList.Add(new Common.Logic { LogicName = i.ToString() }); } foreach (var logic in Common.Logic.SoneLogicList) { #region 自动化布局View ///自动化父控件 var fLayout = new FrameLayout { Height = Application.GetRealHeight(184), }; verticalRefresh.AddChidren(fLayout); ///左右可滑动控件 var logicRow = new RowLayout { LineColor = ZigbeeColor.Current.LogicBackgroundColor, BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, SubViewWidth = Application.GetRealWidth(184),//改变编辑控件宽度多少; }; fLayout.AddChidren(logicRow); //左滑菜单事件 logicRow.OpenMenuAction += () => { //if (selectedRow.Tag.ToString() != logicRowlayout.Tag.ToString()) //{ //保留左滑只有一个; // selectedRow.HideMenu();// //} //selectedRow = logicRowlayout; }; ///显示逻辑名称的控件 var nameBtn = new Button { Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(350), Text = logic.LogicName, X = Application.GetRealWidth(12), Y = Application.GetRealHeight(3), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextSize = 14, }; logicRow.AddChidren(nameBtn); ///显示目标功能背景颜色的控件 var typeBjBtn = new FrameLayout { Width = Application.GetMinRealAverage(82), Height = Application.GetMinRealAverage(82), X = Application.GetRealWidth(17), Y = Application.GetRealHeight(84), Radius = (uint)Application.GetMinRealAverage(41), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; logicRow.AddChidren(typeBjBtn); ///显示目标功能图标的控件 var typeIconBtn = new Button { Width = Application.GetMinRealAverage(58), Height = Application.GetMinRealAverage(58), Gravity = Gravity.Center, }; typeBjBtn.AddChidren(typeIconBtn); ///逻辑开关图标的控件 var switchBtn = new Button { Width = Application.GetMinRealAverage(104), Height = Application.GetMinRealAverage(63), UnSelectedImagePath = "ZigeeLogic/logicclose.png", SelectedImagePath = "ZigeeLogic/logicopen.png", X = Application.GetRealWidth(815), Y = Application.GetRealHeight(92), }; logicRow.AddChidren(switchBtn); if (logic.IsEnable == 1) { switchBtn.IsSelected = true; typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png"; typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color; } else if (logic.IsEnable == 0) { switchBtn.IsSelected = false; typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png"; typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; } ///编辑 var edit = new Button { BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1, Text = Language.StringByID(MyInternationalizationString.edit), TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; logicRow.AddRightView(edit); if (logic.LogicType == 2) { edit.TextID = MyInternationalizationString.look; } ///删除 var del = new Button { BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1, Text = Language.StringByID(MyInternationalizationString.del), TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; logicRow.AddRightView(del); ///线的控件 var line = new Button { Y = fLayout.Height - 1, Height = 1, Width = Application.GetRealWidth(976), BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; fLayout.AddChidren(line); #endregion ///开关点击事件 switchBtn.MouseUpEventHandler += (sender1, e1) => { switchBtn.IsSelected = !switchBtn.IsSelected; if (switchBtn.IsSelected) { //逻辑开 logic.IsEnable = 1; typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png"; typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color; } else { //逻辑关 typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png"; typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; } Send.LogicControlSwitch(logic); //Logic.Send.AddModifyLogic(logic); }; ///编辑点击事件 edit.MouseUpEventHandler += (sender, e) => { Common.Logic.CurrentLogic = logic; var oneLogic = new OneLogic(); UserView.HomePage.Instance.AddChidren(oneLogic); UserView.HomePage.Instance.PageIndex += 1; oneLogic.Show(false); }; ///删除点击事件 del.MouseUpEventHandler += (sender, e) => { var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm, Language.StringByID(MyInternationalizationString.doyouwanttodelete), Language.StringByID(MyInternationalizationString.confrim)); alert.Show(); alert.ConfirmClickEvent += () => { Common.Logic.SoneLogicList.Remove(logic); //logicRow.Parent.RemoveFromParent(); fLayout.RemoveFromParent(); Send.DelLogic(logic.LogicId); }; }; } } } }