From e79b65b97a8ae1eae5ee172dea1b52d041006599 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 02 九月 2020 17:24:32 +0800
Subject: [PATCH] 2020-09-02-3
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs | 180 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 145 insertions(+), 35 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
index dff6a77..5a30994 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
@@ -32,41 +32,6 @@
#endregion
- #region 鈻� 瀛愭帶浠剁殑Y杞村潗鏍嘷___________________
-
- /// <summary>
- /// 鎸囧畾浣嶇疆绫诲瀷鑾峰彇Rowlayout鐨勫瓙鎺т欢鐨刌杞村潗鏍�(璇风‘淇濆瓙鎺т欢涓嶅ぇ浜庣埗瀹瑰櫒)
- /// </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 鈻� 璁$畻鍥剧墖鐪熷疄澶у皬___________________
/// <summary>
@@ -80,5 +45,150 @@
}
#endregion
+
+ #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________
+
+ /// <summary>
+ /// 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛�(褰撹繕娌℃湁鎴块棿鏃�,浼氳繑鍥瀎alse)
+ /// </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
}
}
--
Gitblit v1.8.0