old mode 100755
new mode 100644
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 子控件的Y轴坐标____________________
|
| | |
|
| | | /// <summary>
|
| | | /// 指定位置类型获取Rowlayout的子控件的Y轴坐标(请确保子控件不大于父容器)
|
| | | /// </summary>
|
| | | /// <param name="fatherCtrHeight">父控件的真实高度</param>
|
| | | /// <param name="ctrHeight">子控件的真实高度</param>
|
| | | /// <param name="alignment">位置对齐方式</param>
|
| | | /// <param name="Space">上下间的空白间距,省略时,取行控件共通变量的值。设置为-1时,不计算空白间距</param>
|
| | | /// <returns></returns>
|
| | | public int GetControlChidrenYaxis(int fatherCtrHeight, int ctrHeight, UViewAlignment alignment, int Space = 0)
|
| | | {
|
| | | if (Space < 0)
|
| | | {
|
| | | //不计算间距值
|
| | | Space = 0;
|
| | | }
|
| | |
|
| | | if (alignment == UViewAlignment.Center)
|
| | | {
|
| | | return fatherCtrHeight / 2 - ctrHeight / 2;
|
| | | }
|
| | | else if (alignment == UViewAlignment.Top)
|
| | | {
|
| | | return (fatherCtrHeight / 2 - Space / 2) / 2 - ctrHeight / 2;
|
| | | }
|
| | | else
|
| | | {
|
| | | int top = fatherCtrHeight / 2 + Space / 2;
|
| | | return top + (fatherCtrHeight - top) / 2 - ctrHeight / 2;
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 计算图片真实大小___________________
|
| | | #region ■ 计算控件真实大小___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 计算图片的真实高宽度
|
| | |
| | | return Application.GetRealWidth(i_size);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 计算真实宽度(可能以后会变动,所以声明出来有用处)
|
| | | /// </summary>
|
| | | /// <param name="i_size"></param>
|
| | | /// <returns></returns>
|
| | | public int GetRealWidth(int i_size)
|
| | | {
|
| | | return Application.GetRealWidth(i_size);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 计算真实高度度(可能以后会变动,所以声明出来有用处)
|
| | | /// </summary>
|
| | | /// <param name="i_size"></param>
|
| | | /// <returns></returns>
|
| | | public int GetRealHeight(int i_size)
|
| | | {
|
| | | return Application.GetRealHeight(i_size);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 计算真实大小(这个东西有特殊用处,考虑到加长型屏幕的控件,调用此方法)
|
| | | /// </summary>
|
| | | /// <param name="i_size"></param>
|
| | | /// <returns></returns>
|
| | | public int GetRealSizeEx(int i_size)
|
| | | {
|
| | | return Application.GetRealWidth(i_size);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 显示底部弹窗的房间列表_____________
|
| | |
|
| | | /// <summary>
|
| | | /// 显示底部弹窗的房间列表(当还没有房间时,会返回false)
|
| | | /// </summary>
|
| | | /// <param name="RoomKey">默认选择的房间主键</param>
|
| | | /// <param name="titleText">标题信息</param>
|
| | | /// <param name="SelectRoomEvent">确认选择房间的回调函数(房间ID,房间名(会拼上楼层))</param>
|
| | | public bool ShowBottomListRoomView(string RoomKey, string titleText, Action<string, string> SelectRoomEvent)
|
| | | {
|
| | | //楼层列表名字
|
| | | var listFloorName = new List<string>();
|
| | | //楼层列表主键
|
| | | var listFloorKeys = new List<string>();
|
| | | //房间名字
|
| | | var listRoomName = new List<List<string>>();
|
| | | //房间主键
|
| | | var listRoomKeys = new List<List<string>>();
|
| | |
|
| | | //初始化房间列表数据
|
| | | 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;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化房间列表数据
|
| | | /// </summary>
|
| | | /// <param name="listFloorName">楼层列表名字</param>
|
| | | /// <param name="listFloorKeys">楼层列表主键</param>
|
| | | /// <param name="listRoomName">房间名字</param>
|
| | | /// <param name="listRoomKeys">房间主键</param>
|
| | | private bool InitRoomListData(ref List<string> listFloorName, ref List<string> listFloorKeys, ref List<List<string>> listRoomName, ref List<List<string>> listRoomKeys)
|
| | | {
|
| | | var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
|
| | | if (dicFloor.Count == 0)
|
| | | {
|
| | | //第一位默认添加未分配
|
| | | var listKeys = new List<string>() { "" };
|
| | | var listName = new List<string>() { 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<string>() { "" };
|
| | | var listName = new List<string>() { "" };
|
| | | 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<string>();
|
| | | listKeys = new List<string>();
|
| | | 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 ■ 显示底部弹窗的房间列表_____________
|
| | |
|
| | | /// <summary>
|
| | | /// 显示底部弹窗的时间列表
|
| | | /// </summary>
|
| | | /// <param name="hKey">选择的时间主键</param>
|
| | | /// <param name="mKey">选择的分钟主键</param> |
| | | /// <param name="titleText">标题信息</param>
|
| | | /// <param name="SelectTimeEvent">确认选择时间的回调函数 </param>
|
| | | /// <param name="type">晾衣架时间 :1烘干,2:风干;3消毒</param>
|
| | | public bool ShowBottomListTimeView(string hKey, string mKey, string titleText, Action<string, string> SelectTimeEvent, int type)
|
| | | { |
| | | //小时列表名字 |
| | | var listHourName = new List<string>(); |
| | | //小时列表主键 |
| | | var listHourKeys = new List<string>(); |
| | | //分钟名字 |
| | | var listMinName = new List<List<string>>(); |
| | | //分钟主键 |
| | | var listMinKeys = new List<List<string>>(); |
| | | var listKeys = new List<string>() { "" }; |
| | | var listName = new List<string>() { "" }; |
| | | if (type == 3) |
| | | { |
| | | //名字和键收集 |
| | | for (int i = 1; i < 31; i++) |
| | | { |
| | | listName.Add(i.ToString()); |
| | | listKeys.Add(i.ToString()); |
| | | } |
| | | listMinName.Add(listName); |
| | | listMinKeys.Add(listKeys); |
| | | } |
| | | else |
| | | { |
| | | //名字和键收集 |
| | | for (int i = 0; i < 4; i++) |
| | | { |
| | | listHourName.Add(i.ToString()); |
| | | listHourKeys.Add((i + 1).ToString()); |
| | | } |
| | | for (int i = 0; i < 60; i++) |
| | | { |
| | | listName.Add(i.ToString()); |
| | | listKeys.Add((i + 1).ToString()); |
| | | } |
| | | listMinName.Add(listName); |
| | | listMinKeys.Add(listKeys); |
| | | } |
| | | |
| | | int index1 = hKey != null ? int.Parse(hKey) : 0; |
| | | int index2 = mKey != null ? int.Parse(mKey) : 0; |
| | | |
| | | if (type == 3) |
| | | { |
| | | //只有分钟,消毒时间 |
| | | PickerView.Show( |
| | | listMinName[0], |
| | | (value) => |
| | | { |
| | | mKey = listMinKeys[0][value]; |
| | | SelectTimeEvent?.Invoke(mKey, listMinKeys[0][value]); |
| | | }, |
| | | index2, |
| | | titleText, |
| | | Language.StringByID(R.MyInternationalizationString.uFinish), |
| | | Language.StringByID(R.MyInternationalizationString.uCancel)); |
| | | } |
| | | else |
| | | { |
| | | //有小时,分钟 |
| | | PickerView.ShowSecondary(listHourName, listMinName, (value1, value2) => |
| | | { |
| | | mKey = listMinKeys[value1][value2]; |
| | | string name = listHourName[value1] + " " + listMinName[value1][value2]; |
| | | SelectTimeEvent?.Invoke(mKey, name); |
| | | |
| | | }, index1, index2, titleText, |
| | | Language.StringByID(R.MyInternationalizationString.uFinish), |
| | | Language.StringByID(R.MyInternationalizationString.uCancel)); |
| | | } |
| | | return true;
|
| | | } |
| | | #endregion |
| | | |
| | | }
|
| | | }
|