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/AddScenePage.cs | 961 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 961 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs new file mode 100755 index 0000000..72394ac --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs @@ -0,0 +1,961 @@ +锘縰sing System; +using System.Collections.Generic; +using Microsoft.AppCenter.Crashes; +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 AddScenePage : BindCommonLayout + { + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="doorLock"></param> + public AddScenePage(ZigBee.Device.Panel key, List<ScenesListInfo> gwScenesList) + { + this.currentKey = key; + gwCurScenesList = gwScenesList; + } + + #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>> action; + /// <summary> + /// 淇濆瓨瀹屾垚鎸夐挳 + /// </summary> + Button btnFinifh; + /// <summary> + /// 妤煎眰鏂囨湰 + /// </summary> + Button btnFloorText; + /// <summary> + /// 妤煎眰鍒楄〃 + /// </summary> + Dictionary<string, string> dicFloor; + List<SceneUI> currentKeyAllRoomSceneList = new List<SceneUI>(); + /// <summary> + /// 缃戝叧涓殑鍦烘櫙鍒楄〃 + /// </summary> + public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>(); + #endregion + + /// <summary> + /// 娣诲姞鍦烘櫙椤垫樉绀� + /// </summary> + public void Show() + { + this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.AddScene)); + + 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); + 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); + + midVerticalScrolViewLayout = new VerticalScrolViewLayout() + { + Y = btnMidTopLayout.Bottom, + Height = Application.GetRealHeight(1145), + }; + this.midFrameLayout.AddChidren(midVerticalScrolViewLayout); + + var bottomFrameLayout = new FrameLayout() + { + Width = LayoutParams.MatchParent, + Height = Application.GetRealHeight(127), + Y = Application.GetRealHeight(1472), + }; + this.midFrameLayout.AddChidren(bottomFrameLayout); + + btnFinifh = new Button() + { + Width = Application.GetRealWidth(907), + Gravity = Gravity.CenterHorizontal, + Radius = (uint)Application.GetRealHeight(127) / 2, + TextID = R.MyInternationalizationString.Save, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack, + TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, + IsBold = true, + TextSize = 16, + }; + bottomFrameLayout.AddChidren(btnFinifh); + #endregion + + #region 鏁版嵁澶勭悊 + //鑾峰彇妤煎眰 + dicFloor = HdlRoomLogic.Current.GetFloorSortList(); + currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); + btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); + + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + if (Common.Config.Instance.Home.FloorDics.Count == 0) + { + // 鑾峰彇娌℃湁妤煎眰鎴块棿 + foreach (var room in listAllRoom) + { + if (string.IsNullOrEmpty(room.FloorId)) + { + roomList.Add(room); + } + } + } + else + { + // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� + foreach (var room in listAllRoom) + { + if (room.FloorId == currentKey.currentSelectFloorId) + { + roomList.Add(room); + } + } + } + if (roomList.Count == 0) + { + return; + } + //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍 + GetALlDispalyRoomSceneList(); + + if (currentKeyAllRoomSceneList.Count != 0) + { + if (currentKey.bindList.Count != 0) + { + foreach (var scTemp in currentKeyAllRoomSceneList) + { + var sc = currentKey.bindList.Find(obj => (obj != null) && (obj.BindScenesId == scTemp.Id)); + if (sc != null) + { + targetList.Add(scTemp); + } + } + } + } + + Shared.Common.Room curRoom = roomList[0]; + int index = 0; + RefreshRoomList(curRoom, ref index); + + if (curRoom.ListSceneId.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + if (targetList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + btnFinifh.MouseUpEventHandler += async (sender, e) => + { + bool isFinish = false; + try + { + if (targetList.Count == 0) + { + Application.RunOnMainThread(() => + { + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty); + myTip.Show(Common.CommonPage.Instance); + }); + return; + } + + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + if (currentKey.bindList.Count != 0) + { + var bindResult = await currentKey.ClearBindInfoAsync(); + if (bindResult != null && bindResult.clearBindInfoResponseData != null) + { + if (bindResult.clearBindInfoResponseData.Result != 0) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + CommonPage.Loading.Hide(); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + else + { + currentKey.bindList.Clear(); + } + } + else + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); + myTip.Show(Common.CommonPage.Instance); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + } + + var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger); + if (temp == null || temp.setWritableValueResponData == null) + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); + myTip.Show(Common.CommonPage.Instance); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + if (temp.setWritableValueResponData.Status != 0) + { + Application.RunOnMainThread(() => + { + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode); + myTip.Show(Common.CommonPage.Instance); + CommonPage.Loading.Hide(); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + else + { + currentKey.panelMode = 1; + var addBindeDev = new AddBindData(); + addBindeDev.DeviceAddr = currentKey.DeviceAddr; + addBindeDev.Epoint = currentKey.DeviceEpoint; + foreach (var de in targetList) + { + if (de.DeviceAddr != null) + { + var addBindInfo = new AddBindListObj(); + addBindInfo.BindType = 0; + addBindInfo.BindCluster = 6; + addBindInfo.BindMacAddr = de.DeviceAddr; + addBindInfo.BindEpoint = de.DeviceEpoint; + addBindeDev.BindList.Add(addBindInfo); + } + else + { + var addBindInfo = new AddBindListObj(); + addBindInfo.BindType = 1; + addBindInfo.BindCluster = 6; + var sc1 = (SceneUI)de; + addBindInfo.BindScenesId = sc1.Id; + addBindeDev.BindList.Add(addBindInfo); + } + } + + var dev = new AddedDeviceBindResponseAllData(); + dev = await currentKey.AddDeviceBindAsync(addBindeDev); + if (dev.addedDeviceBindResponseData == null) + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + else + { + if (dev.addedDeviceBindResponseData.Result == 0) + { + currentKey.bindList = dev.addedDeviceBindResponseData.BindList; + targetList.Clear(); + isFinish = true; + if (isFinish) + { + if (action != null) + { + action(currentKey.bindList); + } + this.RemoveFromParent(); + } + else + { + this.RemoveFromParent(); + } + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + }); + } + else if (dev.addedDeviceBindResponseData.Result == 1) + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + new Tip() + { + MaxWidth = 150, + Text = Language.StringByID(R.MyInternationalizationString.BindFailed), + Direction = AMPopTipDirection.Up, + CloseTime = 1 + }.Show(btnFinifh); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + else + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + new Tip() + { + MaxWidth = 150, + Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError), + Direction = AMPopTipDirection.Up, + CloseTime = 1 + }.Show(btnFinifh); + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + } + } + } + catch { } + }; + #endregion + } + + /// <summary> + /// 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� + /// </summary> + /// <param name="gateway">Gateway.</param> + /// <param name="key">Key.</param> + void RefreshRoomList(Shared.Common.Room curRoom, 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 (room.IsLove == true) + { + continue; + } + + //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず + if (room.ListSceneId.Count == 0) + { + continue; + } + else + { + 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; + if (curRoom.ListSceneId.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + if (targetList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + RefreshSceneList(curRoom); + + }; + btnRoom.MouseUpEventHandler += eHandlerRoom; + btnRoomFrameLayout.MouseUpEventHandler += eHandlerRoom; + index++; + } + BindInfo.FinishDisplay(roomTempList, btnFinifh); + RefreshSceneList(curRoom); + } + + /// <summary> + /// 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� + /// </summary> + /// <param name="curRoom"></param> + void RefreshSceneList(Shared.Common.Room curRoom) + { + midVerticalScrolViewLayout.RemoveAll(); + if (curRoom.ListSceneId.Count == 0) + { + return; + } + Button oldScene = null; + int curIndex = 0; + var currentSceneUIList = GetMatchSceneUIList(curRoom); + if (currentSceneUIList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + return; + } + foreach (var scene in currentSceneUIList) + { + #region 缁戝畾琛║I鏄撅紙鏃犳暟鎹鐞嗭級 + var rowLayout = new FrameLayout() + { + Height = Application.GetRealHeight(23 + 127), + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, + }; + midVerticalScrolViewLayout.AddChidren(rowLayout); + + var devicePic = new Button() + { + X = Application.GetMinRealAverage(58), + Y = Application.GetMinRealAverage(46), + Width = Application.GetMinReal(81), + Height = Application.GetMinReal(81), + UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath, + }; + 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, + 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", + Visible = false, + }; + 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 == curRoom.ListSceneId.Count - 1) + { + line2.Visible = false; + } + + #endregion + + if (scene.Name == null) + { + btnBindName.Text = Language.StringByID(R.MyInternationalizationString.Unknown); + } + else + { + btnBindName.Text = scene.Name; + } + if (targetList.Count == 0) + { + foreach (var bindedSc in currentKey.bindList) + { + if (scene.Id == bindedSc.BindScenesId) + { + btnChoose.IsSelected = true; + btnChoose.Visible = true; + oldScene = btnChoose; + targetList.Add(scene); + } + } + } + else + { + foreach (var bindedSc in targetList) + { + var sc1 = (SceneUI)bindedSc; + if (scene.Id == sc1.Id) + { + btnChoose.IsSelected = true; + btnChoose.Visible = true; + oldScene = btnChoose; + } + } + } + + bool IsTip = false; + EventHandler<MouseEventArgs> hander = (sender, e) => + { + if (currentKey.bindList.Count != 0) + { + if (IsTip) + { + return; + } + IsTip = true; + if (btnChoose.IsSelected) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindExist), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnBindName); + return; + } + } + + if (!btnChoose.IsSelected) + { + if (oldScene != null) + { + oldScene.IsSelected = false; + oldScene.Visible = false; + } + oldScene = btnChoose; + oldScene.IsSelected = true; + oldScene.Visible = true; + currentKey.curSelectSceneID = scene.Id.ToString(); + targetList.Clear(); + targetList.Add(scene); + } + if (targetList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + }; + rowLayout.MouseUpEventHandler += hander; + devicePic.MouseUpEventHandler += hander; + btnBindName.MouseUpEventHandler += hander; + btnChoose.MouseUpEventHandler += hander; + curIndex++; + } + if (targetList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.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, + IsBold = true, + TextAlignment = TextAlignment.CenterLeft, + TextID = R.MyInternationalizationString.SelectFloor, + }; + 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, ref index); + RefreshSceneList(roomList[0]); + if (targetList.Count == 0) + { + btnFinifh.Enable = false; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + dialog.Close(); + }; + btnAllMethod.MouseUpEventHandler += hander; + rowFrameLayout.MouseUpEventHandler += hander; + btnMethodText.MouseUpEventHandler += hander; + } + } + + /// <summary> + /// 褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夊満鏅鐞� + /// </summary> + /// <returns></returns> + List<SceneUI> GetALlDispalyRoomSceneList() + { + currentKeyAllRoomSceneList.Clear(); + // 鑾峰彇鎵�鏈夋埧闂� + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + foreach (var room in listAllRoom) + { + //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず + if (room.IsLove == true) + { + continue; + } + //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず + if (room.ListSceneId.Count == 0) + { + continue; + } + + foreach (var sceneId in room.ListSceneId) + { + var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId); + if (scene == null) + { + continue; + } + currentKeyAllRoomSceneList.Add(scene); + } + } + return currentKeyAllRoomSceneList; + } + /// <summary> + /// 鑾峰彇缃戝叧涓瓨鍦ㄧ殑鏈湴鍦烘櫙鍒楄〃 + /// </summary> + /// <param name="curRoom"></param> + /// <returns></returns> + List<SceneUI> GetMatchSceneUIList(Shared.Common.Room curRoom) + { + var tempSceneUIList = new List<SceneUI>(); + foreach (var sceneId in curRoom.ListSceneId) + { + var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId); + if (scene == null) + { + continue; + } + var gwSc = gwCurScenesList.Find(obj => (obj.ScenesId == sceneId)); + if (gwSc != null) + { + tempSceneUIList.Add(scene); + } + } + return tempSceneUIList; + } + } +} -- Gitblit v1.8.0