From fffd8afca5b69a592e9ba8913204f83f478e2f17 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 06 五月 2020 17:28:35 +0800
Subject: [PATCH] 增加获取颜色接口(请合并代码)
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 309 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
new file mode 100755
index 0000000..267b219
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
@@ -0,0 +1,309 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+ /// <summary>
+ /// 鎵�灞炲尯鍩熺殑鎺т欢
+ /// </summary>
+ public class BelongAreaControl : FrameRowControl
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 閫夋嫨鎴块棿鐨勪簨浠�(鎴块棿涓婚敭)
+ /// </summary>
+ public Action<string> SelectRoomEvent = null;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勬埧闂寸殑涓婚敭(妤煎眰涓婚敭鍙互鏃犺)
+ /// </summary>
+ public string RoomKey = string.Empty;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勬ゼ灞備富閿�(娌″繀瑕佸叕寮�鍑哄幓)
+ /// </summary>
+ private string FloorKey = string.Empty;
+ /// <summary>
+ /// 妤煎眰鍒楄〃鍚嶅瓧
+ /// </summary>
+ private List<string> listFloorName = new List<string>();
+ /// <summary>
+ /// 妤煎眰鍒楄〃涓婚敭
+ /// </summary>
+ private List<string> listFloorKeys = new List<string>();
+ /// <summary>
+ /// 鎴块棿鍚嶅瓧
+ /// </summary>
+ private List<List<string>> listRoomName = new List<List<string>>();
+ /// <summary>
+ /// 鎴块棿涓婚敭
+ /// </summary>
+ private List<List<string>> listRoomKeys = new List<List<string>>();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鎵�灞炲尯鍩熺殑鎺т欢
+ /// </summary>
+ /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+ public BelongAreaControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+ {
+ //鍒濆鍖栨暟鎹�
+ this.InitData();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸鍦烘櫙)
+ /// </summary>
+ /// <param name="i_caption">鏍囬鏂囨湰</param>
+ /// <param name="i_roomId">鎴块棿ID</param>
+ public void InitControl(string i_caption, string i_roomId)
+ {
+ var room = HdlRoomLogic.Current.GetRoomById(i_roomId);
+ this.DoInitControl(i_caption, room);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸缃戝叧)
+ /// </summary>
+ /// <param name="i_caption">鏍囬鏂囨湰</param>
+ /// <param name="i_gateway">缃戝叧瀵硅薄</param>
+ public void InitControl(string i_caption, ZigBee.Device.ZbGateway i_gateway)
+ {
+ var room = HdlGatewayLogic.Current.GetRoomByGateway(i_gateway);
+ this.DoInitControl(i_caption, room);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸鍥炶矾)
+ /// </summary>
+ /// <param name="i_caption">鏍囬鏂囨湰</param>
+ /// <param name="i_device">璁惧瀵硅薄</param>
+ public void InitControl(string i_caption, ZigBee.Device.CommonDevice i_device)
+ {
+ var room = HdlRoomLogic.Current.GetRoomByDevice(i_device);
+ this.DoInitControl(i_caption, room);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�(閽堝鐨勬槸鏁翠釜璁惧)
+ /// </summary>
+ /// <param name="i_caption">鏍囬鏂囨湰</param>
+ /// <param name="i_listDevice">璁惧瀵硅薄</param>
+ public void InitControl(string i_caption, List<ZigBee.Device.CommonDevice> i_listDevice)
+ {
+ var room = Common.LocalDevice.Current.GeteRealDeviceRoom(i_listDevice[0]);
+ this.DoInitControl(i_caption, room);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ /// <param name="i_caption"></param>
+ /// <param name="i_Room"></param>
+ private void DoInitControl(string i_caption, Common.Room i_Room)
+ {
+ if (i_Room == null)
+ {
+ //鏈垎閰嶅尯鍩�
+ this.InitControl(i_caption, Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom), false);
+ }
+ else
+ {
+ string roomName = i_Room.Name;
+ this.RoomKey = i_Room.Id;
+ this.FloorKey = i_Room.FloorId;
+ if (Common.Config.Instance.Home.FloorDics.ContainsKey(i_Room.FloorId) == true)
+ {
+ //妤煎眰+鎴块棿
+ roomName = Common.Config.Instance.Home.FloorDics[i_Room.FloorId] + " " + roomName;
+ }
+ this.InitControl(i_caption, roomName, i_Room.IsSharedRoom);
+ }
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ /// <param name="i_caption">鏍囬鏂囨湰</param>
+ /// <param name="i_RoomName">鎴块棿鍚嶅瓧</param>
+ /// <param name="IsSharedRoom">鎴块棿鏄惁鏄垎浜殑</param>
+ private void InitControl(string i_caption, string i_RoomName, bool IsSharedRoom)
+ {
+ //鏍囬
+ var btnCaption = new NormalViewControl(270, 58, true);
+ btnCaption.X = ControlCommonResourse.XXLeft;
+ btnCaption.Gravity = Gravity.CenterVertical;
+ btnCaption.Text = i_caption + "锛�";
+ this.AddChidren(btnCaption, ChidrenBindMode.BindEventOnly);
+
+ //鏄剧ず妗�
+ var txtView = new NormalViewControl(700, true);
+ txtView.X = Application.GetRealWidth(294);
+ txtView.Gravity = Gravity.CenterVertical;
+ txtView.TextColor = UserCenterColor.Current.TextGrayColor1;
+ txtView.Text = i_RoomName;
+ this.AddChidren(txtView, ChidrenBindMode.BindEventOnly);
+
+ if (chidrenYaxis != 0)
+ {
+ btnCaption.Y += chidrenYaxis;
+ txtView.Y += chidrenYaxis;
+ }
+
+ if (IsSharedRoom == true)
+ {
+ //濡傛灉杩欎釜璁惧浣嶄簬鍒嗕韩鐨勬埧闂�
+ this.UseClickStatu = false;
+ return;
+ }
+ if (this.listFloorKeys.Count == 0 && listRoomKeys.Count == 0)
+ {
+ //鎴栬�呮牴鏈氨娌℃湁鍒涘缓鎴块棿锛屽垯涓嶅厑璁告洿鏀�
+ this.UseClickStatu = false;
+ return;
+ }
+ //鍙崇澶�
+ this.AddRightArrow();
+
+ this.ButtonClickEvent += (sender, e) =>
+ {
+ //鍖哄煙閫夋嫨
+ this.ShowSelectRoom(txtView, i_caption);
+ };
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨暟鎹�
+ /// </summary>
+ private void InitData()
+ {
+ 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);
+ this.listFloorKeys.Add("");
+ this.listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed));
+
+ foreach (string fKeys in dicFloor.Keys)
+ {
+ var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false);
+ if (listRoom.Count > 0)
+ {
+ //妤煎眰鍚嶅瓧鍜屼富閿敹闆�
+ this.listFloorKeys.Add(fKeys);
+ this.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);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍖哄煙閫夋嫨___________________________
+
+ /// <summary>
+ /// 鍖哄煙閫夋嫨
+ /// </summary>
+ /// <param name="txtView"></param>
+ /// <param name="i_caption"></param>
+ private void ShowSelectRoom(NormalViewControl txtView, string i_caption)
+ {
+ int index1 = this.listFloorKeys.IndexOf(FloorKey);
+ if (index1 == -1) { index1 = 0; }
+ int index2 = this.listRoomKeys[index1].IndexOf(RoomKey);
+ if (index2 == -1) { index2 = 0; }
+
+ if (this.listFloorKeys.Count == 0)
+ {
+ //鏃犳ゼ灞傛ā寮�
+ PickerView.Show(this.listRoomName[0], (value) =>
+ {
+ RoomKey = this.listRoomKeys[0][value];
+ if (RoomKey != string.Empty)
+ {
+ //鎴块棿
+ txtView.Text = this.listRoomName[0][value];
+ }
+ else
+ {
+ txtView.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+ }
+ this.SelectRoomEvent?.Invoke(RoomKey);
+
+ }, index2, i_caption,
+ Language.StringByID(R.MyInternationalizationString.uFinish),
+ Language.StringByID(R.MyInternationalizationString.uCancel));
+ }
+ else
+ {
+ //鏈夋ゼ灞傛ā寮�
+ PickerView.ShowSecondary(this.listFloorName, this.listRoomName, (value1, value2) =>
+ {
+ FloorKey = this.listFloorKeys[value1];
+ RoomKey = this.listRoomKeys[value1][value2];
+ if (RoomKey != string.Empty)
+ {
+ //妤煎眰+鎴块棿
+ txtView.Text = this.listFloorName[value1] + " " + this.listRoomName[value1][value2];
+ }
+ else
+ {
+ txtView.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+ }
+ this.SelectRoomEvent?.Invoke(RoomKey);
+
+ }, index1, index2, i_caption,
+ Language.StringByID(R.MyInternationalizationString.uFinish),
+ Language.StringByID(R.MyInternationalizationString.uCancel));
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.SelectRoomEvent = null;
+
+ base.RemoveFromParent();
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0