using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
using Shared;
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View
{
public class Buttons
{
///
/// 动态加载按钮列表
///
/// 父控件
/// 数据列表
/// 回调
/// 表示多少行
/// 表示一行加载多少个按钮
public void AddButton(FrameLayout buttonFLayout, List buttonList, Action action, int line = 7, int sum = 3)
{
VerticalScrolViewLayout vv = new VerticalScrolViewLayout();
buttonFLayout.AddChidren(vv);
for (int i = 0; i < line; i++)
{
var currFLayout = new FrameLayout { Height = Application.GetRealHeight(16 + 44) };
vv.AddChidren(currFLayout);
for (int a = i * sum + 1, b = 0; a <= buttonList.Count; a++, b++)
{
var name = buttonList[a - 1];
var nameBtn = new Button
{
Y = Application.GetRealHeight(16),
X = Application.GetRealWidth(24 + (98 + 16) * b),
// Gravity=Gravity.CenterVertical,
Width = Application.GetRealWidth(98),
Height = Application.GetRealHeight(44),
Text = name,
TextSize = TextSize.text16,
TextColor = CSS.CSS_Color.textColor,
TextAlignment = TextAlignment.Center,
Radius = (uint)Application.GetRealHeight(8),
BorderWidth = 1,
BorderColor = CSS.CSS_Color.textCancelColor,
};
currFLayout.AddChidren(nameBtn);
nameBtn.MouseUpEventHandler += (sender, e) =>
{
action(nameBtn.Text);
};
if (a % sum == 0)
{
break;
}
}
if (i == line - 1)
{
//最后一个元素后面加一个20高度间隔
vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) });
}
}
}
///
/// 动态加载按钮列表
///
/// 父控件
/// 数据列表
/// 回调
/// 表示是否显示删除图标
public void AddButton2(VerticalScrolViewLayout vv, List list, Action action, bool if_bool)
{
//定义一个变量记录行数
int sum = 0;
if (list.Count % 3 == 0)
{
sum = list.Count / 3;
}
else
{
sum = list.Count / 3 + 1;
}
//计算加载出来的数据需要的高度
int h = 16 + sum * (16 + 44) + 104 + 76;
int line = 0;
//按钮的父控件
var FLayout = new FrameLayout
{
Height = Application.GetRealWidth(h),
};
vv.AddChidren(FLayout);
for (int i = 1, j = 0; i <= list.Count; i++, j++)
{
var nameObj = list[i - 1];
//按钮
var buttonNameBtn = new Button
{
Y = Application.GetRealHeight(16 + line * (16 + 44)),
X = Application.GetRealWidth(16 + (16 + 104) * j),
Width = Application.GetRealWidth(104),
Height = Application.GetRealHeight(44),
Text = nameObj.value,
TextSize = TextSize.text16,
TextColor = CSS.CSS_Color.textColor,
TextAlignment = TextAlignment.Center,
Radius = (uint)Application.GetRealHeight(18),
BorderWidth = 1,
BorderColor = CSS.CSS_Color.textCancelColor,
};
FLayout.AddChidren(buttonNameBtn);
//删除图标
var delIconBtn = new Button
{
UnSelectedImagePath = "PirIcon/delbuton.png",
Y = Application.GetRealHeight(12 + line * (16 + 44)),
X = Application.GetRealWidth((16 + 92) + (104 + 16) * j),
Width = Application.GetRealWidth(16),
Height = Application.GetRealWidth(16),
Tag = nameObj,
};
if (if_bool)
{
FLayout.AddChidren(delIconBtn);
}
//删除图标的点击事件
delIconBtn.MouseUpEventHandler += (sender, e) =>
{
var obj = delIconBtn.Tag as Entity.AttributesStatus;
action(obj);
};
if (i % 3 == 0)
{
//满一行重置j=0值;
j = -1;
line += 1;
}
}
}
///
/// 动态加载按钮列表
///
/// 父控件
/// 回调
/// 多少个FrameLayout控件
public void AddFrameLayout(FrameLayout FLayout, Action action, int sum)
{
FrameLayout viewFLayout = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
FLayout.AddChidren(viewFLayout);
FrameLayout controlFl = new FrameLayout();
controlFl.Y = Application.GetRealHeight(319);
controlFl.X = Application.GetRealWidth(16);
controlFl.Width = Application.GetRealWidth(343);
controlFl.Height = Application.GetRealHeight(328);
controlFl.BackgroundColor = CSS.CSS_Color.view;
controlFl.Radius = (uint)Application.GetRealHeight(12);
viewFLayout.AddChidren(controlFl);
///添加遥控器
Button text3Btn = new Button
{
Y = Application.GetRealHeight(12),
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(343 - 16 * 2),
Height = Application.GetRealHeight(20),
TextSize = TextSize.text14,
TextColor = CSS.CSS_Color.textConfirmColor,
TextAlignment = TextAlignment.Center,
TextID = StringId.tianjiayaokongqi,
IsBold = true,
};
controlFl.AddChidren(text3Btn);
viewFLayout.MouseUpEventHandler += (sender1, e1) =>
{
//关闭允许左滑
MainPage.BasePageView.ScrollEnabled = true;
viewFLayout.RemoveFromParent();
};
int line = 0;
for (int i = 1, j = 0; i <= sum; i++, j++)
{
var currpirdeviceFLayout = new FrameLayout
{
Width = Application.GetRealWidth(80),
Height = Application.GetRealWidth(80),
X = Application.GetRealWidth(26 + (80 + 25) * j),
Y = Application.GetRealHeight(52 + (80 + 12) * line),
};
controlFl.AddChidren(currpirdeviceFLayout);
var deviceIconBtn = new Button
{
Y = Application.GetRealHeight(8),
X = Application.GetRealWidth(20),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
};
currpirdeviceFLayout.AddChidren(deviceIconBtn);
var iconNameBtn = new Button
{
Y = deviceIconBtn.Bottom + Application.GetRealHeight(8),
Width = Application.GetRealWidth(80),
Height = Application.GetRealHeight(17),
TextSize = TextSize.text12,
TextColor = CSS.CSS_Color.TextualColor,
TextAlignment = TextAlignment.Center,
};
currpirdeviceFLayout.AddChidren(iconNameBtn);
var clickBtn = new Button { Tag = i };
currpirdeviceFLayout.AddChidren(clickBtn);
if (i % 3 == 0)
{
//满一行重置j=0值;
j = -1;
line += 1;
}
GetIconAndText(i, deviceIconBtn, iconNameBtn);
clickBtn.MouseUpEventHandler += (sender2, e2) =>
{
//1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义;
int if_value = int.Parse(clickBtn.Tag.ToString());
action(if_value, viewFLayout);
};
}
}
///
/// 设置图片和备注
///
/// 索引值
/// 图标Btn
/// 设备备注Btn
private void GetIconAndText(int index, Button deviceIconBtn, Button deviceNameBtn)
{
string iconPath = "";
int deviceNameIndex = 0;
switch (index)
{
case 1:
{
iconPath = "PirIcon/air.png";
deviceNameIndex = StringId.kongtiao;
}
break;
case 2:
{
iconPath = "PirIcon/tv.png";
deviceNameIndex = StringId.dianshi;
}
break;
case 3:
{
iconPath = "PirIcon/fan.png";
deviceNameIndex = StringId.fengshan;
}
break;
case 4:
{
iconPath = "PirIcon/stb.png";
deviceNameIndex = StringId.jidinghe;
}
break;
case 5:
{
iconPath = "PirIcon/projector.png";
deviceNameIndex = StringId.touyingyi;
}
break;
case 6:
{
iconPath = "PirIcon/dvd.png";
deviceNameIndex = StringId.dvd;
}
break;
case 7:
{
iconPath = "PirIcon/custom.png";
deviceNameIndex = StringId.zidingyi;
}
break;
}
deviceIconBtn.UnSelectedImagePath = iconPath;
deviceNameBtn.TextID = deviceNameIndex;
}
///
/// 获取设备类型str
///
/// 索引值
public static string GetTypeString(int index)
{
string type = "";
switch (index)
{
case 1:
{
//空调
type = "ac-" + SPK.AcIr;
}
break;
case 2:
{
//电视
type = "tv-" + SPK.TvIr;
}
break;
case 3:
{
//风扇
type = "fan-" + SPK.FanIr;
}
break;
case 4:
{
//机顶盒
type = "set_top_box-" + SPK.StbIr;
}
break;
case 5:
{
//投影仪
type = "projector-" + SPK.PjtIr;
}
break;
case 6:
{
//影碟机
type = "dvd-" + SPK.DvDIr;
}
break;
}
return type;
}
///
/// 获取列表
///
/// 标记值
///
public List GetList(string tag)
{
List list = new List();
switch (tag)
{
case "默认按钮":
{
list.Add(Language.StringByID(StringId.dianyuan));
list.Add(Language.StringByID(StringId.yinliangjia));
list.Add(Language.StringByID(StringId.yinliangjian));
list.Add(Language.StringByID(StringId.pindaojia));
list.Add(Language.StringByID(StringId.pindaojian));
list.Add(Language.StringByID(StringId.shang));
list.Add(Language.StringByID(StringId.xia));
list.Add(Language.StringByID(StringId.zuo));
list.Add(Language.StringByID(StringId.you));
list.Add(Language.StringByID(StringId.jingyin));
list.Add(Language.StringByID(StringId.queren));
list.Add(Language.StringByID(StringId.bofang));
list.Add(Language.StringByID(StringId.xiayibu));
list.Add(Language.StringByID(StringId.tuichu));
list.Add(Language.StringByID(StringId.caidan));
list.Add(Language.StringByID(StringId.zanting));
list.Add(Language.StringByID(StringId.fanhui));
list.Add(Language.StringByID(StringId.tingzhi));
list.Add(Language.StringByID(StringId.zhuye));
list.Add(Language.StringByID(StringId.kuaijin));
list.Add(Language.StringByID(StringId.kuaitui));
list.Add(Language.StringByID(StringId.dingshi));
}
break;
}
return list;
}
}
}