using System;
using System.Collections.Generic;
using Shared.Common;
using Shared.R;
using ZigBee.Device;
namespace Shared.Phone.Device.Logic
{
public class PublicInterface
{
///
/// 单选择
///
/// 显示在哪个界面的父控件
/// 显示数据源
/// 标题文本
/// 之前状态文本
/// 返回值
public void SingleSelectionShow(FrameLayout frame, List list, int titleText, string stateText, Action action)
{
FrameLayout frameLayout = new FrameLayout
{
BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
};
frame.AddChidren(frameLayout);
CompleteView view = new CompleteView();
view.Btntitle.TextID = titleText;
frameLayout.AddChidren(view.Show(list.Count));
UserView.HomePage.Instance.ScrollEnabled = false;
view.Btncancel.MouseUpEventHandler += (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;
//移除fLayout界面
frameLayout.RemoveFromParent();
};
///定义一个Btn记录选中状态
Button checkIconBtn = new Button
{
Tag = "unknown",
};
Button checkTextBtn = new Button
{
Tag = "unknown",
};
for (int i = 0; i < list.Count; i++)
{
string str = list[i];
mFunView mFun= new mFunView();
mFun.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
mFun.titleBtn.SelectedTextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
mFun.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i);
view.fraView.AddChidren(mFun.Show());
mFun.titleBtn.Text = str;
mFun.clickviewBtn.Tag = str;//标记
if (list.Count-1==i) {
//改变最后一条的颜色
mFun.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
}
if (stateText == str)
{
//图标改变
checkIconBtn.Visible = false;
mFun.selectedIconBtn.Visible = true;
checkIconBtn = mFun.selectedIconBtn;
checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString();
//字体改变
checkTextBtn.IsSelected = false;
mFun.titleBtn.IsSelected = true;
checkTextBtn = mFun.titleBtn;
}
//点击事件
mFun.clickviewBtn.MouseUpEventHandler += (sender1, e1) =>
{
//图标改变
checkIconBtn.Visible = false;
mFun.selectedIconBtn.Visible = true;
checkIconBtn = mFun.selectedIconBtn;
checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString();
//字体改变
checkTextBtn.IsSelected = false;
mFun.titleBtn.IsSelected = true;
checkTextBtn = mFun.titleBtn;
};
}
view.Btncomplete.MouseUpEventHandler += (sender1, e1) =>
{
if (checkIconBtn.Tag.ToString() == "unknown")
{
return;
}
action(checkIconBtn.Tag.ToString());
UserView.HomePage.Instance.ScrollEnabled = true;
//移除fLayout界面
frameLayout.RemoveFromParent();
};
}
///
/// 单选择
///
/// 显示在哪个界面的父控件
/// 显示数据源
/// 标题文本
/// 之前状态文本
/// 完成返回值
/// 取消返回值
public void SingleSelectionShow(FrameLayout frame, List list, int titleText, string stateText, Action completeAction, Action cancelAction)
{
FrameLayout frameLayout = new FrameLayout
{
BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
};
frame.AddChidren(frameLayout);
CompleteView view = new CompleteView();
view.Btntitle.TextID = titleText;
frameLayout.AddChidren(view.Show(list.Count));
UserView.HomePage.Instance.ScrollEnabled = false;
EventHandler cancelClick= (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;
//移除fLayout界面
frameLayout.RemoveFromParent();
cancelAction();
};
view.Btncancel.MouseUpEventHandler += cancelClick;
frameLayout.MouseUpEventHandler += cancelClick;
///定义一个Btn记录选中状态
Button checkIconBtn = new Button
{
Tag = "unknown",
};
Button checkTextBtn = new Button
{
Tag = "unknown",
};
for (int i = 0; i < list.Count; i++)
{
string str = list[i];
mFunView mFun = new mFunView();
mFun.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
mFun.titleBtn.SelectedTextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
mFun.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i);
view.fraView.AddChidren(mFun.Show());
mFun.titleBtn.Text = str;
mFun.clickviewBtn.Tag = str;//标记
if (list.Count - 1 == i)
{
//改变最后一条的颜色
mFun.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
}
if (stateText == str)
{
//图标改变
checkIconBtn.Visible = false;
mFun.selectedIconBtn.Visible = true;
checkIconBtn = mFun.selectedIconBtn;
checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString();
//字体改变
checkTextBtn.IsSelected = false;
mFun.titleBtn.IsSelected = true;
checkTextBtn = mFun.titleBtn;
}
//点击事件
mFun.clickviewBtn.MouseUpEventHandler += (sender1, e1) =>
{
//图标改变
checkIconBtn.Visible = false;
mFun.selectedIconBtn.Visible = true;
checkIconBtn = mFun.selectedIconBtn;
checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString();
//字体改变
checkTextBtn.IsSelected = false;
mFun.titleBtn.IsSelected = true;
checkTextBtn = mFun.titleBtn;
};
}
view.Btncomplete.MouseUpEventHandler += (sender1, e1) =>
{
if (checkIconBtn.Tag.ToString() == "unknown")
{
return;
}
completeAction(checkIconBtn.Tag.ToString());
UserView.HomePage.Instance.ScrollEnabled = true;
//移除fLayout界面
frameLayout.RemoveFromParent();
};
}
///
/// 温湿度方法
///
/// 显示在哪个界面的父控件
/// 符号(%,℃)
/// 之前状态(比较符号)
/// 之前状态
/// 返回值
public void TemperatureShow1(FrameLayout frame, string tlite,string symbol, string state1, string state2, Action action, Action cancelAction)
{
FrameLayout frameLayout = new FrameLayout
{
BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
};
frame.AddChidren(frameLayout);
CompleteView view = new CompleteView();
view.Btntitle.Text= tlite;
frameLayout.AddChidren(view.Show(4));
UserView.HomePage.Instance.ScrollEnabled = false;
EventHandler cancelClick = (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;
//移除fLayout界面
frameLayout.RemoveFromParent();
cancelAction();
};
view.Btncancel.MouseUpEventHandler += cancelClick;
frameLayout.MouseUpEventHandler += cancelClick;
#region 布局View
var PickerViewfra = new FrameLayout
{
Y = Application.GetRealHeight(140),
Height = Application.GetRealHeight(640),
};
view.fraView.AddChidren(PickerViewfra);
var mUIPickerView = new UIPickerView
{
Height = Application.GetRealHeight(640 - 5),
};
PickerViewfra.AddChidren(mUIPickerView);
var mList1 = new List { ">", "<", "=", "≥", "≤" };
var mList2 = new List();
var mList3 = new List() { symbol };
for (int i = 1; i <= 100; i++)
{
mList2.Add(i.ToString());
}
mUIPickerView.setNPicker(mList1, mList2, mList3);
#endregion
//默认=,50
int index1 = 2, index2 = 49;
if (state1!="" && state2 != "")
{
string s = "";
switch (state1)
{
case "0":
{
s = ">";
}
break;
case "1":
{
s = "=";
}
break;
case "2":
{
s = "<";
}
break;
case "6":
{
s = "≥";
}
break;
case "7":
{
s = "≤";
}
break;
}
//查找索引
index1 = mList1.IndexOf(s);
//转换温度值/100
string tempValue = (int.Parse(state2) / 100).ToString();
index2 = mList2.IndexOf(tempValue);
}
///更新最新状态;
mUIPickerView.setCurrentItems(index1, index2, 0);
mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
{
//返回索引值
index1 = s1;
index2 = s2;
};
view.Btncomplete.MouseUpEventHandler += (sender1, e1) =>
{
string relationValueStr = "";
switch (mList1[index1])
{
case ">":
{
relationValueStr = "0";
}
break;
case "<":
{
relationValueStr = "2";
}
break;
case "=":
{
relationValueStr = "1";
}
break;
case "≥":
{
relationValueStr = "6";
}
break;
case "≤":
{
relationValueStr = "7";
}
break;
}
///温度进率转换*100
string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString();
action(relationValueStr, tempValueStr);
UserView.HomePage.Instance.ScrollEnabled = true;
//移除fLayout界面
frameLayout.RemoveFromParent();
};
}
public void TemperatureShow(FrameLayout frameLayout, string symbol, string state1, string state2, Action action)
{
#region 布局View
var PickerViewfra = new FrameLayout
{
Y = Application.GetRealHeight(140),
Height = Application.GetRealHeight(640),
};
frameLayout.AddChidren(PickerViewfra);
var mUIPickerView = new UIPickerView
{
Height = Application.GetRealHeight(640 - 5),
};
PickerViewfra.AddChidren(mUIPickerView);
var mList1 = new List { ">", "<", "=", "≥", "≤" };
var mList2 = new List();
var mList3 = new List() { symbol };
for (int i = 1; i <= 100; i++)
{
mList2.Add(i.ToString());
}
mUIPickerView.setNPicker(mList1, mList2, mList3);
#endregion
//默认=,50
int index1 = 2, index2 = 49;
if (state1 != "" && state2 != "")
{
string s = "";
switch (state1)
{
case "0":
{
s = ">";
}
break;
case "1":
{
s = "=";
}
break;
case "2":
{
s = "<";
}
break;
case "6":
{
s = "≥";
}
break;
case "7":
{
s = "≤";
}
break;
}
//查找索引
index1 = mList1.IndexOf(s);
//转换温度值/100
string tempValue = (int.Parse(state2) / 100).ToString();
index2 = mList2.IndexOf(tempValue);
}
///更新最新状态;
mUIPickerView.setCurrentItems(index1, index2, 0);
mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
{
//返回索引值
index1 = s1;
index2 = s2;
string relationValueStr = "";
switch (mList1[index1])
{
case ">":
{
relationValueStr = "0";
}
break;
case "<":
{
relationValueStr = "2";
}
break;
case "=":
{
relationValueStr = "1";
}
break;
case "≥":
{
relationValueStr = "6";
}
break;
case "≤":
{
relationValueStr = "7";
}
break;
}
///温度进率转换*100
string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString();
action(relationValueStr, tempValueStr);
};
}
///
/// 获取界面显示文本列表
///
/// 自己定义自己用
///
public List GetViewList(string isStr)
{
List list = null;
switch (isStr)
{
case "安防":
{
list = new List {
Language.StringByID(MyInternationalizationString.logicathomegarrison),
Language.StringByID(MyInternationalizationString.logicremovehomegarrison),
Language.StringByID(MyInternationalizationString.withdrawal),
Language.StringByID(MyInternationalizationString.urgentwithdrawal),
};
}
break;
case "时间":
{
list = new List {
Language.StringByID(MyInternationalizationString.immediateexecution),
Language.StringByID(MyInternationalizationString.timeframe),
};
}
break;
case "地理围栏":
{
list = new List {
Language.StringByID(MyInternationalizationString.athome),
Language.StringByID(MyInternationalizationString.leavehome),
};
}
break;
case "组合条件":
{
list = new List {
Language.StringByID(MyInternationalizationString.Allconditions),
Language.StringByID(MyInternationalizationString.anycondition),
};
}
break;
case "开关2":
{
list = new List {
Language.StringByID(MyInternationalizationString.open),
Language.StringByID(MyInternationalizationString.close),
};
}
break;
case "开关3":
{
list = new List {
Language.StringByID(MyInternationalizationString.open),
Language.StringByID(MyInternationalizationString.close),
Language.StringByID(MyInternationalizationString.onoff),
};
}
break;
case "空气质量传感器":
{
list = new List {
Language.StringByID(MyInternationalizationString.kongqizhiliang),
Language.StringByID(MyInternationalizationString.pm25),
//Language.StringByID(MyInternationalizationString.co2),
Language.StringByID(MyInternationalizationString.sensortemperature),
Language.StringByID(MyInternationalizationString.sensorhumidity),
};
}
break;
case "空气质量":
{
list = new List {
Language.StringByID(MyInternationalizationString.you),
Language.StringByID(MyInternationalizationString.liang),
Language.StringByID(MyInternationalizationString.cha),
};
}
break;
case "pm2.5":
{
list = new List {
Language.StringByID(MyInternationalizationString.pmyou),
Language.StringByID(MyInternationalizationString.pmliang),
Language.StringByID(MyInternationalizationString.pmqingdu),
Language.StringByID(MyInternationalizationString.pmzhongdu),
};
}
break;
case "co2":
{
list = new List {
Language.StringByID(MyInternationalizationString.co2qingxin),
Language.StringByID(MyInternationalizationString.co2huizhuo),
Language.StringByID(MyInternationalizationString.co2queyang),
Language.StringByID(MyInternationalizationString.co2yanzhongqueyang),
};
}
break;
}
return list;
}
}
}