From c7698e163e43cea9e7f8ee45f8e3f91c9265cca4 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 04 十一月 2019 19:11:41 +0800 Subject: [PATCH] 合并了全部的代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs | 402 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 332 insertions(+), 70 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs index 5cb012c..b740b67 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs @@ -49,12 +49,19 @@ public Action<List<BindListResponseObj>> actionAddDevicePage; List<DeviceUI> curTypeDeviceList = new List<DeviceUI> { }; string curDeviceBindType = ""; + Button btnFloorText; + Dictionary<string, string> dicFloor; + Button btnChooseKeyMode; + bool IsInitEntry = false;//鏄惁棣栨杩涘叆璇ラ〉 + List<DeviceUI> currentKeyAllRoomDeviceList = new List<DeviceUI>(); + Dictionary<string, CommonDevice> oldTargetList = new Dictionary<string, CommonDevice> { }; #endregion public void Show() { targetList.Clear(); string titleText = ""; + IsInitEntry = true; switch (curDeviceBindType) { case "AddSwitch": @@ -68,48 +75,50 @@ 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(953), - Height = Application.GetRealHeight(72), - Width = Application.GetRealWidth(72), + X = Application.GetRealWidth(830), + Width = Application.GetRealWidth(200), }; this.titleFrameLayout.AddChidren(btnAddFrameLayout); - var btnFloorText = new Button + btnFloorText = new Button { - Height = Application.GetRealHeight(84), - Width = Application.GetRealWidth(58), - X = Application.GetRealWidth(881), - Text = "涓�妤�", + Width = Application.GetRealWidth(110), + X = Application.GetRealWidth(15), + Text = Language.StringByID(R.MyInternationalizationString.FirstFloor), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, + TextSize = 15, + TextAlignment = TextAlignment.CenterRight, }; btnAddFrameLayout.AddChidren(btnFloorText); var btnBindDown = new Button { - Height = Application.GetRealHeight(72), - Width = Application.GetRealWidth(72), - //UnSelectedImagePath = "BindPic/BindDown.png", + Height = Application.GetRealHeight(69), + Width = Application.GetRealWidth(69), + X = Application.GetRealWidth(200 - 77), + UnSelectedImagePath = "BindPic/BindDown.png", + Gravity = Gravity.CenterVertical, }; btnAddFrameLayout.AddChidren(btnBindDown); btnBindDown.MouseDownEventHandler += (sender, e) => { + SideslipFramelayout(); }; - - MidFrameLayoutContent(); + MidFrameLayoutContent(btnFloorText); } - async void MidFrameLayoutContent() + async void MidFrameLayoutContent(Button btnFloorText) { #region UI var btnMidTopLayout = new FrameLayout @@ -120,16 +129,9 @@ btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout { + X = Application.GetRealWidth(58), }; btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout); - - //var btnLine = new Button - //{ - // Y = btnMidTopLayout.Bottom, - // Height = 1, - // BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine, - //}; - //this.midFrameLayout.AddChidren(btnLine); var btnmidVerticalScrolViewLayoutFrameLayout = new FrameLayout { @@ -140,7 +142,6 @@ midVerticalScrolViewLayout = new VerticalScrolViewLayout() { - }; btnmidVerticalScrolViewLayoutFrameLayout.AddChidren(midVerticalScrolViewLayout); @@ -152,7 +153,7 @@ }; this.midFrameLayout.AddChidren(bottomFrameLayout); - var btnChooseKeyMode = new Button() + btnChooseKeyMode = new Button() { Width = Application.GetRealWidth(907), Gravity = Gravity.CenterHorizontal, @@ -166,11 +167,56 @@ #endregion #region 鏁版嵁澶勭悊 - roomList = Shared.Common.Room.Lists; + //鑾峰彇妤煎眰 + dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); + btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); + // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + if (room.FloorId == currentKey.currentSelectFloorId) + { + roomList.Add(room); + } + } + //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞� + var aa = GetALlDispalyRoomDeviceList(); + //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍 + //if (IsInitEntry) + //{ + //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍 + if (currentKeyAllRoomDeviceList.Count != 0) + { + if (currentKey.bindList != null && currentKey.bindList.Count != 0) + { + foreach (var devA in currentKeyAllRoomDeviceList) + { + var id = devA.CommonDevice?.DeviceAddr + devA.CommonDevice?.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.CommonDevice); + } + } + } + } + } + if (oldTargetList != null) + { + foreach (var de in oldTargetList.Keys) + { + var curDev = oldTargetList[de]; + targetList.Add(curDev); + } + } + + //} Shared.Common.Room curRoom = roomList[0]; int index = 0; RefreshRoomList(curRoom, btnChooseKeyMode, ref index); - RefreshDeviceList(roomList[index]); + if (curTypeDeviceList.Count == 0) { btnChooseKeyMode.Enable = false; @@ -201,7 +247,7 @@ chooseKeyModePage.action += action; } }; - #endregion + #endregion } /// <summary> @@ -211,12 +257,28 @@ /// <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 { @@ -244,45 +306,15 @@ 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; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; - btnRoomFrameLayout.BorderWidth = 1; - } + 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 - { - 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) @@ -344,7 +376,96 @@ X = btnRoom.Right, }; btnHorizontalScrolViewLayout.AddChidren(btnEmpty); + index++; } + BindInfo.FinishDisplay(roomTempList, btnChooseKeyMode); + RefreshDeviceList(curRoom); + } + + //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞� + List<DeviceUI> GetALlDispalyRoomDeviceList() + { + currentKeyAllRoomDeviceList.Clear(); + switch (curDeviceBindType) + { + case "AddSwitch": + foreach (var r in Shared.Common.Room.Lists) + { + if (r.IsLove == true) + { + var aa = 0; ; + } + if (r.DeviceUIList.Count == 0) + { + continue; + } + if (r.IsLove == true) + { + continue; + } + foreach (var device in r.DeviceUIList) + { + if (device.CommonDevice != null) + { + var dev = device.CommonDevice.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 6)); + if (dev != null) + { + currentKeyAllRoomDeviceList.Add(device); + } + } + } + } + break; + case "AddDimmer": + foreach (var r in Shared.Common.Room.Lists) + { + if (r.DeviceUIList.Count == 0) + { + continue; + } + if (r.IsLove == true) + { + continue; + } + foreach (var device in r.DeviceUIList) + { + if (device.CommonDevice != null) + { + var dev = device.CommonDevice.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 8)); + if (dev != null) + { + currentKeyAllRoomDeviceList.Add(device); + } + } + } + } + break; + case "AddCurtain": + foreach (var r in Shared.Common.Room.Lists) + { + if (r.DeviceUIList.Count == 0) + { + continue; + } + if (r.IsLove == true) + { + continue; + } + foreach (var device in r.DeviceUIList) + { + if (device.CommonDevice != null) + { + var dev = device.CommonDevice.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 258)); + if (dev != null) + { + currentKeyAllRoomDeviceList.Add(device); + } + } + } + } + break; + } + return currentKeyAllRoomDeviceList; } /// <summary> @@ -355,7 +476,6 @@ void RefreshDeviceList(Shared.Common.Room curRoom) { midVerticalScrolViewLayout.RemoveAll(); - curTypeDeviceList.Clear(); switch (curDeviceBindType) { @@ -492,19 +612,161 @@ { btnBindName.Text = device.CommonDevice?.DeviceEpointName; } - - foreach (var bindedDev in currentKey.bindList) + foreach (var bindedDev in targetList) { var id = device.CommonDevice?.DeviceAddr + device.CommonDevice?.DeviceEpoint; - if (id == bindedDev.BindMacAddr + bindedDev.BindEpoint) + if (id == bindedDev.DeviceAddr + bindedDev.DeviceEpoint) { btnChoose.IsSelected = true; btnChoose.Visible = true; - targetList.Add(device.CommonDevice); } } + curIndex++; } + //IsInitEntry = false; + } + + // 渚ц竟瀵艰埅鏍� + 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.GetRealHeight(783), + Width = Application.GetRealWidth(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.XMGray3, + TextSize = 14, + 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.GetRealWidth(81), + Height = Application.GetRealHeight(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; + 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; + } + + //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� + 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, btnChooseKeyMode, ref index); + + dialog.Close(); + }; + btnAllMethod.MouseUpEventHandler += hander; + rowFrameLayout.MouseUpEventHandler += hander; + btnMethodText.MouseUpEventHandler += hander; + } } public void DeviceInfoChange(CommonDevice common, string typeTag) -- Gitblit v1.8.0