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;
}
}
}