From 1c4904d77f484c075080942d87785481b52b6fb2 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期一, 28 十月 2019 14:58:46 +0800 Subject: [PATCH] Revert "Merge branch 'dev-tzy' into DEV_GXC" --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 2279 +++++++++++++++++++++++------------------------------------ 1 files changed, 879 insertions(+), 1,400 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs old mode 100755 new mode 100644 index 0c0e063..9a4dae5 --- 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> @@ -86,7 +90,7 @@ /// <summary> /// 璁惧绫诲瀷RowLayout /// </summary> - private RowLayout typeRowLayout; + private FrameLayout typeRowLayout; /// <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(); @@ -580,7 +585,7 @@ var midFL = new FrameLayout { Y = topView.Bottom, - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom, + Height = Application.GetRealHeight(1549), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; AddChidren(midFL); @@ -591,18 +596,17 @@ BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; midFL.AddChidren(functionSceneAutoBG); - //鍔熻兘 - functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); - functionSceneAutoBG.AddChidren(functionBtn); - functionBtn.Init(); - functionBtn.SetTitle(R.MyInternationalizationString.Function); //鍦烘櫙 - sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); functionSceneAutoBG.AddChidren(sceneBtn); sceneBtn.Init(); sceneBtn.SetTitle(R.MyInternationalizationString.Scence); - + //鍔熻兘 + functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + functionSceneAutoBG.AddChidren(functionBtn); + functionBtn.Init(); + functionBtn.SetTitle(R.MyInternationalizationString.Function); //鑷姩鍖� automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68); automationBtn.Init(); @@ -639,76 +643,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 +704,11 @@ { var floors = new SelectFloor (); AddChidren(floors); - floors.Init(599,357); + floors.Init(580,330,Direction.Right); floors.FloorAction += (floorName) => { floorBtn.Text = floorName; + RefreshBodyView(); }; } @@ -843,12 +785,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 +811,7 @@ /// </summary> public void RefreshBodyView() { - functionSceneBodyView.RemoveAll(); + functionSceneAutoBodyView.RemoveAll(); if (functionBtn.IsSelected) { ShowFunction(); @@ -898,590 +834,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 +858,704 @@ 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 = Application.GetRealHeight(35+275), + Width = Application.GetRealWidth(1028), + Height = Application.GetRealHeight(938) - 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(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(light.IsOnline == 1); + deviceRow.SetZoneText(deviceUI.GetZone()); + 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 Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).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); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var lightControl = new Phone.Device.Light.LightControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + }; + + 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 CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(airSwitch.IsOnline == 1); + deviceRow.SetZoneText(deviceUI.GetZone()); + 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); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var lightControl = new Phone.Device.Light.LightControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + }; + + 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(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetStatu(dimmableLight.IsOnline == 1); + deviceRow.SetZoneText(deviceUI.GetZone()); + 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); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); + UserView.HomePage.Instance.AddChidren(dimmableLightControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + dimmableLightControl.action = RefreshBodyView; + dimmableLightControl.Show(deviceUI, room); + }; + + 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 FrameLayout() + { + Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), + 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.ClickBtn.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(170), + 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(973+279), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor + }; + functionSceneAutoBodyView.AddChidren(functionSceneBodyView); + + Button curBtn = new Button(); + foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + { + var row = new FrameLayout() + { + Width = Application.GetRealWidth(187 + 50), + Height = Application.GetRealHeight(167) + }; + 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 +1566,17 @@ /// </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) + { + functionSceneBodyView.RemoveAll(); + var sceneList = room.SceneUIList; if (sceneList.Count == 0) { ShowNoSceneTip(); @@ -1539,24 +1585,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,81 +1608,109 @@ 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", + IsSelected = Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName), + Tag = scene }; leftFL.AddChidren(collectionBtn); - + var sceneNameBtn = new Button() { Width = Application.GetRealWidth(176), - Height = Application.GetRealHeight(200), + Height = Application.GetRealHeight(150), TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - Text = sceneRoomUI.sceneUI.Name, + Text = scene.Name, Gravity = Gravity.Center, - IsMoreLines=true + IsMoreLines = true }; leftFL.AddChidren(sceneNameBtn); + + var collection = new Button + { + Tag=scene + }; + leftFL.AddChidren(collection); + collection.MouseUpEventHandler += (sender, e) => + { + if (room.IsLove) + { + Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); + sceneScrolView.RemoveViewByTag(collectionBtn.Tag); + } + else + { + collectionBtn.IsSelected = !collectionBtn.IsSelected; + if (collectionBtn.IsSelected) + { + Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene); + } + else + { + Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); + } + } + }; //瀹氭椂 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.Editor, + 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) { @@ -1667,83 +1739,75 @@ //鍒犻櫎鍦烘櫙 EventHandler<MouseEventArgs> delEvent = (sender, e) => { - var tip = new CustomAlert { }; - AddChidren(tip); - tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - - //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); - //alert.Show(); - tip.ResultEventHandler += async (e1) => + if(room.IsLove) { - if (e1) + Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); + sceneScrolView.RemoveViewByTag((sender as Button).Tag); + } + else + { + var tip = new CustomAlert { }; + AddChidren(tip); + tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); + + //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); + //alert.Show(); + tip.ResultEventHandler += async (e1) => { - //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(sceneRoomUI.sceneUI.Id); - if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) + if (e1) { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; + //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� + var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); + if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) + { + //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); + CommonPage.Instance.FailureToServer(); + return; + } + //1鎴愬姛 + if (removeSceneAllData.removeSceneData.Result == 1) + { + room.RemoveScene(scene); + //RefreshBodyView(); + sceneScrolView.RemoveViewByTag((sender as Button).Tag); + } + //0 绉婚櫎澶辫触 + else if (removeSceneAllData.removeSceneData.Result == 0) + { + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); + return; + } + //2 娌℃湁璇ュ満鏅� + else if (removeSceneAllData.removeSceneData.Result == 2) + { + room.RemoveScene(scene); + //RefreshBodyView(); + sceneScrolView.RemoveViewByTag((sender as Button).Tag); + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); + return; + } } - //1鎴愬姛 - if (removeSceneAllData.removeSceneData.Result == 1) - { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - //0 绉婚櫎澶辫触 - else if (removeSceneAllData.removeSceneData.Result == 0) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //2 娌℃湁璇ュ満鏅� - else if (removeSceneAllData.removeSceneData.Result == 2) - { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); - return; - } - } - }; + }; + } + }; deleteBtn.MouseUpEventHandler += delEvent; //缂栬緫鍦烘櫙 settingBtn.MouseUpEventHandler += (sender, e) => { - SceneRoomUI.EditScene(sceneRoomUI.sceneUI, sceneRoomUI.room); + SceneUI.EditScene(scene, room); }; //缂栬緫寤舵椂 delayBtn.MouseUpEventHandler += (sender, e) => { - var tList = new List<string>() { }; - - for (int i = 0; i < 60; i++) + var timeSelect = new SelectTime(); + CommonPage.Instance.AddChidren(timeSelect); + timeSelect.TempTime = scene.SceneDelayTime; + timeSelect.Init(); + timeSelect.TimeAction = (t) => { - tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}"); - } - //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag; - //PickerView.Show(tList, (obj) => - //{ - // var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName); - // if (tempRoom == null) - // { - // return; - // } - // foreach (var ss in tempRoom.SceneUIList) - // { - // if (ss.Id == sceneRoomUI.sceneUI.Id) - // { - // ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]); - // sceneRoomUI.room.Save(); - // RefreshBodyView(); - // return; - // } - // } - //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]); + scene.SceneDelayTime = t; + }; }; } } @@ -1770,7 +1834,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 @@ -1788,168 +1852,8 @@ /// </summary> public async void ShowAutotion() { - functionSceneBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - - var bjFrameLayout = new FrameLayout - { - Width = Application.GetRealWidth(1080 - 58), - Height = Application.GetRealHeight(170), - BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, - X = Application.GetRealWidth(58), - Radius = (uint)Application.GetRealHeight(50), - Y = Application.GetRealHeight(30), - }; - functionSceneBodyView.AddChidren(bjFrameLayout); - - var sigBtn = new Button - { - Width = Application.GetMinRealAverage(84), - Height = Application.GetMinRealAverage(84), - UnSelectedImagePath = "ZigeeLogic/sign.png", - X = Application.GetRealWidth(58), - Gravity = Gravity.CenterVertical, - }; - bjFrameLayout.AddChidren(sigBtn); - - var recommendtextBtn = new Button - { - Width = Application.GetMinRealAverage(300), - Height = Application.GetMinRealAverage(84), - X = sigBtn.Right + Application.GetRealWidth(35), - TextAlignment = TextAlignment.CenterLeft, - //Text = "鎺ㄨ崘妯℃澘", - TextID = MyInternationalizationString.logictemplate, - Gravity = Gravity.CenterVertical, - TextColor = ZigbeeColor.Current.LogicBtnSelectedColor, - }; - bjFrameLayout.AddChidren(recommendtextBtn); - - var recommendswitchBtn = new Button - { - Width = Application.GetMinRealAverage(104), - Height = Application.GetMinRealAverage(63), - UnSelectedImagePath = "ZigeeLogic/logicclose.png", - SelectedImagePath = "ZigeeLogic/logicopen.png", - X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58), - Gravity = Gravity.CenterVertical, - }; - bjFrameLayout.AddChidren(recommendswitchBtn); - - - var scenehorizontalScrol = new HorizontalScrolViewLayout - { - Width = Application.GetRealWidth(1080 - 58), - X = Application.GetRealWidth(58), - Y = bjFrameLayout.Bottom + Application.GetRealHeight(30), - Height = Application.GetRealHeight(0), - }; - functionSceneBodyView.AddChidren(scenehorizontalScrol); - - var logicScrolView = new VerticalScrolViewLayout - { - Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30), - BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, - X = Application.GetRealWidth(58), - Radius = (uint)Application.GetRealHeight(50), - Y = scenehorizontalScrol.Bottom, - }; - functionSceneBodyView.AddChidren(logicScrolView); - - - recommendswitchBtn.MouseUpEventHandler += (sender, e) => - { - int Yheight = 0; - recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected; - scenehorizontalScrol.RemoveAll(); - if (recommendswitchBtn.IsSelected) - { - scenehorizontalScrol.Height = Application.GetRealHeight(246); - Yheight = 20; - for (int i = 1; i < 4; i++) - { - - var frameLayout = new FrameLayout - { - Width = Application.GetMinRealAverage(369 + 46), - Height = Application.GetMinRealAverage(246), - }; - scenehorizontalScrol.AddChidren(frameLayout); - var logiciocnBtn = new Button - { - Width = Application.GetMinRealAverage(369), - Height = Application.GetMinRealAverage(246), - UnSelectedImagePath = "ZigeeLogic/" + i + ".png", - Tag = i, - }; - frameLayout.AddChidren(logiciocnBtn); - - var logicnameBtn = new Button - { - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(80), - X = Application.GetRealWidth(23), - Y = Application.GetRealHeight(246 - 23 - 80), - TextAlignment = TextAlignment.CenterLeft, - TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, - }; - frameLayout.AddChidren(logicnameBtn); - - if (i == 1) - { - logicnameBtn.Text = Language.StringByID(MyInternationalizationString.onlight); - } - else if (i == 2) - { - logicnameBtn.Text = Language.StringByID(MyInternationalizationString.offlight); - } - else if (i == 3) - { - logicnameBtn.Text = Language.StringByID(MyInternationalizationString.automation1); - } - - - EventHandler<MouseEventArgs> iconclick = (sender1, e1) => - { - Common.Logic.CurrentLogic = new Common.Logic(); - Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 - if (logiciocnBtn.Tag.ToString() == "3") - { - Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;// Language.StringByID(MyInternationalizationString.automation1); - var addLogicPage = new Logic.AddLogicPage(); - HomePage.Instance.AddChidren(addLogicPage); - HomePage.Instance.PageIndex += 1; - addLogicPage.Show(); - } - else - { - Common.Logic.LogicDviceList.Clear(); - if (Common.Logic.LogicDviceList.Count == 0) - { - Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); - } - Common.Logic.CurrentLogic.LogicType = 2; - Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text; - Logic.TemplatePage templatePage = new Logic.TemplatePage(); - Logic.TemplatePage.s = logiciocnBtn.Tag.ToString(); - HomePage.Instance.AddChidren(templatePage); - HomePage.Instance.PageIndex += 1; - templatePage.Show(); - } - }; - logiciocnBtn.MouseUpEventHandler += iconclick; - logicnameBtn.MouseUpEventHandler += iconclick; - } - } - else - { - scenehorizontalScrol.Height = Application.GetRealHeight(0); - Yheight = 0; - } - logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight; - logicScrolView.Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight; - Automationview(logicScrolView); - }; - + var logicScrolView = new VerticalScrolViewLayout { }; + functionSceneAutoBodyView.AddChidren(logicScrolView); CommonPage.Loading.Start(); if (Common.Logic.LogicList.Count == 0) { @@ -1969,13 +1873,10 @@ if (Idlist.Count != 0) { var listlogic = await Logic.Send.ReadList(Idlist.Count); - for (int i = 0; i < Idlist.Count; i++) + foreach (var LogicId in Idlist) { - var LogicId = Idlist[i]; - //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆� - for (int j = 0; j < listlogic.Count; j++) + foreach (var logic in listlogic) { - var logic = listlogic[j]; if (logic.LogicId == LogicId) { Common.Logic.LogicList.Add(logic); @@ -1984,6 +1885,7 @@ } } } + //鑷姩鍖� Automationview(logicScrolView); CommonPage.Loading.Hide(); @@ -1998,87 +1900,68 @@ refresview.RemoveAll(); foreach (var logic in Common.Logic.LogicList) { - var bjRow = new RowLayout + var logicrowlayout = new RowLayout { - Width = Application.GetRealWidth(1080 - 58), - Height = Application.GetRealHeight(220), - LineColor = ZigbeeColor.Current.LogicBackgroundColor, - BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, - + Height = Application.GetRealHeight(180), + LineColor = ZigbeeColor.Current.LogicLineColor, }; - refresview.AddChidren(bjRow); + refresview.AddChidren(logicrowlayout); - var logicRowlayout = new RowLayout + var btnname = new Button { - Y = Application.GetRealHeight(220 - 190), - Height = Application.GetRealHeight(190), - Width = Application.GetRealWidth(1080 - 58 - 46), - LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, - X = Application.GetRealWidth(46), - }; - bjRow.AddChidren(logicRowlayout); - - var logicnameBtn = new Button - { - Height = Application.GetRealHeight(58), - Width = Application.GetRealWidth(350), + //Text = "閫昏緫涓�", Text = logic.LogicName, - X = Application.GetRealWidth(12), + X = Application.GetRealWidth(50), TextAlignment = TextAlignment.CenterLeft, + Gravity = Gravity.CenterVertical, TextColor = ZigbeeColor.Current.LogicTextBlackColor, }; - logicRowlayout.AddChidren(logicnameBtn); + logicrowlayout.AddChidren(btnname); - - var logicswitchBtn = new Button + var btnswitch = new Button { - Width = Application.GetMinRealAverage(104), - Height = Application.GetMinRealAverage(63), - UnSelectedImagePath = "ZigeeLogic/logicclose.png", - SelectedImagePath = "ZigeeLogic/logicopen.png", - X = logicRowlayout.Width - Application.GetRealWidth(104 + 58), - Y = Application.GetRealHeight(58 + 30 + 9), + Width = Application.GetMinRealAverage(183), + Height = Application.GetMinRealAverage(123), + UnSelectedImagePath = "ZigeeLogic/Switch.png", + SelectedImagePath = "ZigeeLogic/SwitchSelected.png", + X = Application.GetRealWidth(1080 - 200), + Gravity = Gravity.CenterVertical, }; - logicRowlayout.AddChidren(logicswitchBtn); + logicrowlayout.AddChidren(btnswitch); - - - logicswitchBtn.MouseUpEventHandler += (sender1, e1) => + btnswitch.MouseUpEventHandler += (sender1, e1) => { - logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected; - if (logicswitchBtn.IsSelected) + btnswitch.IsSelected = !btnswitch.IsSelected; + if (btnswitch.IsSelected) { //閫昏緫寮� logic.IsEnable = 1; - StatusColor(logic, logicRowlayout, 1); } else { //閫昏緫鍏� logic.IsEnable = 0; - StatusColor(logic, logicRowlayout, 0); } Logic.Send.LogicControlSwitch(logic); //Logic.Send.AddModifyLogic(logic); }; if (logic.IsEnable == 1) { - logicswitchBtn.IsSelected = true; - StatusColor(logic, logicRowlayout, 1); + btnswitch.IsSelected = true; } else if (logic.IsEnable == 0) { - logicswitchBtn.IsSelected = false; - StatusColor(logic, logicRowlayout, 0); + btnswitch.IsSelected = false; } ///缂栬緫 var edit = new Button { - BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1, + //TextID = MyInternationalizationString.Musicdel + BackgroundColor = 0xFF00aaf0, Text = Language.StringByID(MyInternationalizationString.edit), - TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, + TextColor = ZigbeeColor.Current.LogicTextBlackColor, }; - bjRow.AddRightView(edit); + logicrowlayout.AddRightView(edit); edit.MouseUpEventHandler += (sender, e) => { Common.Logic.LogicDviceList.Clear(); @@ -2088,9 +1971,9 @@ } Common.Logic.CurrentLogic = logic; var logicCommunalPage = new Logic.LogicCommunalPage(); - HomePage.Instance.AddChidren(logicCommunalPage); - HomePage.Instance.PageIndex += 1; - logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview); }); + UserView.HomePage.Instance.AddChidren(logicCommunalPage); + UserView.HomePage.Instance.PageIndex += 1; + logicCommunalPage.Show(() => { btnname.Text = logic.LogicName; Automationview(refresview); }); }; @@ -2098,26 +1981,16 @@ ///鍒犻櫎 var del = new Button { - BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1, + //TextID = MyInternationalizationString.Musicdel, + BackgroundColor = 0xFFFF0000, Text = Language.StringByID(MyInternationalizationString.del), - TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; - bjRow.AddRightView(del); + logicrowlayout.AddRightView(del); del.MouseUpEventHandler += (sender, e) => { - var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete), - Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim)); - alert.ResultEventHandler += (sender1, e1) => - { - if (e1) - { - Common.Logic.LogicList.Remove(logic); - Automationview(refresview); - Logic.Send.DelLogic(logic.LogicId); - } - }; - alert.Show(); - + Common.Logic.LogicList.Remove(logic); + Automationview(refresview); + Logic.Send.DelLogic(logic.LogicId); }; } @@ -2198,399 +2071,5 @@ } #endregion - - private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue) - { - - var logictimeBtn = new Button - { - Height = Application.GetRealHeight(58), - Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350), - X = Application.GetRealWidth(365), - TextAlignment = TextAlignment.CenterRight, - TextColor = ZigbeeColor.Current.LogicListWeekTextColor, - }; - logicRowlayout.AddChidren(logictimeBtn); - - ///鏄剧ず鎵ц鍛ㄦ湡 - switch (logic.TimeAttribute.Repeat) - { - ///0:鍙墽琛屼竴娆★紝鎵ц鍚嶪sEnable鍊肩疆;1,浠婂勾鍐呮墽琛�;2锛氭瘡澶╂墽琛�;3锛氭瘡鏈堟墽琛�;4锛氭瘡骞存墽琛�;5锛氬懆閲嶅銆� - case 0: - { - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.executeonce); - }; break; - case 1: { }; break; - case 2: - { - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyday); - }; break; - case 3: - { - - string len = "", value = ""; - var stringvalue = Convert.ToString(logic.TimeAttribute.MonthDate, 2); - var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length)); - for (int j = 31; j >= 0; j--) - { - len += str.Substring(j, 1); - } - for (int j = 0; j < len.Length; j++) - { - var strvalue = len.Substring(j, 1); - if (strvalue == "1") - { - value += (j + 1).ToString() + ","; - } - } - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day); - - }; break; - case 4: - { - - Dictionary<int, int> dictionary = new Dictionary<int, int>(); - ///鎵惧嚭鎵ц鐨勬湀浠藉拰澶╂暟 - if (logic.TimeAttribute.SelectMonDate.Count != 0) - { - for (int i = 0; i < logic.TimeAttribute.SelectMonDate.Count; i++) - { - var dayvalue = logic.TimeAttribute.SelectMonDate[i]; - if (dayvalue != 0) - { - dictionary.Add(i + 1, dayvalue); - } - } - } - if (dictionary.Count != 0 && dictionary.Count == 1) - { - string len = "", leng = ""; - int minvalue = 0, Maximum = 0; - foreach (var value in dictionary) - { - ///鍙栧嚭鏈堜唤 - var month = value.Key; - ///鍙栧嚭鏃ユ暟 - var day = value.Value; - var maxvalue = Convert.ToString(day, 2); - var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length)); - for (int j = 31; j >= 0; j--) - { - len += str.Substring(j, 1); - } - - for (int j = 0; j < len.Length; j++) - { - var strvalue = len.Substring(j, 1); - if (strvalue == "1") - { - minvalue = j + 1; - break; - } - } - for (int j = 0; j < len.Length; j++) - { - var strvalue = len.Substring(j, 1); - if (strvalue == "1") - { - Maximum = j + 1; - } - } - - if (month.ToString().Length < 2) - { - leng = "0" + month.ToString(); - } - else - { - leng = month.ToString(); - } - if (minvalue == Maximum) - { - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()); - } - else - { - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString()); - } - } - - } - else - { - int b = 0; - string stringtext = ""; - foreach (var value in dictionary) - { - string len = "", leng = ""; - int minvalue = 0, Maximum = 0; - ///鍙栧嚭鏈堜唤 - var month = value.Key; - ///鍙栧嚭鏃ユ暟 - var day = value.Value; - var maxvalue = Convert.ToString(day, 2); - var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length)); - for (int j = 31; j >= 0; j--) - { - len += str.Substring(j, 1); - } - - - if (month.ToString().Length < 2) - { - leng = "0" + month.ToString(); - } - else - { - leng = month.ToString(); - } - - - - if (b == 0) - { - for (int j = 0; j < len.Length; j++) - { - var strvalue = len.Substring(j, 1); - if (strvalue == "1") - { - minvalue = j + 1; - break; - } - } - stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-"; - - } - - if (b == dictionary.Count - 1) - { - for (int j = 0; j < len.Length; j++) - { - var strvalue = len.Substring(j, 1); - if (strvalue == "1") - { - Maximum = j + 1; - } - } - stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString()); - - } - b++; - } - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext; - } - - }; break; - case 5: - { - string len = "", text = ""; - List<int> listvalueInt = new List<int>(); - listvalueInt.Clear(); - var maxvalue = Convert.ToString(logic.TimeAttribute.WeekDay, 2); - var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length)); - for (int j = 7; j >= 0; j--) - { - len += str.Substring(j, 1); - } - - for (int j = 0; j < len.Length; j++) - { - var strvalue = len.Substring(j, 1); - if (strvalue == "1") - { - listvalueInt.Add(j + 1); - - - if ((j + 1) == 1) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ","; - //text += Language.StringByID(MyInternationalizationString.mon) + ","; - } - else if ((j + 1) == 2) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ","; - //text += Language.StringByID(MyInternationalizationString.tue) + ","; - } - else if ((j + 1) == 3) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ","; - //text += Language.StringByID(MyInternationalizationString.wed) + ","; - } - else if ((j + 1) == 4) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ","; - //text += Language.StringByID(MyInternationalizationString.thu) + ","; - } - else if ((j + 1) == 5) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ","; - //text += Language.StringByID(MyInternationalizationString.frl) + ","; - } - else if ((j + 1) == 6) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ","; - //text += Language.StringByID(MyInternationalizationString.sat) + ","; - } - else if ((j + 1) == 7) - { - text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ","; - //text += Language.StringByID(MyInternationalizationString.sun) + ","; - } - - - } - } - //鏆傛椂闅愯棌鎺夛紝闇�瑕佹樉绀哄懆鏈拰宸ヤ綔鏃ュ啀鏀惧紑锛� - //if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7)) - //{ - // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday); - //} - //else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7)) - //{ - // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend); - //} - //else if (listvalueInt.Count == 7) - //{ - // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday); - //} - //else - //{ - // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(','); - //} - logictimeBtn.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(','); - //btndisplaycycle.Text = text.TrimEnd(','); - }; break; - } - - List<string> indexlist = new List<string>(); - List<string> iconIndexlist = new List<string>(); - for (int i = 0; i < logic.Actions.Count; i++) - { - var linkType = logic.Actions[i]["LinkType"].ToString(); - var d = indexlist.Find((value) => { return value == linkType; }); - if (d == null) - { - indexlist.Add(linkType); - } - } - if (indexlist.Contains("0")) - { - iconIndexlist.Add("0"); - } - if (indexlist.Contains("2")) - { - iconIndexlist.Add("2"); - } - if (indexlist.Contains("6")) - { - iconIndexlist.Add("6"); - } - if (indexlist.Contains("7")) - { - iconIndexlist.Add("7"); - } - for (int i = 0; i < iconIndexlist.Count; i++) - { - var iconindex = iconIndexlist[i]; - var typebjBtn = new FrameLayout - { - Width = Application.GetRealWidth(82), - Height = Application.GetRealHeight(82), - X = Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i), - Y = Application.GetRealHeight(58 + 30), - Radius = (uint)Application.GetRealHeight(41), - BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, - }; - logicRowlayout.AddChidren(typebjBtn); - - var typeIconBtn = new Button - { - Width = Application.GetRealWidth(58), - Height = Application.GetRealHeight(58), - Gravity = Gravity.Center, - - }; - typebjBtn.AddChidren(typeIconBtn); - - var connectIconBtn = new Button - { - Y = typebjBtn.Y + Application.GetRealHeight(35), - X = Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i), - Width = Application.GetRealWidth(48), - Height = Application.GetRealHeight(15), - UnSelectedImagePath = "ZigeeLogic/connect.png", - }; - logicRowlayout.AddChidren(connectIconBtn); - if (iconIndexlist.Count - 1 == i) - { - connectIconBtn.Visible = false; - } - switch (iconindex) - { - case "0": - { - if (intvalue == 1) - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color; - } - else - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - } - } - break; - case "2": - { - - if (intvalue == 1) - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/scene1.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicScene1Color; - } - else - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/noscene.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - } - - } - break; - case "6": - { - if (intvalue == 1) - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/security1.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicSecurity1Color; - - } - else - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nosecurity.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - } - - } - break; - case "7": - { - if (intvalue == 1) - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/delay1.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicDelay1Color; - } - else - { - typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nodelay.png"; - typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - } - - } - break; - - } - } - } } } -- Gitblit v1.8.0