using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
using Shared.R;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.Device.Logic
|
{
|
public class PublicInterface
|
{
|
|
|
/// <summary>
|
/// 单选择
|
/// </summary>
|
/// <param name="frame">显示在哪个界面的父控件</param>
|
/// <param name="list">显示数据源</param>
|
/// <param name="titleText">标题文本</param>
|
/// <param name="stateText">之前状态文本</param>
|
/// <param name="action">返回值</param>
|
public void SingleSelectionShow(FrameLayout frame, List<string> list, int titleText, string stateText, Action<string> 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();
|
};
|
|
}
|
|
|
/// <summary>
|
/// 单选择
|
/// </summary>
|
/// <param name="frame">显示在哪个界面的父控件</param>
|
/// <param name="list">显示数据源</param>
|
/// <param name="titleText">标题文本</param>
|
/// <param name="stateText">之前状态文本</param>
|
/// <param name="completeAction">完成返回值</param>
|
/// <param name="cancelAction">取消返回值</param>
|
public void SingleSelectionShow(FrameLayout frame, List<string> list, int titleText, string stateText, Action<string> 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<MouseEventArgs> 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();
|
};
|
|
}
|
|
/// <summary>
|
/// 温湿度方法
|
/// </summary>
|
/// <param name="frame">显示在哪个界面的父控件</param>
|
/// <param name="symbol">符号(%,℃)</param>
|
/// <param name="state1">之前状态(比较符号)</param>
|
/// <param name="state2">之前状态</param>
|
/// <param name="action">返回值</param>
|
public void TemperatureShow1(FrameLayout frame, string tlite,string symbol, string state1, string state2, Action<string, string> 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<MouseEventArgs> 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<string> { ">", "<", "=", "≥", "≤" };
|
var mList2 = new List<string>();
|
var mList3 = new List<string>() { 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<string, string> 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<string> { ">", "<", "=", "≥", "≤" };
|
var mList2 = new List<string>();
|
var mList3 = new List<string>() { 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);
|
};
|
|
}
|
|
/// <summary>
|
/// 获取界面显示文本列表
|
/// </summary>
|
/// <param name="isStr">自己定义自己用</param>
|
/// <returns></returns>
|
public List<string> GetViewList(string isStr)
|
{
|
List<string> list = null;
|
switch (isStr)
|
{
|
case "安防":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.logicathomegarrison),
|
Language.StringByID(MyInternationalizationString.logicremovehomegarrison),
|
Language.StringByID(MyInternationalizationString.withdrawal),
|
Language.StringByID(MyInternationalizationString.urgentwithdrawal),
|
};
|
}
|
break;
|
case "时间":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.immediateexecution),
|
Language.StringByID(MyInternationalizationString.timeframe),
|
};
|
}
|
break;
|
case "地理围栏":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.athome),
|
Language.StringByID(MyInternationalizationString.leavehome),
|
};
|
}
|
break;
|
case "组合条件":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.Allconditions),
|
Language.StringByID(MyInternationalizationString.anycondition),
|
};
|
}
|
break;
|
case "开关2":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.open),
|
Language.StringByID(MyInternationalizationString.close),
|
};
|
}
|
break;
|
case "开关3":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.open),
|
Language.StringByID(MyInternationalizationString.close),
|
Language.StringByID(MyInternationalizationString.onoff),
|
};
|
}
|
break;
|
case "空气质量传感器":
|
{
|
list = new List<string> {
|
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<string> {
|
Language.StringByID(MyInternationalizationString.you),
|
Language.StringByID(MyInternationalizationString.liang),
|
Language.StringByID(MyInternationalizationString.cha),
|
};
|
}
|
break;
|
case "pm2.5":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.pmyou),
|
Language.StringByID(MyInternationalizationString.pmliang),
|
Language.StringByID(MyInternationalizationString.pmqingdu),
|
Language.StringByID(MyInternationalizationString.pmzhongdu),
|
};
|
}
|
break;
|
case "co2":
|
{
|
list = new List<string> {
|
Language.StringByID(MyInternationalizationString.co2qingxin),
|
Language.StringByID(MyInternationalizationString.co2huizhuo),
|
Language.StringByID(MyInternationalizationString.co2queyang),
|
Language.StringByID(MyInternationalizationString.co2yanzhongqueyang),
|
};
|
}
|
break;
|
|
}
|
return list;
|
}
|
}
|
}
|