using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone { /// /// 控件的逻辑 /// public class HdlControlLogic { #region ■ 变量声明___________________________ /// /// 控件的逻辑 /// private static HdlControlLogic m_Current = null; /// /// 控件的逻辑 /// public static HdlControlLogic Current { get { if (m_Current == null) { m_Current = new HdlControlLogic(); } return m_Current; } } #endregion #region ■ 计算控件真实大小___________________ /// /// 计算图片的真实高宽度 /// /// /// public int GetPictrueRealSize(int i_size) { return Application.GetRealWidth(i_size); } /// /// 计算真实宽度(可能以后会变动,所以声明出来有用处) /// /// /// public int GetRealWidth(int i_size) { return Application.GetRealWidth(i_size); } /// /// 计算真实高度度(可能以后会变动,所以声明出来有用处) /// /// /// public int GetRealHeight(int i_size) { return Application.GetRealHeight(i_size); } /// /// 计算真实大小(这个东西有特殊用处,考虑到加长型屏幕的控件,调用此方法) /// /// /// public int GetRealSizeEx(int i_size) { return Application.GetRealWidth(i_size); } #endregion #region ■ 显示底部弹窗的房间列表_____________ /// /// 显示底部弹窗的房间列表(当还没有房间时,会返回false) /// /// 默认选择的房间主键 /// 标题信息 /// 确认选择房间的回调函数(房间ID,房间名(会拼上楼层)) public bool ShowBottomListRoomView(string RoomKey, string titleText, Action SelectRoomEvent) { //楼层列表名字 var listFloorName = new List(); //楼层列表主键 var listFloorKeys = new List(); //房间名字 var listRoomName = new List>(); //房间主键 var listRoomKeys = new List>(); //初始化房间列表数据 bool result = this.InitRoomListData(ref listFloorName, ref listFloorKeys, ref listRoomName, ref listRoomKeys); if (result == false) { return false; } var room = HdlRoomLogic.Current.GetRoomById(RoomKey); int index1 = room != null ? listFloorKeys.IndexOf(room.FloorId) : 0; if (index1 == -1) { index1 = 0; } int index2 = listRoomKeys[index1].IndexOf(RoomKey); if (index2 == -1) { index2 = 0; } if (listFloorKeys.Count == 0) { //无楼层模式 PickerView.Show(listRoomName[0], (value) => { RoomKey = listRoomKeys[0][value]; string roomName = string.Empty; if (RoomKey != string.Empty) { //房间 roomName = listRoomName[0][value]; } else { roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); } SelectRoomEvent?.Invoke(RoomKey, roomName); }, index2, titleText, Language.StringByID(R.MyInternationalizationString.uFinish), Language.StringByID(R.MyInternationalizationString.uCancel)); } else { //有楼层模式 PickerView.ShowSecondary(listFloorName, listRoomName, (value1, value2) => { RoomKey = listRoomKeys[value1][value2]; string roomName = string.Empty; if (RoomKey != string.Empty) { //楼层+房间 roomName = listFloorName[value1] + " " + listRoomName[value1][value2]; } else { roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); } SelectRoomEvent?.Invoke(RoomKey, roomName); }, index1, index2, titleText, Language.StringByID(R.MyInternationalizationString.uFinish), Language.StringByID(R.MyInternationalizationString.uCancel)); } return true; } /// /// 初始化房间列表数据 /// /// 楼层列表名字 /// 楼层列表主键 /// 房间名字 /// 房间主键 private bool InitRoomListData(ref List listFloorName, ref List listFloorKeys, ref List> listRoomName, ref List> listRoomKeys) { var dicFloor = HdlRoomLogic.Current.GetFloorSortList(); if (dicFloor.Count == 0) { //第一位默认添加未分配 var listKeys = new List() { "" }; var listName = new List() { Language.StringByID(R.MyInternationalizationString.uUndistributed) }; //房间名字和主键收集 var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false); foreach (var myRoom in listRoom) { listName.Add(myRoom.Name); listKeys.Add(myRoom.Id); } listRoomName.Add(listName); listRoomKeys.Add(listKeys); } else { //第一位默认添加未分配(未分配放在楼层那个菜单) var listKeys = new List() { "" }; var listName = new List() { "" }; listRoomName.Add(listName); listRoomKeys.Add(listKeys); listFloorKeys.Add(""); listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed)); foreach (string fKeys in dicFloor.Keys) { var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false); if (listRoom.Count > 0) { //楼层名字和主键收集 listFloorKeys.Add(fKeys); listFloorName.Add(dicFloor[fKeys]); //房间名字和主键收集 listName = new List(); listKeys = new List(); foreach (var myRoom in listRoom) { listName.Add(myRoom.Name); listKeys.Add(myRoom.Id); } listRoomName.Add(listName); listRoomKeys.Add(listKeys); } } } //没有建立房间 if (listFloorKeys.Count == 0 && listRoomKeys.Count == 0) { return false; } return true; } #endregion #region ■ 显示启动页_________________________ /// /// 显示启动页 /// public void ShowLoginLoadView() { var loginLoad = new UserView.LoginLoading(); Common.CommonPage.Instance.AddChidren(loginLoad); loginLoad.Show(); } #endregion } }