From 97e259d966cb5cb5d73c105d5dbaadcc1f920614 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期五, 18 十月 2019 13:48:43 +0800 Subject: [PATCH] 合并了全部的代码 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 1433 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 727 insertions(+), 706 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index 0c0e063..0aa8117 100755 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -36,9 +36,13 @@ /// </summary> private ButtonLineForm automationBtn; /// <summary> - /// 涓儴鑳屾櫙bodyView + /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView /// </summary> public FrameLayout functionSceneBodyView; + /// <summary> + /// 涓儴鑳屾櫙bodyView + /// </summary> + public FrameLayout functionSceneAutoBodyView; /// <summary> /// 鐩稿悓鐨勮澶囧垪琛� /// </summary> @@ -539,6 +543,7 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { + ZbGateway.StatusList.Add(this); RemoveAll(); @@ -639,76 +644,13 @@ functionSceneAutoBG.AddChidren(selectFloorBtn); } - var roomFL = new HorizontalScrolViewLayout() + functionSceneAutoBodyView = new FrameLayout { - X= Application.GetRealWidth(CommonFormResouce.X_Left), Y = functionSceneAutoBG.Bottom, - Height = Application.GetRealHeight(167), - Width=Application.GetRealWidth(CommonPage.AppRealWidth-CommonFormResouce.X_Left), + Height = Application.GetRealHeight(1423), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - midFL.AddChidren(roomFL); - - Button curBtn = new Button(); - for(int i=0;i<Config.Instance.Home.RoomFilePathList.Count;i++) - { - var roomFilePath = Config.Instance.Home.RoomFilePathList[i]; - var room = Shared.Common.Room.GetRoomByFilePath(roomFilePath); - if (room == null) - { - continue; - } - var row = new RowLayout() - { - Width = Application.GetRealWidth(187+50), - Height = Application.GetRealHeight(167), - LineColor= ZigbeeColor.Current.GXCGrayBackgroundColor - }; - roomFL.AddChidren(row); - - var roomBtn = new Button() - { - Width = Application.GetRealWidth(187), - Height = Application.GetRealHeight(78), - Radius=(uint)Application.GetRealHeight(78/2), - Gravity = Gravity.Center, - Text=room.Name, - TextColor=ZigbeeColor.Current.GXCTextGrayColor, - SelectedTextColor=ZigbeeColor.Current.GXCTextWhiteColor, - BackgroundColor=ZigbeeColor.Current.GXCButtonUnSelectedColor3, - SelectedBackgroundColor=ZigbeeColor.Current.GXCButtonSelectedColor, - BorderColor=ZigbeeColor.Current.GXCBorderUnSelectedColor, - BorderWidth=1 - }; - row.AddChidren(roomBtn); - if(Shared.Common.Room.CurrentRoom.FileName==roomFilePath) - { - roomBtn.IsSelected = true; - curBtn = roomBtn; - } - - roomBtn.MouseUpEventHandler += (sender, e) => - { - if ((sender as Button) == curBtn) - { - return; - } - (sender as Button).IsSelected = true; - curBtn.IsSelected = false; - curBtn = (sender as Button); - Shared.Common.Room.CurrentRoom = room; - }; - } - - - //鍔熻兘鍜屽満鏅痓odyView - functionSceneBodyView = new FrameLayout() - { - Y = roomFL.Bottom, - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - functionBtn.Height - topView.Height - roomFL.Height - CommonPage.LineHeight, - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor - }; - midFL.AddChidren(functionSceneBodyView); + midFL.AddChidren(functionSceneAutoBodyView); if (selectedBtn == 0) { @@ -763,10 +705,11 @@ { var floors = new SelectFloor (); AddChidren(floors); - floors.Init(599,357); + floors.Init(599,357,Direction.Right); floors.FloorAction += (floorName) => { floorBtn.Text = floorName; + RefreshBodyView(); }; } @@ -843,12 +786,6 @@ var scene = new CategoryAddScene(); UserView.HomePage.Instance.AddChidren(scene); UserView.HomePage.Instance.PageIndex += 1; - CategoryAddScene.sceneTargetDevicesList?.Clear(); - CategoryAddScene.SceneText = ""; - CategoryAddScene.CurrentRoom = Shared.Common.Room.CurrentRoom; - CategoryAddScene.ModifySceneUI = null; - CategoryAddScene.Modify = false; - CategoryAddScene.ImagePath = "Scene/Scene0.png"; scene.Show(); } @@ -875,7 +812,7 @@ /// </summary> public void RefreshBodyView() { - functionSceneBodyView.RemoveAll(); + functionSceneAutoBodyView.RemoveAll(); if (functionBtn.IsSelected) { ShowFunction(); @@ -898,590 +835,7 @@ /// </summary> public void ShowFunction() { - //绉婚櫎鐩戝惉 - RemoveAllUpdateControlDeviceStatuAction(); - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - Shared.Common.Room.GetAllRoomDeviceUIList(); - Shared.Common.Room.GetAllRoomDeviceTypeList(); - if (Common.Room.AllRoomDeviceUIList == null) - { - return; - } - if (Common.Room.AllRoomDeviceUIList.Count == 0) - { - ShowNoFunctionTip(); - } - else - { - functionTypeScrowView = new HorizontalScrolViewLayout - { - X=Application.GetRealWidth(CommonFormResouce.X_Left), - Height = Application.GetRealHeight(279), - Width = Application.GetRealWidth(1028), - BackgroundColor=ZigbeeColor.Current.GXCBackgroundColor - }; - functionSceneBodyView.AddChidren(functionTypeScrowView); - - deviceListScrolView = new VerticalScrolViewLayout - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50), - Width = Application.GetRealWidth(1028), - Height = functionSceneBodyView.Height - Application.GetRealHeight(279+50) - 1, - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - - }; - functionSceneBodyView.AddChidren(deviceListScrolView); - tempFunctionTypeBtn = new FunctionButton(); - - foreach (var deviceType in Common.Room.AllRoomDeviceTypeList) - { - typeRowLayout = new RowLayout() - { - Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceType - }; - functionTypeScrowView.AddChidren(typeRowLayout); - - functionTypeIMG = new FunctionButton() - { - Tag = deviceType - }; - functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType)); - functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); - typeRowLayout.AddChidren(functionTypeIMG); - - - functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction; - functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction; - functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction; - - if (deviceType == Shared.Common.Room.AllRoomDeviceUIList[0].CommonDevice.Type) - { - ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); - } - } - } - } - - /// <summary> - /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳� - /// </summary> - /// <param name="typeSender">typeSender.</param> - /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> - private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs) - { - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - Shared.Common.Room.GetAllRoomDeviceUIList(); - tempFunctionTypeBtn.IsSelected = false; - tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; - ((typeSender as Button).Parent as FunctionButton).IsSelected = true; - - deviceListScrolView.RemoveAll(); - - var sameTypeList = new List<DeviceUI> { }; - foreach (var devieceUI in Common.Room.AllRoomDeviceUIList) - { - if (devieceUI == null || devieceUI.CommonDevice == null) - { - continue; - } - if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString()) - { - if (!sameTypeList.Contains(devieceUI)) - { - sameTypeList.Add(devieceUI); - } - } - } - foreach (var deviceUI in sameTypeList) - { - //鍒犻櫎璁惧 - EventHandler<MouseEventArgs> delEvent = (delSender, delE) => - { - var alert = new CustomAlert(); - AddChidren(alert); - alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - alert.ResultEventHandler += (e2) => - { - if (e2) - { - Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); - deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); - sameTypeList.Remove(deviceUI); - if (sameTypeList.Count == 0) - { - RefreshBodyView(); - } - } - }; - }; - EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => - { - var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; - UserView.HomePage.Instance.AddChidren(detailInfo); - UserView.HomePage.Instance.PageIndex += 1; - detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); - detailInfo.action = RefreshBodyView; - }; - - if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) - { - //鐏� - var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; - //琛ヤ笂闈炶繙绋� - if (light.Gateway == null) - { - continue; - } - if (light.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(light, () => - { - light.ReadOnOffStatus(); - light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� - if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) - { - light.ReadOnOffStatus(); - light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127+35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(light.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - light.SwitchControl(1); - } - else - { - light.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) - { - //绌烘皵寮�鍏� - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - //琛ヤ笂闈炶繙绋� - if (airSwitch.Gateway == null) - { - continue; - } - if (airSwitch.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(airSwitch, () => - { - airSwitch.ReadOnOffStatus(); - airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - airSwitch.ReadOnOffStatus(); - airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(airSwitch.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - airSwitch.SwitchControl(1); - } - else - { - airSwitch.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) - { - //璋冨厜鐏� - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - //琛ヤ笂闈炶繙绋� - if (dimmableLight.Gateway == null) - { - continue; - } - if (dimmableLight.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(dimmableLight, () => - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); - }); - } - else - { - if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(dimmableLight.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - dimmableLight.SwitchControl(1); - } - else - { - dimmableLight.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) - { - //绌鸿皟 - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - //琛ヤ笂闈炶繙绋� - if (ac.Gateway == null) - { - continue; - } - if (ac.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - UserView.UserHomeView.ReadStatus(ac, () => - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� - if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(ac.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - ac.Open(); - } - else - { - ac.Close(); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) - { - //鍗峰笜 - var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; - //涓嶄笂闈炶繙绋� - if (rollerShade.Gateway == null) - { - continue; - } - if (rollerShade.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(rollerShade, () => - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇 - if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(rollerShade.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - - deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected; - if ((sender as CommonForm.SelectedStatuButton).IsSelected) - { - rollerShade.CurtainUpDownStopControl(0); - } - else - { - rollerShade.CurtainUpDownStopControl(1); - } - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - } - else - { - - } - } + AddRoomView(); } /// <summary> @@ -1505,13 +859,681 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.NoFunction, - //Text = "娌℃湁鍔熻兘 \n 璇峰湪涓汉涓績涓�--璁惧绠$悊澶勬坊鍔�", + Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, IsMoreLines=true }; functionSceneBodyView.AddChidren(noFunctionTip); + } + + /// <summary> + /// RefreshFunction + /// </summary> + /// <param name="room"></param> + private void RefreshFunction(Common.Room room) + { + //绉婚櫎鐩戝惉 + RemoveAllUpdateControlDeviceStatuAction(); + functionSceneBodyView.RemoveAll(); + + if (room.DeviceUIList.Count == 0) + { + ShowNoFunctionTip(); + } + else + { + functionTypeScrowView = new HorizontalScrolViewLayout + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(279), + Width = Application.GetRealWidth(1028), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + functionSceneBodyView.AddChidren(functionTypeScrowView); + + deviceListScrolView = new VerticalScrolViewLayout + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50), + Width = Application.GetRealWidth(1028), + Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1, + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + + }; + functionSceneBodyView.AddChidren(deviceListScrolView); + tempFunctionTypeBtn = new FunctionButton(); + + EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) => + { + tempFunctionTypeBtn.IsSelected = false; + tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; + ((typeSender as Button).Parent as FunctionButton).IsSelected = true; + + deviceListScrolView.RemoveAll(); + + var sameTypeList = new List<DeviceUI> { }; + foreach (var devieceUI in room.DeviceUIList) + { + if (devieceUI == null || devieceUI.CommonDevice == null) + { + continue; + } + if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString()) + { + if (!sameTypeList.Contains(devieceUI)) + { + sameTypeList.Add(devieceUI); + } + } + } + foreach (var deviceUI in sameTypeList) + { + //鍒犻櫎璁惧 + EventHandler<MouseEventArgs> delEvent = (delSender, delE) => + { + var alert = new CustomAlert(); + AddChidren(alert); + alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); + alert.ResultEventHandler += (e2) => + { + if (e2) + { + Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshBodyView(); + } + } + }; + }; + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); + detailInfo.action = RefreshBodyView; + }; + + if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) + { + //鐏� + var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; + //琛ヤ笂闈炶繙绋� + if (light.Gateway == null) + { + continue; + } + if (light.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(light, () => + { + light.ReadOnOffStatus(); + light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + light.ReadOnOffStatus(); + light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(light.IsOnline == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + light.SwitchControl(1); + } + else + { + light.SwitchControl(0); + } + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; + //琛ヤ笂闈炶繙绋� + if (airSwitch.Gateway == null) + { + continue; + } + if (airSwitch.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(airSwitch, () => + { + airSwitch.ReadOnOffStatus(); + airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + airSwitch.ReadOnOffStatus(); + airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(airSwitch.IsOnline == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + airSwitch.SwitchControl(1); + } + else + { + airSwitch.SwitchControl(0); + } + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; + //琛ヤ笂闈炶繙绋� + if (dimmableLight.Gateway == null) + { + continue; + } + if (dimmableLight.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(dimmableLight, () => + { + dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + dimmableLight.ReadOnOffStatus(); + dimmableLight.ReadLevel(); + }); + } + else + { + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + dimmableLight.ReadOnOffStatus(); + dimmableLight.ReadLevel(); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(dimmableLight.IsOnline == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + dimmableLight.SwitchControl(1); + } + else + { + dimmableLight.SwitchControl(0); + } + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) + { + //绌鸿皟 + var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + //琛ヤ笂闈炶繙绋� + if (ac.Gateway == null) + { + continue; + } + if (ac.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + UserView.UserHomeView.ReadStatus(ac, () => + { + ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + ac.ReadFanMode(); + ac.ReadSystemMode(); + ac.ReadLocalTemperature(); + ac.ReadCoolingSetpoint(); + ac.ReadHeatingSetpoint(); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + ac.ReadFanMode(); + ac.ReadSystemMode(); + ac.ReadLocalTemperature(); + ac.ReadCoolingSetpoint(); + ac.ReadHeatingSetpoint(); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(ac.IsOnline == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; + if ((send2 as CommonForm.SelectedStatuButton).IsSelected) + { + ac.Open(); + } + else + { + ac.Close(); + } + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) + { + //鍗峰笜 + var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; + //涓嶄笂闈炶繙绋� + if (rollerShade.Gateway == null) + { + continue; + } + if (rollerShade.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(rollerShade, () => + { + rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇 + if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + } + } + + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCLineColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new FunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(rollerShade.IsOnline == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + + + deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected; + if ((sender as CommonForm.SelectedStatuButton).IsSelected) + { + rollerShade.CurtainUpDownStopControl(0); + } + else + { + rollerShade.CurtainUpDownStopControl(1); + } + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + } + else + { + + } + } + }; + + foreach (var deviceType in Common.Room.GetdeviceTypes(room)) + { + typeRowLayout = new RowLayout() + { + Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceType + }; + functionTypeScrowView.AddChidren(typeRowLayout); + + functionTypeIMG = new FunctionButton() + { + Tag = deviceType + }; + functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType)); + functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); + typeRowLayout.AddChidren(functionTypeIMG); + + + functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction; + functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction; + functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction; + + if (deviceType == room.DeviceUIList[0].CommonDevice.Type) + { + ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); + } + + } + + + } + } + + /// <summary> + /// AddRoomView + /// </summary> + private void AddRoomView() + { + var roomFL = new HorizontalScrolViewLayout() + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(167), + Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor + }; + functionSceneAutoBodyView.AddChidren(roomFL); + + //鍔熻兘鍜屽満鏅痓odyView + functionSceneBodyView = new FrameLayout() + { + Y = roomFL.Bottom, + Height = Application.GetRealHeight(1316), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor + }; + functionSceneAutoBodyView.AddChidren(functionSceneBodyView); + + Button curBtn = new Button(); + foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + { + var row = new RowLayout() + { + Width = Application.GetRealWidth(187 + 50), + Height = Application.GetRealHeight(167), + LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor + }; + roomFL.AddChidren(row); + + var roomBtn = new Button() + { + Width = Application.GetRealWidth(187), + Height = Application.GetRealHeight(78), + Radius = (uint)Application.GetRealHeight(78 / 2), + Gravity = Gravity.Center, + Text = room.Name, + TextColor = ZigbeeColor.Current.GXCTextGrayColor, + SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, + BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor3, + SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor, + BorderColor = ZigbeeColor.Current.GXCBorderUnSelectedColor, + BorderWidth = 1 + }; + row.AddChidren(roomBtn); + if (room.IsLove) + { + roomBtn.IsSelected = true; + curBtn = roomBtn; + + if(sceneBtn.IsSelected) + { + RefreshScene(room); + } + else + { + RefreshFunction(room); + } + + } + roomBtn.MouseUpEventHandler += (sender, e) => + { + if ((sender as Button) == curBtn) + { + return; + } + (sender as Button).IsSelected = true; + curBtn.IsSelected = false; + curBtn = sender as Button; + if (sceneBtn.IsSelected) + { + RefreshScene(room); + } + else + { + RefreshFunction(room); + } + }; + } + } #endregion @@ -1522,15 +1544,16 @@ /// </summary> public void ShowScene() { - //鍒锋柊鍦烘櫙 - //var reFreshResult=await Shared.Common.Room.RefreshSceneUIList(); - Shared.Common.SceneRoomUI.GetAllSceneRoomUIList(); - if (SceneRoomUI.AllSceneRoomUIList == null) - { - return; - } - var sceneList = SceneRoomUI.AllSceneRoomUIList; - Shared.Common.Room.GetAllRoomDeviceUIList(); + AddRoomView(); + } + + /// <summary> + /// RefreshScene + /// </summary> + /// <param name="room"></param> + public void RefreshScene(Common.Room room) + { + var sceneList = room.SceneUIList; if (sceneList.Count == 0) { ShowNoSceneTip(); @@ -1539,24 +1562,22 @@ { var sceneScrolView = new VerticalScrolViewLayout { - Y=Application.GetRealHeight(58) + Y = Application.GetRealHeight(58) }; functionSceneBodyView.AddChidren(sceneScrolView); - foreach (var sceneRoomUI in sceneList) + foreach (var scene in sceneList) { var sceneFL = new FrameLayout() { Height = Application.GetRealHeight(446), - Gravity = Gravity.CenterHorizontal, BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Tag = sceneRoomUI + Tag = scene }; sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout() + var sceneRowLayout = new RowLayout { Y = Application.GetRealHeight(46), Height = Application.GetRealHeight(446 - 46), - Gravity = Gravity.CenterHorizontal, LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, Radius = CommonPage.BigFormRadius }; @@ -1564,33 +1585,34 @@ var sceneImg = new Button() { - X=Application.GetRealWidth(179), - Width=Application.GetMinReal(844), - Height=Application.GetMinReal(400), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath, - Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius) + X = Application.GetRealWidth(179), + Width = Application.GetRealWidth(844), + Height = Application.GetRealHeight(400), + BackgroundColor = ZigbeeColor.Current.GXCRedColor, + UnSelectedImagePath = scene.IconPath, + Radius = (uint)Application.GetRealHeight(17) }; sceneRowLayout.AddChidren(sceneImg); var leftFL = new FrameLayout { - X=Application.GetRealWidth(CommonFormResouce.X_Left), + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = Application.GetRealHeight(58), Width = Application.GetRealWidth(251), Height = Application.GetRealHeight(282), - Gravity=Gravity.CenterVertical, - BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2 + BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2, + Radius = (uint)Application.GetRealHeight(17) }; sceneRowLayout.AddChidren(leftFL); var collectionBtn = new Button { - X=Application.GetRealWidth(23), - Y=Application.GetRealHeight(23), - Width=Application.GetMinRealAverage(65), - Height=Application.GetMinRealAverage(65), - UnSelectedImagePath="Item/Collection.png", - SelectedImagePath="Item/CollectionSelected.png" + X = Application.GetRealWidth(23), + Y = Application.GetRealHeight(23), + Width = Application.GetMinRealAverage(65), + Height = Application.GetMinRealAverage(65), + UnSelectedImagePath = "Item/Collection.png", + SelectedImagePath = "Item/CollectionSelected.png" }; leftFL.AddChidren(collectionBtn); @@ -1599,9 +1621,9 @@ Width = Application.GetRealWidth(176), Height = Application.GetRealHeight(200), TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - Text = sceneRoomUI.sceneUI.Name, + Text = scene.Name, Gravity = Gravity.Center, - IsMoreLines=true + IsMoreLines = true }; leftFL.AddChidren(sceneNameBtn); @@ -1609,36 +1631,35 @@ var delayBtn = new RowLayoutDeleteButton { TextID = R.MyInternationalizationString.Delay, - Tag = sceneRoomUI.sceneUI.SceneDelayTime + Tag = scene.SceneDelayTime }; sceneRowLayout.AddLeftView(delayBtn); //缂栬緫 var settingBtn = new Device.CommonForm.RowLayoutEditButton() { - TextID=R.MyInternationalizationString.Setting, - Tag = sceneRoomUI.sceneUI.SceneDelayTime + TextID = R.MyInternationalizationString.Setting, + Tag = scene.SceneDelayTime }; //鍒犻櫎 var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton { - Tag = sceneRoomUI + Tag = scene }; - if (!sceneRoomUI.room.IsSharedRoom) + if (!room.IsSharedRoom) { sceneRowLayout.AddRightView(settingBtn); sceneRowLayout.AddRightView(deleteBtn); } //璋冪敤鍦烘櫙 - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => { //1鎴愬姛 0澶辫触 //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮 - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(sceneRoomUI.sceneUI.Id, sceneRoomUI.sceneUI.SceneDelayTime); + var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); //涓荤綉鍏充笉鍦ㄧ嚎 if (sceneOpenAllData == null) { @@ -1678,7 +1699,7 @@ if (e1) { //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(sceneRoomUI.sceneUI.Id); + var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) { //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); @@ -1688,7 +1709,7 @@ //1鎴愬姛 if (removeSceneAllData.removeSceneData.Result == 1) { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); + room.RemoveScene(scene); //RefreshBodyView(); sceneScrolView.RemoveViewByTag((sender as Button).Tag); } @@ -1701,7 +1722,7 @@ //2 娌℃湁璇ュ満鏅� else if (removeSceneAllData.removeSceneData.Result == 2) { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); + room.RemoveScene(scene); //RefreshBodyView(); sceneScrolView.RemoveViewByTag((sender as Button).Tag); CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); @@ -1714,7 +1735,7 @@ //缂栬緫鍦烘櫙 settingBtn.MouseUpEventHandler += (sender, e) => { - SceneRoomUI.EditScene(sceneRoomUI.sceneUI, sceneRoomUI.room); + SceneRoomUI.EditScene(scene,room); }; //缂栬緫寤舵椂 delayBtn.MouseUpEventHandler += (sender, e) => @@ -1737,7 +1758,7 @@ // { // if (ss.Id == sceneRoomUI.sceneUI.Id) // { - // ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]); + // //ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]); // sceneRoomUI.room.Save(); // RefreshBodyView(); // return; @@ -1770,7 +1791,7 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.NoScene, + Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, IsMoreLines = true -- Gitblit v1.8.0