From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs | 865 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 865 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
new file mode 100755
index 0000000..cdbc6d0
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
@@ -0,0 +1,865 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.UserCenter.Device;
+using ZigBee.Device;
+using static ZigBee.Device.BindObj;
+using static ZigBee.Device.Panel;
+namespace Shared.Phone.UserCenter.DeviceBind
+{
+ public class AddDevicePage : BindCommonLayout
+ {
+ /// 鏋勯�犲嚱鏁�
+ /// </summary>
+ /// <param name="doorLock"></param>
+ public AddDevicePage(ZigBee.Device.Panel key, string deviceBindType)
+ {
+ this.currentKey = key;
+ this.curDeviceBindType = deviceBindType;
+ }
+
+ #region 鍙橀噺鐢虫槑
+ /// <summary>
+ /// 褰撳墠鎸夐敭
+ /// </summary>
+ ZigBee.Device.Panel currentKey;
+ /// <summary>
+ /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
+ /// </summary>
+ VerticalScrolViewLayout midVerticalScrolViewLayout;
+ /// <summary>
+ /// 鏄剧ず鎴块棿鐨剉iew
+ /// </summary>
+ HorizontalScrolViewLayout btnHorizontalScrolViewLayout;
+ /// <summary>
+ /// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛�
+ /// </summary>
+ List<CommonDevice> targetList = new List<CommonDevice>();
+ /// <summary>
+ /// 鎴块棿鍒楄〃
+ /// </summary>
+ List<Room> roomList = new List<Room>();
+ /// <summary>
+ /// 娣诲姞璁惧鍚庣殑鍥炶皟
+ /// </summary>
+ public Action<List<BindListResponseObj>> actionAddDevicePage;
+ /// <summary>
+ /// 褰撳墠璁惧绫诲瀷鍒楄〃
+ /// </summary>
+ List<CommonDevice> curTypeDeviceList = new List<CommonDevice> { };
+ /// <summary>
+ /// 褰撳墠璁惧缁戝畾绫诲瀷
+ /// </summary>
+ string curDeviceBindType = "";
+ /// <summary>
+ /// 妤煎眰鏂囨湰
+ /// </summary>
+ Button btnFloorText;
+ /// <summary>
+ /// 妤煎眰琛�
+ /// </summary>
+ Dictionary<string, string> dicFloor;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勬寜閿ā寮�
+ /// </summary>
+ Button btnChooseKeyMode;
+ /// <summary>
+ /// 鏄惁棣栨杩涘叆璇ラ〉
+ /// </summary>
+ bool IsInitEntry = false;
+ /// <summary>
+ /// 褰撳墠鎸夐敭鐨勬墍鏈夋埧闂磋澶囧垪琛�
+ /// </summary>
+ List<CommonDevice> currentKeyAllRoomDeviceList = new List<CommonDevice>();
+ /// <summary>
+ /// 涓存椂瀛樺偍鐨勭洰鏍囧垪琛�
+ /// </summary>
+ Dictionary<string, CommonDevice> oldTargetList = new Dictionary<string, CommonDevice> { };
+ #endregion
+
+ /// <summary>
+ /// 娣诲姞璁惧鏄剧ず
+ /// </summary>
+ public void Show()
+ {
+ targetList.Clear();
+ string titleText = "";
+ IsInitEntry = true;
+ switch (curDeviceBindType)
+ {
+ case "AddSwitch":
+ titleText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
+ break;
+ case "AddDimmer":
+ titleText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
+ break;
+ case "AddCurtain":
+ titleText = Language.StringByID(R.MyInternationalizationString.AddCurtain);
+ break;
+ }
+ this.TopFrameLayout(this, titleText);
+ EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
+ {
+ RemoveFromParent();
+ };
+ this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 200 - 58);
+ this.btnBack.MouseUpEventHandler += eHandlerBack;
+ this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
+ this.MidFrameLayout(this);
+
+ var btnAddFrameLayout = new FrameLayout
+ {
+ X = Application.GetRealWidth(830),
+ };
+ this.titleFrameLayout.AddChidren(btnAddFrameLayout);
+
+ btnFloorText = new Button
+ {
+ Width = Application.GetRealWidth(110),
+ X = Application.GetRealWidth(15),
+ Text = Language.StringByID(R.MyInternationalizationString.FirstFloor),
+ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextSize = 14,
+ IsBold = true,
+ TextAlignment = TextAlignment.CenterRight,
+ };
+ btnAddFrameLayout.AddChidren(btnFloorText);
+
+ var btnBindDown = new Button
+ {
+ Height = Application.GetMinReal(69),
+ Width = Application.GetMinReal(69),
+ X = Application.GetRealWidth(200 - 77),
+ UnSelectedImagePath = "BindPic/BindDown.png",
+ Gravity = Gravity.CenterVertical,
+ };
+ btnAddFrameLayout.AddChidren(btnBindDown);
+
+ if (Common.Config.Instance.Home.FloorDics.Count == 0)
+ {
+ btnBindDown.Visible = false;
+ }
+
+ btnBindDown.MouseDownEventHandler += (sender, e) =>
+ {
+ SideslipFramelayout();
+ };
+ if (Common.Config.Instance.Home.FloorDics.Count == 0)
+ {
+ btnAddFrameLayout.Width = 0;
+ }
+ else
+ {
+ btnAddFrameLayout.Width = Application.GetRealWidth(200);
+ }
+ MidFrameLayoutContent(btnFloorText);
+ }
+
+ /// <summary>
+ /// 涓儴甯冨眬
+ /// </summary>
+ async void MidFrameLayoutContent(Button btnFloorText)
+ {
+ #region UI
+ var btnMidTopLayout = new FrameLayout
+ {
+ Height = Application.GetRealHeight(389 - 184),
+ };
+ this.midFrameLayout.AddChidren(btnMidTopLayout);
+
+ btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout
+ {
+ X = Application.GetRealWidth(58),
+ };
+ btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
+
+ var btnmidVerticalScrolViewLayoutFrameLayout = new FrameLayout
+ {
+ Y = btnMidTopLayout.Bottom,
+ Height = Application.GetRealHeight(1145),
+ };
+ this.midFrameLayout.AddChidren(btnmidVerticalScrolViewLayoutFrameLayout);
+
+ midVerticalScrolViewLayout = new VerticalScrolViewLayout()
+ {
+ };
+ btnmidVerticalScrolViewLayoutFrameLayout.AddChidren(midVerticalScrolViewLayout);
+
+ var bottomFrameLayout = new FrameLayout()
+ {
+ Width = LayoutParams.MatchParent,
+ Height = Application.GetRealHeight(127),
+ Y = Application.GetRealHeight(1472),
+ };
+ this.midFrameLayout.AddChidren(bottomFrameLayout);
+
+ btnChooseKeyMode = new Button()
+ {
+ Width = Application.GetRealWidth(907),
+ Gravity = Gravity.CenterHorizontal,
+ Radius = (uint)Application.GetRealHeight(127) / 2,
+ TextID = R.MyInternationalizationString.ChooseKeyMode,
+ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+ TextSize = 16,
+ IsBold = true,
+ };
+ bottomFrameLayout.AddChidren(btnChooseKeyMode);
+ #endregion
+
+ #region 鏁版嵁澶勭悊
+ //鑾峰彇妤煎眰
+ dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+ currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
+ btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
+
+ if (Common.Config.Instance.Home.FloorDics.Count == 0)
+ {
+ // 鑾峰彇娌℃湁妤煎眰鎴块棿
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ foreach (var room in listAllRoom)
+ {
+ if (string.IsNullOrEmpty(room.FloorId))
+ {
+ roomList.Add(room);
+ }
+ }
+ }
+ else
+ {
+ // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂�
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ foreach (var room in listAllRoom)
+ {
+ if (room.FloorId == currentKey.currentSelectFloorId)
+ {
+ roomList.Add(room);
+ }
+ }
+ }
+ //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍
+ GetALlDispalyRoomDeviceList();
+ if (currentKeyAllRoomDeviceList.Count != 0)
+ {
+ if (currentKey.bindList.Count != 0)
+ {
+ foreach (var devA in currentKeyAllRoomDeviceList)
+ {
+ var id = devA.DeviceAddr + devA.DeviceEpoint;
+ var dev = currentKey.bindList.Find(obj => (obj != null) && (obj.BindMacAddr + obj.BindEpoint == id));
+ if (dev != null)
+ {
+ if (!oldTargetList.ContainsKey(id))
+ {
+ oldTargetList.Add(id, devA);
+ }
+ }
+ }
+ }
+ }
+ if (oldTargetList.Count != 0)
+ {
+ foreach (var de in oldTargetList.Keys)
+ {
+ var curDev = oldTargetList[de];
+ targetList.Add(curDev);
+ }
+ }
+
+ if (roomList.Count == 0)
+ {
+ return;
+ }
+ Shared.Common.Room curRoom = roomList[0];
+ int index = 0;
+ RefreshRoomList(curRoom, btnChooseKeyMode, ref index);
+
+ if (curTypeDeviceList.Count == 0)
+ {
+ btnChooseKeyMode.Enable = false;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnChooseKeyMode.Enable = true;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ if (targetList.Count == 0)
+ {
+ btnChooseKeyMode.Enable = false;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnChooseKeyMode.Enable = true;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ btnChooseKeyMode.MouseUpEventHandler += (sender, e) =>
+ {
+ if (targetList.Count == 0)
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnChooseKeyMode);
+ return;
+ }
+ this.RemoveFromParent();
+
+ var chooseKeyModePage = new Shared.Phone.UserCenter.DeviceBind.ChooseKeyModePage(currentKey, curDeviceBindType, targetList);
+ Shared.Phone.UserView.HomePage.Instance.AddChidren(chooseKeyModePage);
+ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+ chooseKeyModePage.Show();
+
+ if (actionAddDevicePage != null)
+ {
+ Action<List<BindListResponseObj>> action = (obj) =>
+ {
+ currentKey.bindList = obj;
+ actionAddDevicePage(currentKey.bindList);
+ };
+ chooseKeyModePage.action += action;
+ }
+ };
+ #endregion
+ }
+
+ /// <summary>
+ /// 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀�
+ /// </summary>
+ /// <param name="gateway">Gateway.</param>
+ /// <param name="key">Key.</param>
+ void RefreshRoomList(Shared.Common.Room curRoom, Button btnChooseKeyMode, ref int index2)
+ {
+ if (roomList.Count == 0)
+ {
+ return;
+ }
+ btnHorizontalScrolViewLayout.RemoveAll();
+ Button curentOldRoom = null;
+ FrameLayout curentOldRoomFrameLayout = null;
+ int index = 0;
+ var roomTempList = new List<Room>();
+ for (int i = 0; i < roomList.Count; i++)
+ {
+ var room = roomList[i];
+ //妫�娴嬭鎴块棿鑳藉惁鏄剧ず
+ if (BindInfo.CheckCanShowRoom(room, curDeviceBindType) == false)
+ {
+ continue;
+ }
+ roomTempList.Add(room);
+ if (roomTempList.Count != 0)
+ {
+ curRoom = roomTempList[0];
+ }
+
+ var btnRoomFrameLayout = new FrameLayout
+ {
+ Height = Application.GetMinReal(159),
+ Width = Application.GetMinReal(255),
+ Y = Application.GetRealHeight(23),
+ X = Application.GetRealWidth(5),
+ BackgroundImagePath = "Item/RoomIconBackground.png",
+ BorderWidth = 1,
+ };
+ btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayout);
+
+ var btnRoom = new Button
+ {
+ Height = Application.GetRealHeight(58),
+ Width = Application.GetRealWidth(127),
+ Y = Application.GetRealHeight(58),
+ X = Application.GetRealWidth(14),
+ Text = room.Name,
+ TextSize = 12,
+ TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+ Gravity = Gravity.Center,
+ };
+ btnRoomFrameLayout.AddChidren(btnRoom);
+
+ btnRoom.IsSelected = false;
+ if (index == 0)
+ {
+ btnRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
+ btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+ curentOldRoom = btnRoom;
+ curentOldRoomFrameLayout = btnRoomFrameLayout;
+ }
+ EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) =>
+ {
+ if (!btnRoom.IsSelected)
+ {
+ if (curentOldRoom != null)
+ {
+ curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+ }
+ curentOldRoom = btnRoom;
+ curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+ }
+
+ if (btnRoomFrameLayout.BorderWidth == 1)
+ {
+ if (curentOldRoomFrameLayout != null)
+ {
+ curentOldRoomFrameLayout.BorderWidth = 1;
+ curentOldRoomFrameLayout.BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+ curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackground.png";
+ }
+ curentOldRoomFrameLayout = btnRoomFrameLayout;
+ curentOldRoomFrameLayout.BorderWidth = 0;
+ curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
+ }
+ curRoom = room;
+ currentKey.RoomId = room.Id;
+ RefreshDeviceList(curRoom);
+ if (curTypeDeviceList.Count == 0)
+ {
+ btnChooseKeyMode.Enable = false;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnChooseKeyMode.Enable = true;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ if (targetList.Count == 0)
+ {
+ btnChooseKeyMode.Enable = false;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnChooseKeyMode.Enable = true;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ };
+ btnRoom.MouseUpEventHandler += eHandlerRoom;
+ btnRoomFrameLayout.MouseUpEventHandler += eHandlerRoom;
+ index++;
+ }
+ BindInfo.FinishDisplay(roomTempList, btnChooseKeyMode);
+ RefreshDeviceList(curRoom);
+ }
+
+ /// <summary>
+ /// 褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞�
+ /// </summary>
+ /// <returns></returns>
+ List<CommonDevice> GetALlDispalyRoomDeviceList()
+ {
+ currentKeyAllRoomDeviceList.Clear();
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ switch (curDeviceBindType)
+ {
+ case "AddSwitch":
+ foreach (var r in listAllRoom)
+ {
+ if (r.ListDevice.Count == 0)
+ {
+ continue;
+ }
+ if (r.IsLove == true)
+ {
+ continue;
+ }
+ foreach (var deviceKeys in r.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ var dev = device.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 6));
+ if (dev != null)
+ {
+ currentKeyAllRoomDeviceList.Add(device);
+ }
+ }
+ }
+ }
+ break;
+ case "AddDimmer":
+ foreach (var r in listAllRoom)
+ {
+ if (r.ListDevice.Count == 0)
+ {
+ continue;
+ }
+ if (r.IsLove == true)
+ {
+ continue;
+ }
+ foreach (var deviceKeys in r.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ var dev = device.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 8));
+ if (dev != null)
+ {
+ currentKeyAllRoomDeviceList.Add(device);
+ }
+ }
+ }
+ }
+ break;
+ case "AddCurtain":
+ foreach (var r in listAllRoom)
+ {
+ if (r.ListDevice.Count == 0)
+ {
+ continue;
+ }
+ if (r.IsLove == true)
+ {
+ continue;
+ }
+ foreach (var deviceKeys in r.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ var dev = device.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 258));
+ if (dev != null)
+ {
+ currentKeyAllRoomDeviceList.Add(device);
+ }
+ }
+ }
+ }
+ break;
+ }
+ return currentKeyAllRoomDeviceList;
+ }
+
+ /// <summary>
+ /// 鎸夐敭缁戝畾鐩爣琛ㄦ樉绀�
+ /// </summary>
+ /// <param name="gateway">Gateway.</param>
+ /// <param name="key">Key.</param>
+ void RefreshDeviceList(Shared.Common.Room curRoom)
+ {
+ midVerticalScrolViewLayout.RemoveAll();
+ curTypeDeviceList.Clear();
+ switch (curDeviceBindType)
+ {
+ case "AddSwitch":
+ foreach (var deviceKeys in curRoom.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ var dev = device.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 6));
+ if (dev != null)
+ {
+ curTypeDeviceList.Add(device);
+ }
+ }
+ }
+ break;
+ case "AddDimmer":
+ foreach (var deviceKeys in curRoom.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ var dev = device.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 8));
+ if (dev != null)
+ {
+ curTypeDeviceList.Add(device);
+ }
+ }
+ }
+ break;
+ case "AddCurtain":
+ foreach (var deviceKeys in curRoom.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ var dev = device.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 258));
+ if (dev != null)
+ {
+ curTypeDeviceList.Add(device);
+ }
+ }
+ }
+ break;
+ }
+ int curIndex = 0;
+ foreach (var device in curTypeDeviceList)
+ {
+ curIndex++;
+ if (device != null && device.IsOnline == 0)
+ {
+ continue;
+ }
+ #region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級
+ var rowLayout = new FrameLayout()
+ {
+ Height = Application.GetRealHeight(23 + 127),
+ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+ Tag = device.DeviceEpointName,
+ };
+ midVerticalScrolViewLayout.AddChidren(rowLayout);
+
+ var devicePic = new Button()
+ {
+ X = Application.GetMinRealAverage(58),
+ Y = Application.GetMinRealAverage(46),
+ Width = Application.GetMinRealAverage(81),
+ Height = Application.GetMinRealAverage(81),
+ UnSelectedImagePath = device.IconPath,
+ Tag = device.DeviceEpointName,
+ };
+ rowLayout.AddChidren(devicePic);
+
+ var btnBindName = new Button()
+ {
+ Width = Application.GetRealWidth(790),
+ X = devicePic.Right + Application.GetRealWidth(20),
+ TextColor = Shared.Common.ZigbeeColor.Current.TextBlack,
+ TextAlignment = TextAlignment.CenterLeft,
+ Tag = device.DeviceEpointName,
+ Text = Common.LocalDevice.Current.GetDeviceEpointName(device),
+ TextSize = 15,
+ };
+ rowLayout.AddChidren(btnBindName);
+
+ var btnChoose = new Button()
+ {
+ Width = Application.GetMinReal(60),
+ Height = Application.GetMinReal(60),
+ X = Application.GetRealWidth(861 + 81),
+ Y = Application.GetRealHeight(35),
+ SelectedImagePath = "DoorLock/SelectedIcon.png",
+ TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+ Visible = false,
+ Tag = device.DeviceEpointName,
+ Gravity = Gravity.CenterVertical,
+ };
+
+ rowLayout.AddChidren(btnChoose);
+
+ var line2 = new Button()
+ {
+ Y = rowLayout.Height - 1,
+ X = devicePic.Right + Application.GetRealWidth(20),
+ Width = Application.GetRealWidth(965 - 116),
+ Height = 1,
+ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+ };
+ rowLayout.AddChidren(line2);
+
+ if (curIndex == curTypeDeviceList.Count)
+ {
+ line2.Visible = false;
+ }
+ #endregion
+
+ EventHandler<MouseEventArgs> hander = (sender, e) =>
+ {
+ btnChoose.IsSelected = !btnChoose.IsSelected;
+
+ if (!btnChoose.IsSelected)
+ {
+ targetList.Remove(device);
+ btnChoose.IsSelected = false;
+ btnChoose.Visible = false;
+ }
+ else
+ {
+ if (targetList.Count > 7)
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+ }
+ else
+ {
+ targetList.Add(device);
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ }
+ }
+ if (targetList.Count == 0)
+ {
+ btnChooseKeyMode.Enable = false;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnChooseKeyMode.Enable = true;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ };
+ rowLayout.MouseUpEventHandler += hander;
+ devicePic.MouseUpEventHandler += hander;
+ btnBindName.MouseUpEventHandler += hander;
+ btnChoose.MouseUpEventHandler += hander;
+
+ foreach (var bindedDev in targetList)
+ {
+ var id = device.DeviceAddr + device.DeviceEpoint;
+ if (id == bindedDev.DeviceAddr + bindedDev.DeviceEpoint)
+ {
+ btnChoose.IsSelected = true;
+ btnChoose.Visible = true;
+ }
+ }
+ }
+ if (targetList.Count == 0)
+ {
+ btnChooseKeyMode.Enable = false;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+ }
+ else
+ {
+ btnChooseKeyMode.Enable = true;
+ btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+ }
+
+ /// <summary>
+ /// 閫夋嫨妤煎眰鐨勪晶杈规爮
+ /// </summary>
+ void SideslipFramelayout()
+ {
+ var dialog = new Dialog
+ {
+ };
+ dialog.Show();
+
+ var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
+ dialog.AddChidren(flMain);
+ flMain.MouseUpEventHandler += (sender11, e11) =>
+ {
+ dialog.Close();
+ };
+
+ var sidelipFrameLayout = new FrameLayout()
+ {
+ Height = Application.GetMinReal(783),
+ Width = Application.GetMinReal(449),
+ Y = Application.GetRealHeight(161),
+ X = Application.GetRealWidth(596),
+ BackgroundImagePath = "DoorLock/SideslipPic.png",
+ };
+ flMain.AddChidren(sidelipFrameLayout);
+
+ var btnSelectFloor = new Button()
+ {
+ Width = Application.GetRealWidth(200),
+ Height = Application.GetRealHeight(58),
+ X = Application.GetRealWidth(81),
+ Y = Application.GetRealHeight(81),
+ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextID = R.MyInternationalizationString.SelectFloor,
+ IsBold = true,
+ };
+ sidelipFrameLayout.AddChidren(btnSelectFloor);
+
+ var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
+ {
+ Height = Application.GetRealHeight(600),
+ Y = btnSelectFloor.Bottom,
+ };
+ sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
+
+ Button oldbutton = null;
+ Button oldbuttonText = null;
+ foreach (var floorId in dicFloor.Keys)
+ {
+ var rowFrameLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(150),
+ LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+ X = Application.GetRealWidth(81),
+ };
+ sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
+
+ var btnAllMethod = new Button()
+ {
+ Width = Application.GetMinReal(81),
+ Height = Application.GetMinReal(81),
+ Y = Application.GetRealHeight(55),
+ UnSelectedImagePath = "Floor/Floor.png",
+ SelectedImagePath = "Floor/FloorSelected.png",
+ };
+ rowFrameLayout.AddChidren(btnAllMethod);
+
+ var btnMethodText = new Button()
+ {
+ Width = Application.GetRealWidth(311),
+ Height = Application.GetRealHeight(58),
+ X = Application.GetRealWidth(92),
+ Y = Application.GetRealHeight(69),
+ TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ Text = dicFloor[floorId],
+ };
+ rowFrameLayout.AddChidren(btnMethodText);
+
+ if (currentKey.currentSelectFloorId == floorId)
+ {
+ btnAllMethod.IsSelected = true;
+ btnAllMethod.IsBold = true;
+ btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ }
+
+ string curFloorId = floorId;
+ EventHandler<MouseEventArgs> hander = (sender, e) =>
+ {
+ if (currentKey.currentSelectFloorId == curFloorId)
+ {
+ return;
+ }
+ currentKey.currentSelectFloorId = curFloorId;
+ btnFloorText.Text = dicFloor[floorId];
+ roomList.Clear();
+
+ if (!btnMethodText.IsSelected)
+ {
+ if (oldbutton != null)
+ {
+ oldbutton.IsSelected = false;
+ }
+ if (oldbuttonText != null)
+ {
+ oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+ }
+ oldbutton = btnMethodText;
+ oldbuttonText = btnMethodText;
+ btnMethodText.IsSelected = true;
+ oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ oldbuttonText.IsBold = true;
+ }
+
+ //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂�
+ var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+ foreach (var room in listAllRoom)
+ {
+ if (room.FloorId == currentKey.currentSelectFloorId)
+ {
+ roomList.Add(room);
+ }
+ }
+ Shared.Common.Room curRoom = new Shared.Common.Room();
+ if (roomList.Count != 0)
+ {
+ curRoom = roomList[0];
+ }
+ else
+ {
+ curRoom = new Shared.Common.Room();
+ roomList.Add(curRoom);
+ }
+ int index = 0;
+ RefreshRoomList(curRoom, btnChooseKeyMode, ref index);
+
+ dialog.Close();
+ };
+ btnAllMethod.MouseUpEventHandler += hander;
+ rowFrameLayout.MouseUpEventHandler += hander;
+ btnMethodText.MouseUpEventHandler += hander;
+ }
+ }
+ }
+}
--
Gitblit v1.8.0