using System;
using System.Collections.Generic;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class PublicInterface
{
///
/// 单选择
///
/// 父控件
/// 显示数据源
///
/// 之前状态文本
/// 返回值
/// 显示文本字体大小
public void SingleSelectionShow(FrameLayout frameLayout, List list, string titleText, string stateText,Action action, int textSize=LogicView.TextSize.text14)
{
LogicView.DateView view = new LogicView.DateView();
view.btnTitle.Text = titleText;
view.FLayoutView(frameLayout, list.Count);
view.btnCancel.MouseUpEventHandler += (sender, e) =>
{
//移除fLayout界面
frameLayout.RemoveFromParent();
};
///定义一个Btn记录选中状态
Button checkBtn = new Button
{
Tag = "unknown",
};
for (int i = 0; i < list.Count; i++)
{
string str = list[i];
LogicView.CheckView checkView = new LogicView.CheckView();
checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
checkView.btnText.TextSize = textSize;
view.frameLayout.AddChidren(checkView.FLayoutView());
checkView.btnText.Text = str;
checkView.btnClick.Tag = str;//标记
if (stateText == str)
{
//显示之前的选中状态
checkBtn.IsSelected = false;
checkView.btnCheckIcon.IsSelected = true;
checkBtn = checkView.btnCheckIcon;
checkBtn.Tag = checkView.btnClick.Tag.ToString();
}
//点击事件
checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
{
checkBtn.IsSelected = false;
checkView.btnCheckIcon.IsSelected = true;
checkBtn = checkView.btnCheckIcon;
checkBtn.Tag = checkView.btnClick.Tag.ToString();
};
}
view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
{
if (checkBtn.Tag.ToString() == "unknown")
{
return;
}
action(checkBtn.Tag.ToString());
//移除fLayout界面
frameLayout.RemoveFromParent();
};
}
///
/// 多选择
///
/// 父控件
/// 显示数据源
///
/// 之前状态文本
/// 返回值
/// 显示文本字体大小
public void MultiSelectShow(FrameLayout frameLayout, List list, string titleText, List stateTextList, Action> action, int textSize = LogicView.TextSize.text14)
{
LogicView.DateView view = new LogicView.DateView();
view.btnTitle.Text = titleText;
view.FLayoutView(frameLayout, list.Count);
view.btnCancel.MouseUpEventHandler += (sender, e) =>
{
//移除fLayout界面
view.frameLayout.RemoveFromParent();
};
for (int i = 0; i < list.Count; i++)
{
string str = list[i];
LogicView.CheckView checkView = new LogicView.CheckView();
checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
checkView.btnText.TextSize = textSize;
view.frameLayout.AddChidren(checkView.FLayoutView());
checkView.btnText.Text = str;
checkView.btnClick.Tag = str;//标记
if (stateTextList.Contains(str))
{
//显示之前的选中状态
checkView.btnCheckIcon.IsSelected = true;
}
//点击事件
checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
{
string clickIndex = checkView.btnClick.Tag.ToString();
checkView.btnClick.IsSelected = !checkView.btnClick.IsSelected;
if (checkView.btnClick.IsSelected)
{
checkView.btnCheckIcon.IsSelected = true;
if (!stateTextList.Contains(clickIndex))
{
//添加选中数据
stateTextList.Add(clickIndex);
}
}
else
{
checkView.btnCheckIcon.IsSelected = false;
if (stateTextList.Contains(clickIndex))
{
//移除选中数据
stateTextList.Remove(clickIndex);
}
}
};
}
view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
{
if (stateTextList.Count == 0)
{
return;
}
action(stateTextList);
//移除fLayout界面
frameLayout.RemoveFromParent();
};
}
///
/// 月-多选择
///
/// 父控件
/// 显示文本字体大小
public void MonSelectShow(FrameLayout frameLayout,Logic logic, Action> action)
{
LogicView.MonView monView = new LogicView.MonView();
monView.btnTitle.TextID = StringId.monthly;
monView.FLayoutView(frameLayout);
monView.btnCancel.MouseUpEventHandler += (sender, e) =>
{
monView.frameLayout.RemoveFromParent();
};
//定义一个局部monList列表用来记录选中数据;
List monList = new List();
if (logic.cycle.type == "mon")
{
//加载之前保存的数据
monList.AddRange(logic.cycle.value);
}
//定义一个变量记录行数
int lineSun = 0;
for (int i = 1; i < 32; i++)
{
Button monTextBtn = new Button
{
Width = Application.GetRealWidth(30),
Height = Application.GetRealWidth(30),
Radius = (uint)Application.GetRealWidth(15),
Text = i.ToString(),
TextSize = LogicView.TextSize.text14,
TextColor = CSS.CSS_Color.textColor,
SelectedTextColor = CSS.CSS_Color.view,
SelectedBackgroundColor = CSS.CSS_Color.textConfirmColor,
BackgroundColor = CSS.CSS_Color.viewTranslucence,
Tag = i,
};
monView.frameLayout.AddChidren(monTextBtn);
if (lineSun > 0)
{
monTextBtn.X = Application.GetRealWidth(16 + ((i - 1) - lineSun * 7) * 46);
}
else
{
monTextBtn.X = Application.GetRealWidth(16 + (i - 1) * 46);
}
monTextBtn.Y = Application.GetRealWidth(58 + 10 + lineSun * (30 + 10));
if (i % 7 == 0)
{
//一定执行完再判断是否要换行.
lineSun = lineSun + 1;
}
monTextBtn.MouseUpEventHandler += (sender, e) =>
{
string clickIndex = monTextBtn.Tag.ToString();
monTextBtn.IsSelected = !monTextBtn.IsSelected;
if (monTextBtn.IsSelected)
{
monTextBtn.IsSelected = true;
if (!monList.Contains(clickIndex))
{
//添加选中数据
monList.Add(clickIndex);
}
}
else
{
monTextBtn.IsSelected = false;
if (monList.Contains(clickIndex))
{
//移除选中数据
monList.Remove(clickIndex);
}
}
};
if (monList.Contains(i.ToString()))
{
monTextBtn.IsSelected = true;
}
}
//确定点击事件
monView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
{
if (monList.Count == 0)
{
//提示:还没选中执行周期
return;
}
action(monList);
frameLayout.RemoveFromParent();
};
}
}
}