using System; using System.Collections.Generic; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { public class AddButton : FrameLayout { public AddButton() { Tag = "PirView"; } public void Show(Control control) { #region 界面布局 this.BackgroundColor = CSS.CSS_Color.viewMiddle; PirDevice.View.TopView topView = new View.TopView(); topView.topNameBtn.TextID = StringId.tianjiayaokongqi; this.AddChidren(topView.FLayoutView()); topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { RemoveFromParent(); }; FrameLayout editfLayout = new FrameLayout { Y = topView.frameLayout.Bottom, BackgroundColor = CSS.CSS_Color.textWhiteColor, Height = Application.GetRealHeight(152), Width = Application.GetRealWidth(375), }; this.AddChidren(editfLayout); //线 Button lineBtn = new Button { Y = Application.GetRealHeight(43), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 16 * 2), Height = 1, BackgroundColor = CSS.CSS_Color.viewLine, }; editfLayout.AddChidren(lineBtn); //请输入按键名称 EditText editText = new EditText() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 16 * 2), Height = Application.GetRealHeight(44), PlaceholderText = Language.StringByID(StringId.anjianmingcheng), PlaceholderTextColor = CSS.CSS_Color.textCancelColor, TextColor = CSS.CSS_Color.textColor, TextSize = TextSize.text14, TextAlignment = TextAlignment.CenterLeft, }; editfLayout.AddChidren(editText); //下一步 Button saveBtn = new Button { Width = Application.GetRealWidth(220), Height = Application.GetRealHeight(44), Y = Application.GetRealHeight(92), X = Application.GetRealWidth(78), TextID = StringId.xiayibu, TextSize = TextSize.text16, TextColor = CSS.CSS_Color.textWhiteColor, TextAlignment = TextAlignment.Center, BackgroundColor = CSS.CSS_Color.btnSaveBackgroundColor, Radius = (uint)Application.GetRealHeight(22), }; editfLayout.AddChidren(saveBtn); FrameLayout fLayout = new FrameLayout { Y = editfLayout.Bottom + Application.GetRealHeight(8), Height = Application.GetRealHeight(667 - 64 - 152 - 8), Width = Application.GetRealWidth(375), BackgroundColor = CSS.CSS_Color.textWhiteColor, }; this.AddChidren(fLayout); //推荐按键 Button titleBtn = new Button { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(220), Height = Application.GetRealHeight(20), TextID = StringId.tuijiananjian, TextSize = TextSize.text14, TextColor = CSS.CSS_Color.text1Color, TextAlignment = TextAlignment.CenterLeft, }; fLayout.AddChidren(titleBtn); //动态加载Button按钮父控件 FrameLayout buttonFLayout = new FrameLayout { Y = Application.GetRealHeight(32), Height = Application.GetRealHeight(667 - 64 - 152 - 8 - 12 - 20), Width = Application.GetRealWidth(375), }; fLayout.AddChidren(buttonFLayout); #endregion View.Buttons buttons = new View.Buttons(); var buttonNameList = buttons.GetList("默认按钮"); buttons.AddButton(buttonFLayout, buttonNameList, (s) => { editText.Text = s; #if __Android__ editText.SetSelectionEnd(); #endif }); ///下一步的点击事件 saveBtn.MouseUpEventHandler += (sender, e) => { if (control.status.Count > 29) { ///超出30个红外宝内存满了会出现异常 new PirMethod().ErrorShow(null, "添加按钮超出30个"); return; } var texts = editText.Text.Trim(); if (string.IsNullOrEmpty(editText.Text)) { //名称不能为空 return; } var butName = control.status.Find((c) => c.value == texts); if (butName != null) { //名称已经存在 return; } //new引导界面 View.ReplicationView replication = new View.ReplicationView(); replication.Show(this); //添加数据对象 Entity.AttributesStatus buttonObj = new Entity.AttributesStatus(); string keyName = GetKeyName(control.status); buttonObj.key = keyName; buttonObj.value = texts; PirSend.CodeStudy(control, buttonObj, (mqttdate) => { if (mqttdate != null) { //休眠是为显示引导界面 // System.Threading.Thread.Sleep(3000); //移除添加按钮引导界面 replication.RemView(); var buttonName = control.status.Find((c) => c.value == buttonObj.value); if (buttonName == null) { //添加数据 control.status.Add(buttonObj); } //移除添加按钮界面 this.RemoveFromParent(); //移除之前可能存在的界面 PirMethod.RemoveView("AddControl"); //加载数据界面 AddControl addControl = new AddControl(); MainPage.BasePageView.AddChidren(addControl); addControl.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { replication.RemView(); PirMethod method = new PirMethod(); method.ErrorShow(null, "添加失败"); } }); }; } /// /// 移除界面 /// public override void RemoveFromParent() { //刷新指定界面 PirMethod.RefreshView("PirMain"); base.RemoveFromParent(); } /// /// 查找唯一健名值 /// /// 已经存在健名列表 /// private string GetKeyName(List listKeyName) { //目前红外宝学习按钮最多是30个; for (int i = 0; i < 50; i++) { string keyName = "key" + i.ToString(); ///查找是否存在 var currKeyName = listKeyName.Find((c) => c.key == keyName); if (currKeyName == null) { return keyName; } } return "key" + listKeyName.Count; } } }