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 TemperatureShow1(FrameLayout frameLayout, CommonDevice common, string state1, string state2, Action action) { //FrameLayout frameLayout = new FrameLayout //{ // BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor, //}; //frame.AddChidren(frameLayout); CompleteView view = new CompleteView(); view.Btntitle.Text= LocalDevice.Current.GetDeviceEpointName(common); frameLayout.AddChidren(view.Show(4)); UserView.HomePage.Instance.ScrollEnabled = false; view.Btncancel.MouseUpEventHandler += (sender, e) => { UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); }; #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(); for (int i = 1; i <= 100; i++) { mList2.Add(i.ToString()); } switch (common.Type) { case DeviceType.TemperatureSensor: { var temperatureSensor = common as TemperatureSensor; if (temperatureSensor.SensorDiv == 1) { mList3.Add("℃"); } else { mList3.Add("%"); } } break; } 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); }; 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, CommonDevice common, 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(); for (int i = 1; i <= 100; i++) { mList2.Add(i.ToString()); } switch (common.Type) { case DeviceType.TemperatureSensor: { var temperatureSensor = common as TemperatureSensor; if (temperatureSensor.SensorDiv == 1) { mList3.Add("℃"); } else { mList3.Add("%"); } } break; } 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; } return list; } } }