From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 743 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 485 insertions(+), 258 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs index 4e81bfb..9843be4 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs @@ -7,6 +7,7 @@ using ZigBee.Device; using static ZigBee.Device.BindObj; using static ZigBee.Device.Panel; + namespace Shared.Phone.UserCenter.DeviceBind { public class AddScenePage : BindCommonLayout, ZigBee.Common.IStatus @@ -19,16 +20,16 @@ { Shared.Application.RunOnMainThread(() => { - //var dev = common as Panel; }); } /// 鏋勯�犲嚱鏁� /// </summary> /// <param name="doorLock"></param> - public AddScenePage(ZigBee.Device.Panel key) + public AddScenePage(ZigBee.Device.Panel key, List<ScenesListInfo> gwScenesList) { this.currentKey = key; + gwCurScenesList = gwScenesList; } #region 鈼� 鍙橀噺鐢虫槑__________________________ @@ -39,11 +40,19 @@ /// <summary> /// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛� /// </summary> - List<CommonDevice> targetList = new List<CommonDevice>(); - List<Room> roomList = new List<Room>(); + List<CommonDevice> targetList = new List<CommonDevice>();//涓存椂鐩爣鍒楄〃 + List<Room> roomList = new List<Room>();//鏈湴鎴块棿鍒楄〃 public Action<List<BindListResponseObj>> action; + Button btnFinifh; + Button btnFloorText; + Dictionary<string, string> dicFloor;//妤煎眰鍒楄〃 + List<SceneUI> currentKeyAllRoomSceneList = new List<SceneUI>(); + public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>();//缃戝叧涓殑鍦烘櫙鍒楄〃 #endregion + /// <summary> + /// 娣诲姞鍦烘櫙椤垫樉绀� + /// </summary> public void Show() { this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.AddScene)); @@ -60,20 +69,18 @@ var btnAddFrameLayout = new FrameLayout { X = Application.GetRealWidth(830), - Width = Application.GetRealWidth(0),//200 - BackgroundColor = 0xff00ff00, }; this.titleFrameLayout.AddChidren(btnAddFrameLayout); - var btnFloorText = new Button + btnFloorText = new Button { Width = Application.GetRealWidth(110), X = Application.GetRealWidth(15), Text = Language.StringByID(R.MyInternationalizationString.FirstFloor), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, - TextSize = 15, + TextSize = 14, + IsBold = true, TextAlignment = TextAlignment.CenterRight, - BackgroundColor = 0xffff0000, }; btnAddFrameLayout.AddChidren(btnFloorText); @@ -81,20 +88,27 @@ { Height = Application.GetRealHeight(69), Width = Application.GetRealWidth(69), - X = Application.GetRealWidth(200 - 69), + X = Application.GetRealWidth(200 - 77), UnSelectedImagePath = "BindPic/BindDown.png", Gravity = Gravity.CenterVertical, - BackgroundColor = 0xff0000ff, }; btnAddFrameLayout.AddChidren(btnBindDown); btnBindDown.MouseDownEventHandler += (sender, e) => { SideslipFramelayout(); }; - MidFrameLayoutContent(); + if (Common.Config.Instance.Home.FloorDics.Count == 0) + { + btnAddFrameLayout.Width = 0; + } + else + { + btnAddFrameLayout.Width = Application.GetRealWidth(200); + } + MidFrameLayoutContent(btnFloorText); } - async void MidFrameLayoutContent() + async void MidFrameLayoutContent(Button btnFloorText) { #region UI var btnMidTopLayout = new FrameLayout @@ -105,43 +119,93 @@ 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(1737 - 1472), + Height = Application.GetRealHeight(127), Y = Application.GetRealHeight(1472), }; this.midFrameLayout.AddChidren(bottomFrameLayout); - var btnFinifh = new Button() + btnFinifh = new Button() { Width = Application.GetRealWidth(907), - Height = Application.GetRealHeight(127), Gravity = Gravity.CenterHorizontal, - Radius = (uint)Application.GetRealHeight(120) / 2, + 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 鏁版嵁澶勭悊 - roomList = Shared.Common.Room.Lists; + #region 鏁版嵁澶勭悊 + //鑾峰彇妤煎眰 + dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); + btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); + + if (Common.Config.Instance.Home.FloorDics.Count == 0) + { + // 鑾峰彇娌℃湁妤煎眰鎴块棿 + foreach (var room in Shared.Common.Room.Lists) + { + if (string.IsNullOrEmpty(room.FloorId)) + { + roomList.Add(room); + } + } + } + else + { + // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + 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, btnFinifh, ref index); - RefreshSceneList(roomList[index]); + RefreshRoomList(curRoom, ref index); + //RefreshSceneList(roomList[index]); if (curRoom.SceneUIList.Count == 0) { @@ -153,189 +217,260 @@ btnFinifh.Enable = true; btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } - - btnFinifh.MouseUpEventHandler += async (sender, e) => + if (targetList.Count == 0) { btnFinifh.Enable = false; btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; - if (currentKey.bindList.Count != 0) + } + else + { + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + btnFinifh.MouseUpEventHandler += async (sender, e) => + { + bool isFinish = false; + try { - var bindResult = await currentKey.ClearBindInfoAsync(); - if (bindResult.clearBindInfoResponseData != null) + if (targetList.Count == 0) { - if (bindResult.clearBindInfoResponseData.Result != 0) + Application.RunOnMainThread(() => { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + 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(); - this.RemoveFromParent(); + 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 { - currentKey.bindList.Clear(); - } - } - } - - var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger); - if (temp.setWritableValueResponData?.Status != 0) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh); - 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); - } - } - bool isFinish = false; - try - { - CommonPage.Loading.Start(""); - var dev = new AddedDeviceBindResponseAllData(); - dev = await currentKey.AddDeviceBindAsync(addBindeDev); - foreach (var ab in dev.addedDeviceBindResponseData?.BindList) - { - switch (ab.Result) + if (dev.addedDeviceBindResponseData.Result == 0) { - case 0: - currentKey.bindList.Add((BindListResponseObj)ab); - - for (int i = 0; i < targetList.Count; i++) + currentKey.bindList = dev.addedDeviceBindResponseData.BindList; + targetList.Clear(); + isFinish = true; + if (isFinish) + { + if (action != null) { - var de = targetList[i]; - var sc1 = new SceneUI(); - if (de.DeviceAddr == null) - { - sc1 = (SceneUI)de; - - if (sc1.Id == ab.BindScenesId) - { - targetList.RemoveAt(i); - i--; - } - } + action(currentKey.bindList); } - isFinish = true; - break; - case 1: + 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.BindErrorAbsence), + Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - break; - case 2: - switch (dev.addBindResultResponseData?.Result) - { - case 0: - currentKey.bindList.Add((BindListResponseObj)ab); - for (int i = 0; i < targetList.Count; i++) - { - var de = targetList[i]; - if (de.DeviceAddr == ab.BindMacAddr && de.DeviceEpoint == ab.BindEpoint) - { - targetList.RemoveAt(i); - i--; - } - } - isFinish = true; - break; - case 140: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - break; - default: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - break; - } - break; - case 3: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - break; - case 4: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - break; - default: - break; + }); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; } - } - } - catch { } - finally - { - if (isFinish) - { - if (action != null) + else { - action(currentKey.bindList); + 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; } - this.RemoveFromParent(); } - else - { - this.RemoveFromParent(); - } - CommonPage.Loading.Hide(); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } } + catch { } }; - - #endregion + #endregion } - // 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� - void RefreshRoomList(Shared.Common.Room curRoom, Button btnFinish, ref int index2) + /// <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.SceneUIList.Count == 0) + { + continue; + } + else + { + roomTempList.Add(room); + } + if (roomTempList.Count != 0) + { + curRoom = roomTempList[0]; } var btnRoomFrameLayout = new FrameLayout { - Height = Application.GetRealHeight(78), - Width = Application.GetRealWidth(187), - Y = Application.GetRealHeight(58), - X = Application.GetRealWidth(58), - Radius = (uint)Application.GetMinRealAverage(78 / 2), - BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange, + Height = Application.GetRealHeight(159), + Width = Application.GetRealWidth(255), + Y = Application.GetRealHeight(23), + X = Application.GetRealWidth(5), + BackgroundImagePath = "Item/RoomIconBackground.png", BorderWidth = 1, }; btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayout); @@ -350,52 +485,17 @@ TextSize = 12, TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, Gravity = Gravity.Center, - //SelectedImagePath = "BindPic/BindRoomColorOn.png", - //UnSelectedImagePath = "BindPic/BindRoomColor.png", }; btnRoomFrameLayout.AddChidren(btnRoom); btnRoom.IsSelected = false; - if (currentKey.RoomId == "") + if (index == 0) { - if (i == index) - { - btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BorderWidth = 0; - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; - curentOldRoom = btnRoom; - curentOldRoomFrameLayout = btnRoomFrameLayout; - } - else - { - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - btnRoom.IsSelected = false; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; - btnRoomFrameLayout.BorderWidth = 1; - } + btnRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; + btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; + curentOldRoom = btnRoom; + curentOldRoomFrameLayout = btnRoomFrameLayout; } - else - { - if (currentKey.RoomId == room.Id) - { - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; - btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BorderWidth = 0; - curentOldRoom = btnRoom; - curentOldRoomFrameLayout = btnRoomFrameLayout; - curRoom = room; - index2 = i; - } - else - { - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; - btnRoomFrameLayout.BorderWidth = 1; - } - } - EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) => { if (!btnRoom.IsSelected) @@ -403,71 +503,73 @@ if (curentOldRoom != null) { curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - curentOldRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; } curentOldRoom = btnRoom; curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; - curentOldRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - curRoom = room; - currentKey.RoomId = room.Id; - if (curRoom.SceneUIList.Count == 0) - { - btnFinish.Enable = false; - btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; - } - else - { - btnFinish.Enable = true; - btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } - RefreshSceneList(curRoom); } - if (btnRoomFrameLayout.BorderWidth == 1) { if (curentOldRoomFrameLayout != null) { curentOldRoomFrameLayout.BorderWidth = 1; - curentOldRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; + curentOldRoomFrameLayout.BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange; + curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackground.png"; } curentOldRoomFrameLayout = btnRoomFrameLayout; curentOldRoomFrameLayout.BorderWidth = 0; - curentOldRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - curRoom = room; - currentKey.RoomId = room.Id; - if (curRoom.SceneUIList.Count == 0) - { - btnFinish.Enable = false; - btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; - } - else - { - btnFinish.Enable = true; - btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } - RefreshSceneList(curRoom); + curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; } + curRoom = room; + currentKey.RoomId = room.Id; + if (curRoom.SceneUIList.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; - - var btnEmpty = new Button - { - Width = Application.GetRealWidth(58), - X = btnRoom.Right, - }; - btnHorizontalScrolViewLayout.AddChidren(btnEmpty); + index++; } + BindInfo.FinishDisplay(roomTempList, btnFinifh); + RefreshSceneList(curRoom); } //鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� void RefreshSceneList(Shared.Common.Room curRoom) { midVerticalScrolViewLayout.RemoveAll(); - + if (curRoom.SceneUIList.Count == 0) + { + return; + } Button oldScene = null; int curIndex = 0; - foreach (var scene in curRoom.SceneUIList) + 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() @@ -483,16 +585,17 @@ Y = Application.GetMinRealAverage(46), Width = Application.GetMinRealAverage(81), Height = Application.GetMinRealAverage(81), - UnSelectedImagePath = scene.IconPath, + UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath, }; rowLayout.AddChidren(devicePic); var btnBindName = new Button() { - Width = Application.GetRealWidth(500 - 120), + Width = Application.GetRealWidth(790), X = devicePic.Right + Application.GetRealWidth(20), TextColor = Shared.Common.ZigbeeColor.Current.TextBlack, TextAlignment = TextAlignment.CenterLeft, + TextSize = 15, }; rowLayout.AddChidren(btnBindName); @@ -532,15 +635,30 @@ { btnBindName.Text = scene.Name; } - - foreach (var bindedSc in currentKey.bindList) + if (targetList.Count == 0) { - if (scene.Id == bindedSc.BindScenesId) + foreach (var bindedSc in currentKey.bindList) { - btnChoose.IsSelected = true; - btnChoose.Visible = true; - oldScene = btnChoose; - targetList.Add(scene); + 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; + } } } @@ -567,7 +685,6 @@ { oldScene.IsSelected = false; oldScene.Visible = false; - targetList.Clear(); } oldScene = btnChoose; oldScene.IsSelected = true; @@ -576,12 +693,32 @@ 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; } } @@ -615,9 +752,10 @@ Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(81), - Y = Application.GetRealHeight(58), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + Y = Application.GetRealHeight(81), + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 14, + IsBold = true, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.SelectFloor, }; @@ -626,12 +764,9 @@ var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() { Height = Application.GetRealHeight(600), - Y = Application.GetRealHeight(173), + Y = btnSelectFloor.Bottom, }; sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); - - //鑾峰彇妤煎眰 - var dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); Button oldbutton = null; Button oldbuttonText = null; @@ -640,6 +775,8 @@ var rowFrameLayout = new RowLayout() { Height = Application.GetRealHeight(150), + LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + X = Application.GetRealWidth(81), }; sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); @@ -647,8 +784,9 @@ { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), - X = Application.GetRealWidth(81), Y = Application.GetRealHeight(55), + UnSelectedImagePath = "Floor/Floor.png", + SelectedImagePath = "Floor/FloorSelected.png", }; rowFrameLayout.AddChidren(btnAllMethod); @@ -656,7 +794,7 @@ { Width = Application.GetRealWidth(311), Height = Application.GetRealHeight(58), - X = Application.GetRealWidth(173), + X = Application.GetRealWidth(92), Y = Application.GetRealHeight(69), TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, @@ -665,8 +803,23 @@ }; 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) @@ -681,6 +834,40 @@ oldbuttonText = btnMethodText; btnMethodText.IsSelected = true; oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + oldbuttonText.IsBold = true; + } + + //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + 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(); }; @@ -690,6 +877,46 @@ } } + //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夊満鏅鐞� + List<SceneUI> GetALlDispalyRoomSceneList() + { + currentKeyAllRoomSceneList.Clear(); + // 鑾峰彇鎵�鏈夋埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず + if (room.IsLove == true) + { + continue; + } + //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず + if (room.SceneUIList.Count == 0) + { + continue; + } + + foreach (var scene in room.SceneUIList) + { + currentKeyAllRoomSceneList.Add(scene); + } + } + return currentKeyAllRoomSceneList; + } + //鑾峰彇缃戝叧涓瓨鍦ㄧ殑鏈湴鍦烘櫙鍒楄〃 + List<SceneUI> GetMatchSceneUIList(Shared.Common.Room curRoom) + { + var tempSceneUIList = new List<SceneUI>(); + foreach (var scene in curRoom.SceneUIList) + { + var gwSc = gwCurScenesList.Find(obj => (obj.ScenesId == scene.Id)); + if (gwSc != null) + { + tempSceneUIList.Add(scene); + } + } + return tempSceneUIList; + } + public void DeviceInfoChange(CommonDevice common, string typeTag) { } -- Gitblit v1.8.0