From 9904031f5291daaf56985146bb671f25e18ebbdf Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 02 四月 2020 19:51:31 +0800 Subject: [PATCH] 最新代码 --- ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs | 3817 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,909 insertions(+), 1,908 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs index ba9b610..0e65470 100755 --- a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs @@ -1,1911 +1,1912 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Globalization; -using Shared.Common; -using Shared.Phone.Device.CommonForm; -using Shared.Phone.Device.Room; -using Shared.Phone.UserCenter; +锘縰sing System; +using System.Collections.Generic; +using System.Globalization; +using Shared.Common; +using Shared.Phone.Device.CommonForm; +using Shared.Phone.Device.Room; +using Shared.Phone.UserCenter; using ZigBee.Device; -using static ZigBee.Device.Scene; - -namespace Shared.Phone.Device.Category -{ - public class CategoryAddScene : FrameLayout - { - #region 鈼� 鍙橀噺____________________________ - /// <summary> - /// bodyFrameLayout - /// </summary> - private FrameLayout bodyFrameLayout; - ///// <summary> - ///// floorIds - ///// </summary> - //List<string> floorIds = new List<string> { }; - ///// <summary> - ///// floorNames - ///// </summary> - //List<string> floorNames = new List<string> { }; - ///// <summary> - ///// roomNames - ///// </summary> - //List<List<string>> roomNames = new List<List<string>> { }; - ///// <summary> - ///// roomNames - ///// </summary> - //List<List<Common.Room>> rooms = new List<List<Common.Room>> { }; - /// <summary> - /// ImagePath - /// </summary> - private string ImagePath="SceneIcon/1.png"; - /// <summary> - /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱 - /// </summary> - public int IconPathType = 0; - /// <summary> - /// curRoom - /// </summary> - private Common.Room curRoom; - /// <summary> - /// sceneTargetDevicesList - /// </summary> - private List<SceneTargetDeviceUI> sceneTargetDevicesList = new List<SceneTargetDeviceUI> { }; - /// <summary> - /// 娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃 - /// </summary> - public FrameLayout TargetListScrolView; - /// <summary> - /// The confirm button. - /// </summary> - private CommonForm.CompleteButton confirmBtn; - - /// <summary> - /// backGround - /// </summary> - private ImageView backGround; - - /// <summary> - /// 鏄惁淇敼 - /// </summary> - public bool isModify; - /// <summary> - /// 淇敼鐨勫満鏅� - /// </summary> - public SceneUI modifySceneUI; - /// <summary> - /// 璁板綍缂栬緫鍓嶇殑璁惧鍒楄〃 - /// </summary> - public List<SceneTargetDeviceUI> modifySceneTargetDevicesList; - /// <summary> - /// modifyRoom - /// </summary> - public Common.Room modifyRoom; - - /// <summary> - /// OldBackgroundImagePath - /// </summary> - private string OldBackgroundImagePath; - /// <summary> - /// OldIconPathType - /// </summary> - public int OldIconPathType; - - /// <summary> - /// selectedTimeAction - /// </summary> - private Action<SceneTargetDeviceUI> selectedAction; - /// <summary> - /// 淇敼鍦烘櫙action - /// </summary> - public Action<SceneUI, Common.Room> EditorAction; - /// <summary> - /// 娣诲姞鍦烘櫙action - /// </summary> - public Action AddAction; - - #endregion - - /// <summary> - /// CategoryAddScene - /// </summary> - public CategoryAddScene() - { - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; - } - /// <summary> - /// RemoveFromParent - /// </summary> - public override void RemoveFromParent() - { - UserView.HomePage.Instance.ScrollEnabled = true; - base.RemoveFromParent(); - } - /// <summary> - ///鍒锋柊娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃 - /// </summary> - public void RefreshTargetListView() - { - UserView.HomePage.Instance.ScrollEnabled = false; - TargetListScrolView.RemoveAll(); - TargetListScrolView.Height = Application.GetRealHeight(173); - var TargetListScrolBackView = new FrameLayout() - { - Height = Application.GetRealHeight(173), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - TargetListScrolView.AddChidren(TargetListScrolBackView); - - if (sceneTargetDevicesList.Count > 0) - { - if (sceneTargetDevicesList.Count > 1) - { - TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200); - TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13); - } - - for (int i = 0; i < sceneTargetDevicesList.Count; i++) - { - var targetDevice = sceneTargetDevicesList[i]; - var targetRowLayout = new RowLayout() - { - Y = Application.GetRealHeight(i * 140), - Height = Application.GetRealHeight(140), - LineColor = ZigbeeColor.Current.GXCClearColor, - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - SubViewWidth = Application.GetRealWidth(184) - }; - TargetListScrolView.AddChidren(targetRowLayout); - string devImgPath = string.Empty; - string devNameText = string.Empty; - if (targetDevice.Type == 0) - { - if (targetDevice.DeviceUI == null ) continue; - devImgPath = targetDevice.DeviceUI.IconPath; - devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI); - - var targetRow = new SceneTargetFunctionRow(13); - targetRow.Init(); - targetRow.SetIcon(devImgPath); - targetRow.SetNameText(devNameText); - targetRow.SetZoneText(HdlRoomLogic.Current.GetRoomNameByDevice(targetDevice.DeviceUI, ",")); - targetRow.SetStatuText(targetDevice.GetDeviceStatu()); - targetRowLayout.AddChidren(targetRow); - if (i == sceneTargetDevicesList.Count - 1) - { - targetRow.HideLine(true); - } - } - else if (targetDevice.Type == 2) - { - devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime); - devNameText += Language.StringByID(R.MyInternationalizationString.Later); - var targetRow = new SceneTargetTimeRow(13); - targetRow.Init(); - targetRow.SetTitle(devNameText); - targetRowLayout.AddChidren(targetRow); - if (i == sceneTargetDevicesList.Count - 1) - { - targetRow.HideLine(true); - } - } - else if (targetDevice.Type == 1) - { - devImgPath = "Scene/SceneIcon.png"; - devNameText = targetDevice.SceneName; - - var targetRow = new SceneTargetFunctionRow(13); - targetRow.Init(); - targetRow.SetIcon(devImgPath); - targetRow.SetNameText(devNameText); - targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id)); - targetRowLayout.AddChidren(targetRow); - if (i == sceneTargetDevicesList.Count - 1) - { - targetRow.HideLine(true); - } - } - - var editBtn = new RowLayoutEditButton(); - targetRowLayout.AddRightView(editBtn); - //缂栬緫璁惧 - editBtn.MouseUpEventHandler += detailMouseUpEventHandler; - var delBtn = new RowLayoutDeleteButton(); - targetRowLayout.AddRightView(delBtn); - //鍒犻櫎璁惧 - delBtn.MouseUpEventHandler += (sender, e) => - { - sceneTargetDevicesList.Remove(targetDevice); - RefreshTargetListView(); - }; - - //璁惧璇︾粏璁剧疆鐣岄潰 - void detailMouseUpEventHandler(object sender, MouseEventArgs e) - { - if (targetDevice.Type == 0) - { - if (targetDevice.DeviceUI == null) - { - return; - } - - ShowSelectAction(targetDevice.DeviceUI, targetDevice); - selectedAction = (selectedDevice) => - { - var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID); - if (targetDeviceUI != null) - { - targetDeviceUI.DeviceUI = selectedDevice.DeviceUI; - targetDeviceUI.TaskList = selectedDevice.TaskList; - } - RefreshTargetListView(); - }; - - } - else if (targetDevice.Type == 2) - { - var delayTimeView = new SelectDelayTime(); - UserView.HomePage.Instance.AddChidren(delayTimeView); - UserView.HomePage.Instance.PageIndex += 1; - delayTimeView.sceneTargetDevice = targetDevice; - delayTimeView.totalSecond = targetDevice.DelayTime; - delayTimeView.Show(); - delayTimeView.selectedTimeAction = (second) => - { - var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID); - if (targetDeviceUI != null) - { - targetDeviceUI.DelayTime = second.DelayTime; - } - RefreshTargetListView(); - }; - } - else if (targetDevice.Type == 1) - { - var sceneView = new SelectScene(); - UserView.HomePage.Instance.AddChidren(sceneView); - UserView.HomePage.Instance.PageIndex += 1; - sceneView.sceneTargetDevice = targetDevice; - sceneView.sceneUI = targetDevice.SceneUI; - sceneView.currentSceneUI = modifySceneUI; - sceneView.Show(); - sceneView.selectedAction = (selectedScene) => - { - var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID); - if (targetDeviceUI != null) - { - targetDeviceUI.SceneName = selectedScene.SceneName; - targetDevice.SceneUI = selectedScene.SceneUI; - targetDevice.ElseScenesId = selectedScene.ElseScenesId; - } - RefreshTargetListView(); - }; - } - } - } - } - } - /// <summary> - /// Show this instance. - /// </summary> - public void Show() - { - Init(); - - AddTop(); - - AddBodyView(); - - } - - #region Add____________________________________ - - /// <summary> - /// Init - /// </summary> - private void Init() - { - - } - - /// <summary> - /// AddTop - /// </summary> - private void AddTop() - { - var top = new TopFrameLayout(); - AddChidren(top); - top.InitTopview(); - if(isModify) - { - top.SetTopTitle(R.MyInternationalizationString.EditorScene); - } - else - { - top.SetTopTitle(R.MyInternationalizationString.AddScence); - } - top.backButton.MouseUpEventHandler += (sender, e) => - { - RemoveFromParent(); - }; - } - - /// <summary> - /// AddBodyView - /// </summary> - private void AddBodyView() - { - var bodyScrolView=new VerticalScrolViewLayout() - { - Y = Application.GetRealHeight(184), - Height = Application.GetRealHeight(1737), - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - }; - AddChidren(bodyScrolView); - - bodyFrameLayout = new FrameLayout() - { - Height = Application.GetRealHeight(1086+127), - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - }; - bodyScrolView.AddChidren(bodyFrameLayout); - - var imgFL = new FrameLayout - { - Height = Application.GetRealHeight(556), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - bodyFrameLayout.AddChidren(imgFL); - - var backGround1 = new ImageView() - { - Y = Application.GetRealHeight(46), - Width = Application.GetMinRealAverage(916), - Height = Application.GetMinRealAverage(487), - Gravity = Gravity.CenterHorizontal, - ImagePath = "Room/Room_Rectangle.png" - }; - imgFL.AddChidren(backGround1); - - backGround = new ImageView() - { - Y = Application.GetRealHeight(46), - Width = Application.GetMinRealAverage(887), - Height = Application.GetMinRealAverage(444), - Gravity = Gravity.CenterHorizontal, - Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius), - ImagePath = "SceneIcon/3.jpg" - }; - imgFL.AddChidren(backGround); - - var infoFL = new FrameLayout - { - Y = Application.GetRealHeight(588), - Height = Application.GetRealHeight(429), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - bodyFrameLayout.AddChidren(infoFL); - - var infoEdit = new Button - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Height = Application.GetRealHeight(130), - Width = Application.GetRealWidth(700), - TextID = R.MyInternationalizationString.EditInfo, - TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, - TextAlignment = TextAlignment.CenterLeft, - TextSize = 15, - //IsBold=true - }; - infoFL.AddChidren(infoEdit); - - - var nameRow = new DeviceInfoEditRow(130); - nameRow.Init(); - nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:"); - nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName); - infoFL.AddChidren(nameRow); - - var zoneRow = new DeviceInfoRow(257); - zoneRow.Init(); - zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:"); - //zoneRow.SetTitle(curRoom.Name); - infoFL.AddChidren(zoneRow); - zoneRow.HideLine(true); - - var targetFL = new FrameLayout() - { - Y = Application.GetRealHeight(1040), - Height = Application.GetRealHeight(346) - }; - bodyFrameLayout.AddChidren(targetFL); - - var targetBG = new FrameLayout - { - Height = Application.GetRealHeight(334), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - targetFL.AddChidren(targetBG); - - var addTargetFL = new FrameLayout - { - Y=Application.GetRealHeight(46), - Height = Application.GetRealHeight(127), - }; - targetFL.AddChidren(addTargetFL); - - var target = new Button() - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Height = Application.GetRealHeight(127) - 1, - Width = Application.GetRealWidth(600), - TextAlignment = TextAlignment.CenterLeft, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextID = R.MyInternationalizationString.AddScentTargetAction, - Gravity = Gravity.CenterVertical, - TextSize=15 - }; - addTargetFL.AddChidren(target); - - var targetAdd = new Button - { - X = Application.GetRealWidth(950), - Y = Application.GetRealHeight(46), - Width = Application.GetMinRealAverage(72), - Height = Application.GetMinRealAverage(72), - Gravity=Gravity.CenterVertical, - UnSelectedImagePath = "Item/Add.png", - }; - addTargetFL.AddChidren(targetAdd); - var targetLine = new Button() - { - Y = target.Bottom, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - addTargetFL.AddChidren(targetLine); - - TargetListScrolView = new FrameLayout() - { - Height = Application.GetRealHeight(173) - }; - bodyScrolView.AddChidren(TargetListScrolView); - - - - confirmBtn = new CommonForm.CompleteButton(1656, 907, 127); - confirmBtn.TextID = R.MyInternationalizationString.uFinish; - AddChidren(confirmBtn); - - if (isModify) - { - IconPathType = modifySceneUI.IconPathType; - OldIconPathType = modifySceneUI.IconPathType; - if (IconPathType != 0) - { - OldBackgroundImagePath = modifySceneUI.IconPath; - } - if (modifySceneUI.IconPathType == 0) - { - backGround.ImagePath = modifySceneUI.IconPath; - } - else - { - backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath); - } - nameRow.SetTitle(modifySceneUI.Name); - if (Config.Instance.Home.FloorDics.Count == 0) - { - zoneRow.SetTitle($"{modifyRoom.Name}"); - } - else - { - zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)}锛寋modifyRoom.Name}"); - } - curRoom = modifyRoom; - sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList); - } - - RefreshTargetListView(); - - #region event - - EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) => - { - if (curRoom != null && curRoom.IsSharedRoom) - { - RoomCommon.ShowTipRoomIsShared(); - return; - } - - int selectRow_Height = 150; - int selectRow_Width = 1034; - var selectFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor - }; - AddChidren(selectFL); - - var itemFL = new FrameLayout() - { - Y = Application.GetRealHeight(1276), - Height = Application.GetRealHeight(450), - Width = Application.GetRealWidth(selectRow_Width), - Gravity = Gravity.CenterHorizontal, - Radius = (uint)Application.GetRealHeight(35), - BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor - }; - selectFL.AddChidren(itemFL); - //itemFL.Animate = Animate.DownToUp; - - var selectLocalPicture = new Button() - { - Height = Application.GetRealHeight(selectRow_Height) - 1, - TextID = R.MyInternationalizationString.LocalPicture, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - TextSize=17 - }; - itemFL.AddChidren(selectLocalPicture); - var selectLocalLine = new Button() - { - Y = selectLocalPicture.Bottom, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - itemFL.AddChidren(selectLocalLine); - - var selectPhotographBtn = new Button() - { - Y = selectLocalLine.Bottom, - Height = Application.GetRealHeight(selectRow_Height) - 1, - TextID = R.MyInternationalizationString.Photograph, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - TextSize=17 - }; - itemFL.AddChidren(selectPhotographBtn); - var selectPhotographLine = new Button() - { - Y = selectPhotographBtn.Bottom, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2, - }; - itemFL.AddChidren(selectPhotographLine); - - var selectAblumsBtn = new Button() - { - Y = selectPhotographLine.Bottom, - Height = Application.GetRealHeight(selectRow_Height) - 1, - TextID = R.MyInternationalizationString.MyAblums, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - TextSize=17 - }; - itemFL.AddChidren(selectAblumsBtn); - - var cancelBtn = new Button() - { - Y = Application.GetRealHeight(1742), - Height = Application.GetRealHeight(selectRow_Height), - Width = Application.GetRealWidth(selectRow_Width), - Gravity = Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.Cancel, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor, - Radius = (uint)Application.GetRealHeight(35), - TextSize=17 - }; - selectFL.AddChidren(cancelBtn); - - selectLocalPicture.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - var localPic = new CategorySceneSelectImgByLocal(); - Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - localPic.Show(); - localPic.action = (imgPath) => - { - IconPathType = 0; - backGround.ImageBytes = null; - backGround.ImagePath = imgPath; - }; - }; - selectPhotographBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var fileName = $"SceneIcon_{tradeTime}.png"; - //閫氳繃鐩告満鎷嶇収瑁佸壀 - CropImage.TakePicture((imagePath) => +using static ZigBee.Device.Scene; + +namespace Shared.Phone.Device.Category +{ + public class CategoryAddScene : FrameLayout + { + #region 鈼� 鍙橀噺____________________________ + /// <summary> + /// bodyFrameLayout + /// </summary> + private FrameLayout bodyFrameLayout; + ///// <summary> + ///// floorIds + ///// </summary> + //List<string> floorIds = new List<string> { }; + ///// <summary> + ///// floorNames + ///// </summary> + //List<string> floorNames = new List<string> { }; + ///// <summary> + ///// roomNames + ///// </summary> + //List<List<string>> roomNames = new List<List<string>> { }; + ///// <summary> + ///// roomNames + ///// </summary> + //List<List<Common.Room>> rooms = new List<List<Common.Room>> { }; + /// <summary> + /// ImagePath + /// </summary> + private string ImagePath = "SceneIcon/1.png"; + /// <summary> + /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱 + /// </summary> + public int IconPathType = 0; + /// <summary> + /// curRoom + /// </summary> + private Common.Room curRoom; + /// <summary> + /// sceneTargetDevicesList + /// </summary> + private List<SceneTargetDeviceUI> sceneTargetDevicesList = new List<SceneTargetDeviceUI> { }; + /// <summary> + /// 娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃 + /// </summary> + public FrameLayout TargetListScrolView; + /// <summary> + /// The confirm button. + /// </summary> + private CommonForm.CompleteButton confirmBtn; + + /// <summary> + /// backGround + /// </summary> + private ImageView backGround; + + /// <summary> + /// 鏄惁淇敼 + /// </summary> + public bool isModify; + /// <summary> + /// 淇敼鐨勫満鏅� + /// </summary> + public SceneUI modifySceneUI; + /// <summary> + /// 璁板綍缂栬緫鍓嶇殑璁惧鍒楄〃 + /// </summary> + public List<SceneTargetDeviceUI> modifySceneTargetDevicesList; + /// <summary> + /// modifyRoom + /// </summary> + public Common.Room modifyRoom; + + /// <summary> + /// OldBackgroundImagePath + /// </summary> + private string OldBackgroundImagePath; + /// <summary> + /// OldIconPathType + /// </summary> + public int OldIconPathType; + + /// <summary> + /// selectedTimeAction + /// </summary> + private Action<SceneTargetDeviceUI> selectedAction; + /// <summary> + /// 淇敼鍦烘櫙action + /// </summary> + public Action<SceneUI, Common.Room> EditorAction; + /// <summary> + /// 娣诲姞鍦烘櫙action + /// </summary> + public Action AddAction; + + #endregion + + /// <summary> + /// CategoryAddScene + /// </summary> + public CategoryAddScene() + { + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; + } + /// <summary> + /// RemoveFromParent + /// </summary> + public override void RemoveFromParent() + { + UserView.HomePage.Instance.ScrollEnabled = true; + base.RemoveFromParent(); + } + /// <summary> + ///鍒锋柊娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃 + /// </summary> + public void RefreshTargetListView() + { + UserView.HomePage.Instance.ScrollEnabled = false; + TargetListScrolView.RemoveAll(); + TargetListScrolView.Height = Application.GetRealHeight(173); + var TargetListScrolBackView = new FrameLayout() + { + Height = Application.GetRealHeight(173), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + TargetListScrolView.AddChidren(TargetListScrolBackView); + + if (sceneTargetDevicesList.Count > 0) + { + if (sceneTargetDevicesList.Count > 1) + { + TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200); + TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13); + } + + for (int i = 0; i < sceneTargetDevicesList.Count; i++) + { + var targetDevice = sceneTargetDevicesList[i]; + var targetRowLayout = new RowLayout() { - if (string.IsNullOrEmpty(imagePath)) - { - return; - } - if (isModify) - { - if (IconPathType != 0) - { - Global.DeleteFilebyHomeId(backGround.ImagePath); - HdlAutoBackupLogic.DeleteFile(backGround.ImagePath); - } - } - - IconPathType = 1; - backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); - backGround.ImagePath = imagePath; - System.IO.File.Delete(imagePath); - - }, fileName, 2, 1); - }; - - selectAblumsBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var fileName = $"SceneIcon_{tradeTime}.png"; - //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀 - CropImage.SelectPicture((imagePath) => + Y = Application.GetRealHeight(i * 140), + Height = Application.GetRealHeight(140), + LineColor = ZigbeeColor.Current.GXCClearColor, + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, + SubViewWidth = Application.GetRealWidth(184) + }; + TargetListScrolView.AddChidren(targetRowLayout); + string devImgPath = string.Empty; + string devNameText = string.Empty; + if (targetDevice.Type == 0) { - if (string.IsNullOrEmpty(imagePath)) - { - return; - } - if (isModify) - { - if (IconPathType != 0) - { - Global.DeleteFilebyHomeId(backGround.ImagePath); - HdlAutoBackupLogic.DeleteFile(backGround.ImagePath); - } - } - - IconPathType = 2; - backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); - backGround.ImagePath = imagePath; - System.IO.File.Delete(imagePath); - - }, fileName, 2,1); - }; - - cancelBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - }; - selectFL.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - }; - }; - backGround.MouseUpEventHandler += backGroundIMGHander; - - //鍖哄煙 - EventHandler<MouseEventArgs> zoneHander = (sender, e) => - { - var zone = new SelectZone(); - zone.Init(); - zone.ZoneAction += (selectRoom) => - { - curRoom = selectRoom; - zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom)); - }; - }; - zoneRow.ClickBtn.MouseUpEventHandler += zoneHander; - - //鎵ц鐩爣-娣诲姞鎵ц璁惧 - EventHandler<MouseEventArgs> targetAddHander = (sender, e) => - { - - //if (curRoom == null) - //{ - // RoomCommon.ShowTipNoRoom(); - // return; - //} - if(curRoom != null) - { - if (curRoom.IsSharedRoom) - { - RoomCommon.ShowTipRoomIsShared(); - return; - } - } - - int selectRow_Height = 150; - int selectRow_Width = 1034; - var selectFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor - }; - AddChidren(selectFL); - - var itemFL = new FrameLayout() - { - Y = Application.GetRealHeight(1276), - Height = Application.GetRealHeight(450), - Width = Application.GetRealWidth(selectRow_Width), - Gravity=Gravity.CenterHorizontal, - Radius = (uint)Application.GetRealHeight(35), - BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor - }; - selectFL.AddChidren(itemFL); - //itemFL.Animate = Animate.DownToUp; - - var selectedFunctionBtn = new Button() - { - Height = Application.GetRealHeight(selectRow_Height) - 1, - TextID = R.MyInternationalizationString.Function, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - TextSize=17 - }; - itemFL.AddChidren(selectedFunctionBtn); - var selectedFunctionLine = new Button() - { - Y = selectedFunctionBtn.Bottom, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - itemFL.AddChidren(selectedFunctionLine); - - var selectedSceneBtn = new Button() - { - Y = selectedFunctionLine.Bottom, - Height = Application.GetRealHeight(selectRow_Height) - 1, - TextID = R.MyInternationalizationString.Scence, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - TextSize=17 - }; - itemFL.AddChidren(selectedSceneBtn); - var selectedSceneLine = new Button() - { - Y = selectedSceneBtn.Bottom, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2, - }; - itemFL.AddChidren(selectedSceneLine); - - var selectedTimerBtn = new Button() - { - Y = selectedSceneLine.Bottom, - Height = Application.GetRealHeight(selectRow_Height) - 1, - TextID = R.MyInternationalizationString.Delay, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - TextSize=17 - }; - itemFL.AddChidren(selectedTimerBtn); - - - var cancelBtn = new Button() - { - Y = Application.GetRealHeight(1742), - Height = Application.GetRealHeight(selectRow_Height), - Width = Application.GetRealWidth(selectRow_Width), - Gravity=Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.Cancel, - TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, - BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor, - Radius = (uint)Application.GetRealHeight(35), - TextSize=17 - }; - selectFL.AddChidren(cancelBtn); - - //娣诲姞鍔熻兘 - selectedFunctionBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - var deviceView = new SelectDevice(); - UserView.HomePage.Instance.AddChidren(deviceView); - UserView.HomePage.Instance.PageIndex += 1; - deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList; - deviceView.Show(); - deviceView.selectedAction = (selectedDevice) => - { - sceneTargetDevicesList.Add(selectedDevice); - RefreshTargetListView(); - }; - }; - //娣诲姞鍦烘櫙 - selectedSceneBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - var sceneView = new SelectScene(); - UserView.HomePage.Instance.AddChidren(sceneView); - UserView.HomePage.Instance.PageIndex += 1; - sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList; - sceneView.currentSceneUI = modifySceneUI; - sceneView.Show(); - sceneView.selectedAction = (selectedScene) => - { - sceneTargetDevicesList.Add(selectedScene); - RefreshTargetListView(); - }; - - }; - //娣诲姞鏃堕棿闂撮殧 - selectedTimerBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - var delayTimeView = new SelectDelayTime(); - UserView.HomePage.Instance.AddChidren(delayTimeView); - UserView.HomePage.Instance.PageIndex += 1; - delayTimeView.Show(); - delayTimeView.selectedTimeAction = (second) => - { - sceneTargetDevicesList.Add(second); - RefreshTargetListView(); - }; - }; - - cancelBtn.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - }; - selectFL.MouseUpEventHandler += (send, ee) => - { - selectFL.RemoveFromParent(); - }; - }; - targetAdd.MouseUpEventHandler += targetAddHander; - targetFL.MouseUpEventHandler += targetAddHander; - target.MouseUpEventHandler += targetAddHander; - addTargetFL.MouseUpEventHandler += targetAddHander; - //纭畾娣诲姞鐩爣 - confirmBtn.MouseUpEventHandler += async (sender, e) => - { - if (curRoom == null) - { - RoomCommon.ShowTipNoRoom(); - return; - } - if (curRoom.IsSharedRoom) - { - RoomCommon.ShowTipRoomIsShared(); - return; - } - - if(isModify) - { - if (string.IsNullOrEmpty(nameRow.NameText.Text)) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull)); - return; - } - else - { - try - { - var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var fileName = $"SceneIcon_{tradeTime}.png"; - if (modifySceneUI.Name != nameRow.NameText.Text.Trim()) - { - if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); - return; - } - var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim()); - var reName = r.sceneRenameResponseData.Result; - if (reName == 0) - { - return; - } - else if (reName == 1) - { - modifySceneUI.Name = nameRow.NameText.Text.Trim(); - - } - else if (reName == 2) - { - return; - } - } - if (OldIconPathType != 0) - { - Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath)); - HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath); - } - if (IconPathType == 1 || IconPathType == 2) - { - Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); - HdlAutoBackupLogic.AddOrEditorFile(fileName); - modifySceneUI.IconPath = fileName; - } - else - { - modifySceneUI.IconPath = backGround.ImagePath; - } - modifySceneUI.IconPathType = IconPathType; - - CommonPage.Loading.Start(); - var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>(); - for (int i = 0; i < sceneTargetDevicesList.Count; i++) - { - var sceneTarget = sceneTargetDevicesList[i]; - - if (sceneTarget.Type == 0) - { - if (sceneTarget.DeviceUI == null) - { - continue; - } - var memberData = new AddSceneMemberData - { - Type = 0, - ScenesId = 0, - DeviceAddr = sceneTarget.DeviceUI.DeviceAddr, - Epoint = sceneTarget.DeviceUI.DeviceEpoint, - TaskList = sceneTarget.TaskList, - DelayTime = 0, - MemberNumber = i + 1 - }; - memberDataList.Add(memberData); - } - else if (sceneTarget.Type == 1) - { - var memberData = new AddSceneMemberData - { - Type = 1, - ScenesId = 0, - ElseScenesId = sceneTarget.ElseScenesId, - DelayTime = 0, - MemberNumber = i + 1 - }; - memberDataList.Add(memberData); - } - else if (sceneTarget.Type == 2) - { - var memberData = new AddSceneMemberData - { - Type = 2, - ScenesId = 0, - DelayTime = sceneTarget.DelayTime, - MemberNumber = i + 1 - }; - memberDataList.Add(memberData); - } - } - - var sceneRemoveMemberData = new SceneRemoveMemberData { }; - var removeSceneDeviceListInfoList = new List<RemoveSceneDeviceListInfo> { }; - for (int i = 0; i < modifySceneTargetDevicesList.Count; i++) - { - var sceneTarget = modifySceneTargetDevicesList[i]; - if (sceneTarget.Type == 0) - { - if (sceneTarget.DeviceUI == null) - { - continue; - } - var removeDevice = new RemoveSceneDeviceListInfo - { - Type = 0, - DeviceAddr = sceneTarget.DeviceUI.DeviceAddr, - Epoint = sceneTarget.DeviceUI.DeviceEpoint, - MemberNumber = sceneTarget.DelayTimeSerialNumber - }; - removeSceneDeviceListInfoList.Add(removeDevice); - } - else if (sceneTarget.Type == 1) - { - var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo - { - Type = 1, - ElseScenesId = sceneTarget.ElseScenesId, - MemberNumber = sceneTarget.DelayTimeSerialNumber - }; - removeSceneDeviceListInfoList.Add(removeDevice); - } - else - { - var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo - { - Type = 2, - DelayTime = sceneTarget.DelayTime, - MemberNumber = sceneTarget.DelayTimeSerialNumber - }; - removeSceneDeviceListInfoList.Add(removeDevice); - } - } - sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList; - sceneRemoveMemberData.ScenesId = modifySceneUI.Id; - var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList); - if (result == 1) - { - if (modifyRoom != curRoom) - { - modifyRoom.ListSceneId.Remove(modifySceneUI.Id); - curRoom.ListSceneId.Add(modifySceneUI.Id); - modifyRoom.Save(); - curRoom.Save(); - } - EditorAction?.Invoke(modifySceneUI, curRoom); - RemoveFromParent(); - } - else if (result == 0) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain)); - } - else if (result == -1) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); - } - } - catch (Exception ex) - { - System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}"); - } - finally - { - CommonPage.Loading.Hide(); - } - } - } - else - { - //鏂板 - if (string.IsNullOrEmpty(nameRow.NameText.Text)) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull)); - return; - } - else - { - try - { - var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - var fileName = $"SceneIcon_{tradeTime}.png"; - string imgPath; - if (IconPathType == 1 || IconPathType == 2) - { - Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); - HdlAutoBackupLogic.AddOrEditorFile(fileName); - imgPath = fileName; - } - else - { - imgPath = backGround.ImagePath; - } - //if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) - //{ - // CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); - // return; - //} - CommonPage.Loading.Start(); - var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>(); - for (int i = 0; i < sceneTargetDevicesList.Count; i++) - { - var sceneTarget = sceneTargetDevicesList[i]; - - if (sceneTarget.Type == 0) - { - if (sceneTarget.DeviceUI == null) - { - continue; - } - var memberData = new AddSceneMemberData - { - Type = 0, - ScenesId = 0, - DeviceAddr = sceneTarget.DeviceUI.DeviceAddr, - Epoint = sceneTarget.DeviceUI.DeviceEpoint, - TaskList = sceneTarget.TaskList, - DelayTime = 0, - MemberNumber = i+1 - }; - memberDataList.Add(memberData); - } - else if (sceneTarget.Type == 1) - { - var memberData = new AddSceneMemberData - { - Type = 1, - ScenesId = 0, - ElseScenesId = sceneTarget.ElseScenesId, - DelayTime = 0, - MemberNumber = i+1 - }; - memberDataList.Add(memberData); - } - else if (sceneTarget.Type == 2) - { - var memberData = new AddSceneMemberData - { - Type = 2, - ScenesId = 0, - DelayTime = sceneTarget.DelayTime, - MemberNumber = i+1 - }; - memberDataList.Add(memberData); - } - } - - var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType); - if (result == 1) - { - AddAction?.Invoke(); - RemoveFromParent(); - } - else if (result == 0) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail)); - } - else if (result == -1) - { - CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); - } - } - catch (Exception ex) - { - System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}"); - } - finally - { - CommonPage.Loading.Hide(); - } - } - } - - }; - #endregion - } - - #endregion - - #region 缂栬緫璁惧____________________________________ - - /// <summary> - /// ShowSelectAction - /// </summary> - /// <param name="device"></param> - private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget) - { - var dialog = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor - }; - AddChidren(dialog); - - dialog.MouseUpEventHandler += (sender, e) => - { - dialog.RemoveFromParent(); - }; - - if (device.Type == ZigBee.Device.DeviceType.OnOffOutput) - { - SelectOnoffOutput(dialog, device, sceneTarget); - } - else if (device.Type == ZigBee.Device.DeviceType.AirSwitch) - { - SelectOnoffOutput(dialog, device, sceneTarget); - } - else if (device.Type == ZigBee.Device.DeviceType.DimmableLight) - { - SelectDimmableLight(dialog, device, sceneTarget); - } - else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) - { - SelectWindowCoveringDevice(dialog, device, sceneTarget); - } - else if (device.Type == ZigBee.Device.DeviceType.Thermostat) - { - SelectThermostat(dialog, device, sceneTarget); - } - } - - /// <summary> - /// 鐏厜 - /// </summary> - /// <param name="dialog"></param> - /// <param name="device"></param> - /// <param name="sceneTarget"></param> - private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) - { - var selectFL = new FrameLayout - { - Y = Application.GetRealHeight(1391), - Height = Application.GetRealHeight(530), - }; - dialog.AddChidren(selectFL); - //selectFL.Animate = Animate.DownToUp; - - var titleBG = new FrameLayout - { - Height = Application.GetRealHeight(138 * 2), - Radius = (uint)Application.GetRealHeight(58), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(titleBG); - - var titleFL = new FrameLayout - { - Height = Application.GetRealHeight(138), - }; - selectFL.AddChidren(titleFL); - - var line = new Button - { - Y = titleFL.Height - 1, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - titleFL.AddChidren(line); - - var cancleBtn = new Button - { - X = Application.GetRealWidth(80), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextGrayColor, - TextSize = 14, - TextAlignment = TextAlignment.CenterLeft, - TextID = R.MyInternationalizationString.Cancel - }; - titleFL.AddChidren(cancleBtn); - - var deviceName = new Button - { - Width = Application.GetRealWidth(600), - Gravity = Gravity.CenterHorizontal, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextSize = 16, - Text = Common.LocalDevice.Current.GetDeviceEpointName(device) - }; - titleFL.AddChidren(deviceName); - - var comfrimBtn = new Button - { - X = Application.GetRealWidth(800), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, - TextSize = 14, - TextAlignment = TextAlignment.CenterRight, - TextID = R.MyInternationalizationString.Complete - }; - titleFL.AddChidren(comfrimBtn); - - var itemFL = new FrameLayout - { - Y = titleFL.Bottom, - Height = Application.GetRealHeight(392), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(itemFL); - - var open = new SelectSceneStatuRow(0, 60); - itemFL.AddChidren(open); - open.Init(); - open.SetTitle(R.MyInternationalizationString.Open); - open.IsSelected = true; - - - var shut = new SelectSceneStatuRow(0, 60 + 127 + 30); - itemFL.AddChidren(shut); - shut.Init(); - shut.hideLine(true); - shut.SetTitle(R.MyInternationalizationString.Shut); - - open.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = true; - shut.IsSelected = false; - }; - - shut.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = false; - shut.IsSelected = true; - }; - - cancleBtn.MouseUpEventHandler = (sender, e) => - { - dialog.RemoveAll(); - dialog.RemoveFromParent(); - }; - - if (sceneTarget.TaskList.Count > 0) - { - if (sceneTarget.TaskList[0].Data1 == 1) - { - open.IsSelected = true; - shut.IsSelected = false; - } - else - { - open.IsSelected = false; - shut.IsSelected = true; - } - } - - comfrimBtn.MouseUpEventHandler = (sender, e) => - { - var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; - int taskType = 1; - int data1 = 0; - int data2 = 0; - - if (open.IsSelected) - { - //寮� - data1 = 1; - data2 = 0; - } - else - { - //鍏� - data1 = 0; - data2 = 0; - } - var taskInfo = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = data1, - Data2 = data2 - }; - taskList.Add(taskInfo); - - sceneTarget.TaskList = taskList; - sceneTarget.DeviceUI = device; - selectedAction?.Invoke(sceneTarget); - dialog.RemoveFromParent(); - }; - } - /// <summary> - /// 绐楀笜 - /// </summary> - /// <param name="dialog"></param> - /// <param name="device"></param> - /// <param name="sceneTarget"></param> - private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) - { - var selectFL = new FrameLayout - { - Y = Application.GetRealHeight(1169), - Height = Application.GetRealHeight(752), - }; - dialog.AddChidren(selectFL); - //selectFL.Animate = Animate.DownToUp; - - var titleBG = new FrameLayout - { - Height = Application.GetRealHeight(138 * 2), - Radius = (uint)Application.GetRealHeight(58), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(titleBG); - - var titleFL = new FrameLayout - { - Height = Application.GetRealHeight(138), - }; - selectFL.AddChidren(titleFL); - - var line = new Button - { - Y = titleFL.Height - 1, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - titleFL.AddChidren(line); - - var cancleBtn = new Button - { - X = Application.GetRealWidth(80), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextGrayColor, - TextSize = 14, - TextAlignment = TextAlignment.CenterLeft, - TextID = R.MyInternationalizationString.Cancel - }; - titleFL.AddChidren(cancleBtn); - - var deviceName = new Button - { - Width = Application.GetRealWidth(600), - Gravity = Gravity.CenterHorizontal, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextSize = 16, - Text = Common.LocalDevice.Current.GetDeviceEpointName(device) - }; - titleFL.AddChidren(deviceName); - - var comfrimBtn = new Button - { - X = Application.GetRealWidth(800), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, - TextSize = 14, - TextAlignment = TextAlignment.CenterRight, - TextID = R.MyInternationalizationString.Complete - }; - titleFL.AddChidren(comfrimBtn); - - var itemFL = new FrameLayout - { - Y = titleFL.Bottom, - Height = Application.GetRealHeight(613), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(itemFL); - - var open = new SelectDeviceWithSeekBarRow(0, 60); - itemFL.AddChidren(open); - open.Init(); - open.SetTitle(R.MyInternationalizationString.Open); - open.IsSelected = true; - - var shut = new SelectSceneStatuRow(0, 60 + 348 + 30); - itemFL.AddChidren(shut); - shut.Init(); - shut.hideLine(true); - shut.SetTitle(R.MyInternationalizationString.Shut); - - open.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = true; - shut.IsSelected = false; - }; - - shut.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = false; - shut.IsSelected = true; - }; - - cancleBtn.MouseUpEventHandler = (sender, e) => - { - dialog.RemoveAll(); - dialog.RemoveFromParent(); - }; - - open.SeekBar.OnProgressChangedEvent += (sender, e) => - { - open.IsSelected = true; - shut.IsSelected = false; - open.SetSeekBarTitle(); - }; - - if (sceneTarget.TaskList.Count > 0) - { - if (sceneTarget.TaskList[0].Data1 == 1) - { - open.IsSelected = false; - shut.IsSelected = true; - } - else - { - open.IsSelected = true; - shut.IsSelected = false; - open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2); - } - } - - comfrimBtn.MouseUpEventHandler = (sender, e) => - { - var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; - - int taskType = 6; - int data1 = 0; - int data2 = 0; - - if (shut.IsSelected) - { - //鍏� - data1 = 1; - data2 = 0; - } - else - { - //鐧惧垎姣� - data1 = 5; - data2 = open.SeekBar.Progress; - } - - var taskInfo = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = data1, - Data2 = data2 - }; - taskList.Add(taskInfo); - - sceneTarget.TaskList = taskList; - sceneTarget.DeviceUI = device; - selectedAction?.Invoke(sceneTarget); - dialog.RemoveFromParent(); - }; - } - /// <summary> - /// 璋冨厜鐏� - /// </summary> - /// <param name="dialog"></param> - /// <param name="device"></param> - /// <param name="sceneTarget"></param> - private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) - { - var selectFL = new FrameLayout - { - Y = Application.GetRealHeight(1169), - Height = Application.GetRealHeight(752), - }; - dialog.AddChidren(selectFL); - //selectFL.Animate = Animate.DownToUp; - - var titleBG = new FrameLayout - { - Height = Application.GetRealHeight(138 * 2), - Radius = (uint)Application.GetRealHeight(58), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(titleBG); - - var titleFL = new FrameLayout - { - Height = Application.GetRealHeight(138), - }; - selectFL.AddChidren(titleFL); - - var line = new Button - { - Y = titleFL.Height - 1, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - titleFL.AddChidren(line); - - var cancleBtn = new Button - { - X = Application.GetRealWidth(80), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextGrayColor, - TextSize = 14, - TextAlignment = TextAlignment.CenterLeft, - TextID = R.MyInternationalizationString.Cancel - }; - titleFL.AddChidren(cancleBtn); - - var deviceName = new Button - { - Width = Application.GetRealWidth(600), - Gravity = Gravity.CenterHorizontal, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextSize = 16, - TextAlignment = TextAlignment.CenterLeft, - Text = Common.LocalDevice.Current.GetDeviceEpointName(device) - }; - titleFL.AddChidren(deviceName); - - var comfrimBtn = new Button - { - X = Application.GetRealWidth(800), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, - TextSize = 14, - TextAlignment = TextAlignment.CenterRight, - TextID = R.MyInternationalizationString.Complete - }; - titleFL.AddChidren(comfrimBtn); - - var itemFL = new FrameLayout - { - Y = titleFL.Bottom, - Height = Application.GetRealHeight(613), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(itemFL); - - var open = new SelectDeviceWithSeekBarRow(0, 60); - itemFL.AddChidren(open); - open.Init(254); - open.SetTitle(R.MyInternationalizationString.Open); - open.IsSelected = true; - - var shut = new SelectSceneStatuRow(0, 60 + 348 + 30); - itemFL.AddChidren(shut); - shut.Init(); - shut.hideLine(true); - shut.SetTitle(R.MyInternationalizationString.Shut); - - open.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = true; - shut.IsSelected = false; - }; - - shut.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = false; - shut.IsSelected = true; - }; - - cancleBtn.MouseUpEventHandler = (sender, e) => - { - dialog.RemoveAll(); - dialog.RemoveFromParent(); - }; - - open.SeekBar.OnProgressChangedEvent += (sender, e) => - { - open.IsSelected = true; - shut.IsSelected = false; - open.SetSeekBarTitle(); - }; - - if (sceneTarget.TaskList.Count > 0) - { - if (sceneTarget.TaskList[0].Data1 == 0) - { - open.IsSelected = false; - shut.IsSelected = true; - } - else - { - open.IsSelected = true; - shut.IsSelected = false; - open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1); - } - } - - comfrimBtn.MouseUpEventHandler = (sender, e) => - { - var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; - - int taskType = 3; - int data1 = 0; - int data2 = 0; - - if (shut.IsSelected) - { - //鍏� - data1 = 0; - data2 = 0; - } - else - { - //鐧惧垎姣� - data1 = open.SeekBar.Progress; - data2 = 0; - } - - var taskInfo = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = data1, - Data2 = data2 - }; - taskList.Add(taskInfo); - - sceneTarget.TaskList = taskList; - sceneTarget.DeviceUI = device; - selectedAction?.Invoke(sceneTarget); - dialog.RemoveFromParent(); - }; - } - /// <summary> - /// 绌鸿皟 - /// </summary> - /// <param name="dialog"></param> - /// <param name="device"></param> - /// <param name="sceneTarget"></param> - private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) - { - /// 娓╁害 - int tempId=0; - /// 妯″紡 - int modelId=0; - /// 椋庨�� - int fanid=0; - - var selectFL = new FrameLayout - { - Y = Application.GetRealHeight(815), - Height = Application.GetRealHeight(1106), - }; - dialog.AddChidren(selectFL); - //selectFL.Animate = Animate.DownToUp; - - var titleBG = new FrameLayout - { - Height = Application.GetRealHeight(138 * 2), - Radius = (uint)Application.GetRealHeight(58), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(titleBG); - - var titleFL = new FrameLayout - { - Height = Application.GetRealHeight(138), - }; - selectFL.AddChidren(titleFL); - - var line = new Button - { - Y = titleFL.Height - 1, - Height = 1, - BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 - }; - titleFL.AddChidren(line); - - var cancleBtn = new Button - { - X = Application.GetRealWidth(80), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextGrayColor, - TextSize = 14, - TextAlignment = TextAlignment.CenterLeft, - TextID = R.MyInternationalizationString.Cancel - }; - titleFL.AddChidren(cancleBtn); - - var deviceName = new Button - { - Width = Application.GetRealWidth(600), - Gravity = Gravity.CenterHorizontal, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextSize = 16, - TextAlignment = TextAlignment.CenterLeft, - Text = Common.LocalDevice.Current.GetDeviceEpointName(device) - }; - titleFL.AddChidren(deviceName); - - var comfrimBtn = new Button - { - X = Application.GetRealWidth(800), - Width = Application.GetRealWidth(200), - TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, - TextSize = 14, - TextAlignment = TextAlignment.CenterRight, - TextID = R.MyInternationalizationString.Complete - }; - titleFL.AddChidren(comfrimBtn); - - var itemFL = new FrameLayout - { - Y = titleFL.Bottom, - Height = Application.GetRealHeight(968), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - selectFL.AddChidren(itemFL); - - var open = new SelectDeviceWithPickViewRow(0, 60); - itemFL.AddChidren(open); - open.Init(); - open.SetTitle(R.MyInternationalizationString.Open); - open.IsSelected = true; - - open.pickerView.OnSelectChangeEvent = (l1, l2, l3) => - { - tempId = l1; - modelId = l2; - fanid = l3; - }; - - var shut = new SelectSceneStatuRow(0, 60 + 703 + 30); - itemFL.AddChidren(shut); - shut.Init(); - shut.hideLine(true); - shut.SetTitle(R.MyInternationalizationString.Shut); - - open.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = true; - shut.IsSelected = false; - }; - - shut.ClickButton.MouseUpEventHandler += (sender, e) => - { - open.IsSelected = false; - shut.IsSelected = true; - }; - - cancleBtn.MouseUpEventHandler = (sender, e) => - { - dialog.RemoveAll(); - dialog.RemoveFromParent(); - }; - - if (sceneTarget.TaskList.Count > 0) - { - if (sceneTarget.TaskList.Count == 1) - { - open.IsSelected = false; - shut.IsSelected = true; - } - else - { - open.IsSelected = true; - shut.IsSelected = false; - - for (int i = 0; i < sceneTarget.TaskList.Count; i++) - { - var tasklist = sceneTarget.TaskList[i]; - if (tasklist.Data1 == 6) - { - fanid = open.fanList.IndexOf(tasklist.Data2); - } - if (tasklist.Data1 == 3) - { - modelId = open.modeList.IndexOf(tasklist.Data2); - } - if (tasklist.Data1 == 4 || tasklist.Data1 == 5) - { - tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100); - } - } - open.pickerView.setCurrentItems(tempId, modelId, fanid); - } - } - - comfrimBtn.MouseUpEventHandler = (sender, e) => - { - - var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; - - int taskType = 5; - int data1 = 0; - int data2 = 0; - - if (shut.IsSelected) - { - //鍏� - data1 = 3; - data2 = 0; - var taskInfo = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = data1, - Data2 = data2 - }; - taskList.Add(taskInfo); - } - else - { - //fan - var taskInfo = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = 6, - Data2 = open.fanList[fanid] - }; - taskList.Add(taskInfo); - - //mode - var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = 3, - Data2 = open.modeList[modelId] - }; - taskList.Add(taskInfo2); - - //tem - if (open.modeList[modelId] == 4) - { - //heat - var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = 4, - Data2 = open.temperatureList[tempId] * 100 - }; - taskList.Add(taskInfo3); - - } - else - { - //heat - var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo - { - TaskType = taskType, - Data1 = 5, - Data2 = open.temperatureList[tempId] * 100 - }; - taskList.Add(taskInfo3); - } - } - - sceneTarget.TaskList = taskList; - sceneTarget.DeviceUI = device; - selectedAction?.Invoke(sceneTarget); - dialog.RemoveFromParent(); - }; - } - - #endregion - - } -} + if (targetDevice.DeviceUI == null) continue; + devImgPath = targetDevice.DeviceUI.IconPath; + devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI); + + var targetRow = new SceneTargetFunctionRow(13); + targetRow.Init(); + targetRow.SetIcon(devImgPath); + targetRow.SetNameText(devNameText); + targetRow.SetZoneText(HdlRoomLogic.Current.GetRoomNameByDevice(targetDevice.DeviceUI, ",")); + targetRow.SetStatuText(targetDevice.GetDeviceStatu()); + targetRowLayout.AddChidren(targetRow); + if (i == sceneTargetDevicesList.Count - 1) + { + targetRow.HideLine(true); + } + } + else if (targetDevice.Type == 2) + { + devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime); + devNameText += Language.StringByID(R.MyInternationalizationString.Later); + var targetRow = new SceneTargetTimeRow(13); + targetRow.Init(); + targetRow.SetTitle(devNameText); + targetRowLayout.AddChidren(targetRow); + if (i == sceneTargetDevicesList.Count - 1) + { + targetRow.HideLine(true); + } + } + else if (targetDevice.Type == 1) + { + devImgPath = "Scene/SceneIcon.png"; + devNameText = targetDevice.SceneName; + + var targetRow = new SceneTargetFunctionRow(13); + targetRow.Init(); + targetRow.SetIcon(devImgPath); + targetRow.SetNameText(devNameText); + targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id)); + targetRowLayout.AddChidren(targetRow); + if (i == sceneTargetDevicesList.Count - 1) + { + targetRow.HideLine(true); + } + } + + var editBtn = new RowLayoutEditButton(); + targetRowLayout.AddRightView(editBtn); + //缂栬緫璁惧 + editBtn.MouseUpEventHandler += detailMouseUpEventHandler; + var delBtn = new RowLayoutDeleteButton(); + targetRowLayout.AddRightView(delBtn); + //鍒犻櫎璁惧 + delBtn.MouseUpEventHandler += (sender, e) => + { + sceneTargetDevicesList.Remove(targetDevice); + RefreshTargetListView(); + }; + + //璁惧璇︾粏璁剧疆鐣岄潰 + void detailMouseUpEventHandler(object sender, MouseEventArgs e) + { + if (targetDevice.Type == 0) + { + if (targetDevice.DeviceUI == null) + { + return; + } + + ShowSelectAction(targetDevice.DeviceUI, targetDevice); + selectedAction = (selectedDevice) => + { + var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID); + if (targetDeviceUI != null) + { + targetDeviceUI.DeviceUI = selectedDevice.DeviceUI; + targetDeviceUI.TaskList = selectedDevice.TaskList; + } + RefreshTargetListView(); + }; + + } + else if (targetDevice.Type == 2) + { + var delayTimeView = new SelectDelayTime(); + UserView.HomePage.Instance.AddChidren(delayTimeView); + UserView.HomePage.Instance.PageIndex += 1; + delayTimeView.sceneTargetDevice = targetDevice; + delayTimeView.totalSecond = targetDevice.DelayTime; + delayTimeView.Show(); + delayTimeView.selectedTimeAction = (second) => + { + var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID); + if (targetDeviceUI != null) + { + targetDeviceUI.DelayTime = second.DelayTime; + } + RefreshTargetListView(); + }; + } + else if (targetDevice.Type == 1) + { + var sceneView = new SelectScene(); + UserView.HomePage.Instance.AddChidren(sceneView); + UserView.HomePage.Instance.PageIndex += 1; + sceneView.sceneTargetDevice = targetDevice; + sceneView.sceneUI = targetDevice.SceneUI; + sceneView.currentSceneUI = modifySceneUI; + sceneView.Show(); + sceneView.selectedAction = (selectedScene) => + { + var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID); + if (targetDeviceUI != null) + { + targetDeviceUI.SceneName = selectedScene.SceneName; + targetDevice.SceneUI = selectedScene.SceneUI; + targetDevice.ElseScenesId = selectedScene.ElseScenesId; + } + RefreshTargetListView(); + }; + } + } + } + } + } + /// <summary> + /// Show this instance. + /// </summary> + public void Show() + { + Init(); + + AddTop(); + + AddBodyView(); + + } + + #region Add____________________________________ + + /// <summary> + /// Init + /// </summary> + private void Init() + { + + } + + /// <summary> + /// AddTop + /// </summary> + private void AddTop() + { + var top = new TopFrameLayout(); + AddChidren(top); + top.InitTopview(); + if (isModify) + { + top.SetTopTitle(R.MyInternationalizationString.EditorScene); + } + else + { + top.SetTopTitle(R.MyInternationalizationString.AddScence); + } + top.backButton.MouseUpEventHandler += (sender, e) => + { + RemoveFromParent(); + }; + } + + /// <summary> + /// AddBodyView + /// </summary> + private void AddBodyView() + { + var bodyScrolView = new VerticalScrolViewLayout() + { + Y = Application.GetRealHeight(184), + Height = Application.GetRealHeight(1737), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, + }; + AddChidren(bodyScrolView); + + bodyFrameLayout = new FrameLayout() + { + Height = Application.GetRealHeight(1086 + 127), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, + }; + bodyScrolView.AddChidren(bodyFrameLayout); + + var imgFL = new FrameLayout + { + Height = Application.GetRealHeight(559), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + bodyFrameLayout.AddChidren(imgFL); + + var backGround1 = new ImageView() + { + Y = Application.GetRealHeight(46), + Width = Application.GetMinRealAverage(916), + Height = Application.GetMinRealAverage(487), + Gravity = Gravity.CenterHorizontal, + ImagePath = "Room/Room_Rectangle.png" + }; + imgFL.AddChidren(backGround1); + + backGround = new ImageView() + { + Y = Application.GetRealHeight(46), + Width = Application.GetMinRealAverage(887), + Height = Application.GetMinRealAverage(444), + Gravity = Gravity.CenterHorizontal, + Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius), + ImagePath = "SceneIcon/3.png" + }; + imgFL.AddChidren(backGround); + + var infoFL = new FrameLayout + { + Y = imgFL.Bottom + Application.GetRealHeight(23), + Height = Application.GetRealHeight(418), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + bodyFrameLayout.AddChidren(infoFL); + + var infoEdit = new Button + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(130), + Width = Application.GetRealWidth(700), + TextID = R.MyInternationalizationString.EditInfo, + TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, + TextAlignment = TextAlignment.CenterLeft, + TextSize = 15, + //IsBold=true + }; + infoFL.AddChidren(infoEdit); + + + var nameRow = new DeviceInfoEditRow(130); + nameRow.Init(); + nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:"); + nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName); + infoFL.AddChidren(nameRow); + + var zoneRow = new DeviceInfoRow(257); + zoneRow.Y = nameRow.Bottom + Application.GetRealHeight(14); + zoneRow.Init(); + zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:"); + //zoneRow.SetTitle(curRoom.Name); + infoFL.AddChidren(zoneRow); + zoneRow.HideLine(true); + + var targetFL = new FrameLayout() + { + Y = infoFL.Bottom + Application.GetRealHeight(23), + Height = Application.GetRealHeight(346) + }; + bodyFrameLayout.AddChidren(targetFL); + + var targetBG = new FrameLayout + { + Height = Application.GetRealHeight(334), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + targetFL.AddChidren(targetBG); + + var addTargetFL = new FrameLayout + { + Y = Application.GetRealHeight(46), + Height = Application.GetRealHeight(127), + }; + targetFL.AddChidren(addTargetFL); + + var target = new Button() + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(127) - 1, + Width = Application.GetRealWidth(600), + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextID = R.MyInternationalizationString.AddScentTargetAction, + Gravity = Gravity.CenterVertical, + TextSize = 15 + }; + addTargetFL.AddChidren(target); + + var targetAdd = new Button + { + X = Application.GetRealWidth(950), + Y = Application.GetRealHeight(46), + Width = Application.GetMinRealAverage(72), + Height = Application.GetMinRealAverage(72), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "Item/Add.png", + }; + addTargetFL.AddChidren(targetAdd); + var targetLine = new Button() + { + Y = target.Bottom, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + addTargetFL.AddChidren(targetLine); + + TargetListScrolView = new FrameLayout() + { + Height = Application.GetRealHeight(173) + }; + bodyScrolView.AddChidren(TargetListScrolView); + + + + confirmBtn = new CommonForm.CompleteButton(1656, 907, 127); + confirmBtn.TextID = R.MyInternationalizationString.uFinish; + AddChidren(confirmBtn); + + if (isModify) + { + IconPathType = modifySceneUI.IconPathType; + OldIconPathType = modifySceneUI.IconPathType; + if (IconPathType != 0) + { + OldBackgroundImagePath = modifySceneUI.IconPath; + } + if (modifySceneUI.IconPathType == 0) + { + backGround.ImagePath = modifySceneUI.IconPath; + } + else + { + backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath); + } + nameRow.SetTitle(modifySceneUI.Name); + if (Config.Instance.Home.FloorDics.Count == 0) + { + zoneRow.SetTitle($"{modifyRoom.Name}"); + } + else + { + zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)}锛寋modifyRoom.Name}"); + } + curRoom = modifyRoom; + sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList); + } + + RefreshTargetListView(); + + #region event + + EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) => + { + if (curRoom != null && curRoom.IsSharedRoom) + { + RoomCommon.ShowTipRoomIsShared(); + return; + } + + int selectRow_Height = 150; + int selectRow_Width = 1034; + var selectFL = new FrameLayout() + { + BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor + }; + AddChidren(selectFL); + + var itemFL = new FrameLayout() + { + Y = Application.GetRealHeight(1276), + Height = Application.GetRealHeight(450), + Width = Application.GetRealWidth(selectRow_Width), + Gravity = Gravity.CenterHorizontal, + Radius = (uint)Application.GetRealHeight(35), + BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor + }; + selectFL.AddChidren(itemFL); + //itemFL.Animate = Animate.DownToUp; + + var selectLocalPicture = new Button() + { + Height = Application.GetRealHeight(selectRow_Height) - 1, + TextID = R.MyInternationalizationString.LocalPicture, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + TextSize = 17 + }; + itemFL.AddChidren(selectLocalPicture); + var selectLocalLine = new Button() + { + Y = selectLocalPicture.Bottom, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + itemFL.AddChidren(selectLocalLine); + + var selectPhotographBtn = new Button() + { + Y = selectLocalLine.Bottom, + Height = Application.GetRealHeight(selectRow_Height) - 1, + TextID = R.MyInternationalizationString.Photograph, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + TextSize = 17 + }; + itemFL.AddChidren(selectPhotographBtn); + var selectPhotographLine = new Button() + { + Y = selectPhotographBtn.Bottom, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2, + }; + itemFL.AddChidren(selectPhotographLine); + + var selectAblumsBtn = new Button() + { + Y = selectPhotographLine.Bottom, + Height = Application.GetRealHeight(selectRow_Height) - 1, + TextID = R.MyInternationalizationString.MyAblums, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + TextSize = 17 + }; + itemFL.AddChidren(selectAblumsBtn); + + var cancelBtn = new Button() + { + Y = Application.GetRealHeight(1742), + Height = Application.GetRealHeight(selectRow_Height), + Width = Application.GetRealWidth(selectRow_Width), + Gravity = Gravity.CenterHorizontal, + TextID = R.MyInternationalizationString.Cancel, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor, + Radius = (uint)Application.GetRealHeight(35), + TextSize = 17 + }; + selectFL.AddChidren(cancelBtn); + + selectLocalPicture.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + var localPic = new CategorySceneSelectImgByLocal(); + Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + localPic.Show(); + localPic.action = (imgPath) => + { + IconPathType = 0; + backGround.ImageBytes = null; + backGround.ImagePath = imgPath; + }; + }; + selectPhotographBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); + var fileName = $"SceneIcon_{tradeTime}.png"; + //閫氳繃鐩告満鎷嶇収瑁佸壀 + CropImage.TakePicture((imagePath) => + { + if (string.IsNullOrEmpty(imagePath)) + { + return; + } + if (isModify) + { + if (IconPathType != 0) + { + Global.DeleteFilebyHomeId(backGround.ImagePath); + HdlAutoBackupLogic.DeleteFile(backGround.ImagePath); + } + } + + IconPathType = 1; + backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); + backGround.ImagePath = imagePath; + System.IO.File.Delete(imagePath); + + }, fileName, 2, 1); + }; + + selectAblumsBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); + var fileName = $"SceneIcon_{tradeTime}.png"; + //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀 + CropImage.SelectPicture((imagePath) => + { + if (string.IsNullOrEmpty(imagePath)) + { + return; + } + if (isModify) + { + if (IconPathType != 0) + { + Global.DeleteFilebyHomeId(backGround.ImagePath); + HdlAutoBackupLogic.DeleteFile(backGround.ImagePath); + } + } + + IconPathType = 2; + backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); + backGround.ImagePath = imagePath; + System.IO.File.Delete(imagePath); + + }, fileName, 2, 1); + }; + + cancelBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + }; + selectFL.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + }; + }; + backGround.MouseUpEventHandler += backGroundIMGHander; + + //鍖哄煙 + EventHandler<MouseEventArgs> zoneHander = (sender, e) => + { + var zone = new SelectZone(); + zone.Init(); + zone.ZoneAction += (selectRoom) => + { + curRoom = selectRoom; + zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom)); + }; + }; + zoneRow.ClickBtn.MouseUpEventHandler += zoneHander; + + //鎵ц鐩爣-娣诲姞鎵ц璁惧 + EventHandler<MouseEventArgs> targetAddHander = (sender, e) => + { + + //if (curRoom == null) + //{ + // RoomCommon.ShowTipNoRoom(); + // return; + //} + if (curRoom != null) + { + if (curRoom.IsSharedRoom) + { + RoomCommon.ShowTipRoomIsShared(); + return; + } + } + + int selectRow_Height = 150; + int selectRow_Width = 1034; + var selectFL = new FrameLayout() + { + BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor + }; + AddChidren(selectFL); + + var itemFL = new FrameLayout() + { + Y = Application.GetRealHeight(1276), + Height = Application.GetRealHeight(450), + Width = Application.GetRealWidth(selectRow_Width), + Gravity = Gravity.CenterHorizontal, + Radius = (uint)Application.GetRealHeight(35), + BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor + }; + selectFL.AddChidren(itemFL); + //itemFL.Animate = Animate.DownToUp; + + var selectedFunctionBtn = new Button() + { + Height = Application.GetRealHeight(selectRow_Height) - 1, + TextID = R.MyInternationalizationString.Function, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + TextSize = 17 + }; + itemFL.AddChidren(selectedFunctionBtn); + var selectedFunctionLine = new Button() + { + Y = selectedFunctionBtn.Bottom, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + itemFL.AddChidren(selectedFunctionLine); + + var selectedSceneBtn = new Button() + { + Y = selectedFunctionLine.Bottom, + Height = Application.GetRealHeight(selectRow_Height) - 1, + TextID = R.MyInternationalizationString.Scence, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + TextSize = 17 + }; + itemFL.AddChidren(selectedSceneBtn); + var selectedSceneLine = new Button() + { + Y = selectedSceneBtn.Bottom, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2, + }; + itemFL.AddChidren(selectedSceneLine); + + var selectedTimerBtn = new Button() + { + Y = selectedSceneLine.Bottom, + Height = Application.GetRealHeight(selectRow_Height) - 1, + TextID = R.MyInternationalizationString.Delay, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + TextSize = 17 + }; + itemFL.AddChidren(selectedTimerBtn); + + + var cancelBtn = new Button() + { + Y = Application.GetRealHeight(1742), + Height = Application.GetRealHeight(selectRow_Height), + Width = Application.GetRealWidth(selectRow_Width), + Gravity = Gravity.CenterHorizontal, + TextID = R.MyInternationalizationString.Cancel, + TextColor = ZigbeeColor.Current.GXCTextSelectedColor4, + BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor, + Radius = (uint)Application.GetRealHeight(35), + TextSize = 17 + }; + selectFL.AddChidren(cancelBtn); + + //娣诲姞鍔熻兘 + selectedFunctionBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + var deviceView = new SelectDevice(); + UserView.HomePage.Instance.AddChidren(deviceView); + UserView.HomePage.Instance.PageIndex += 1; + deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList; + deviceView.Show(); + deviceView.selectedAction = (selectedDevice) => + { + sceneTargetDevicesList.Add(selectedDevice); + RefreshTargetListView(); + }; + }; + //娣诲姞鍦烘櫙 + selectedSceneBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + var sceneView = new SelectScene(); + UserView.HomePage.Instance.AddChidren(sceneView); + UserView.HomePage.Instance.PageIndex += 1; + sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList; + sceneView.currentSceneUI = modifySceneUI; + sceneView.Show(); + sceneView.selectedAction = (selectedScene) => + { + sceneTargetDevicesList.Add(selectedScene); + RefreshTargetListView(); + }; + + }; + //娣诲姞鏃堕棿闂撮殧 + selectedTimerBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + var delayTimeView = new SelectDelayTime(); + UserView.HomePage.Instance.AddChidren(delayTimeView); + UserView.HomePage.Instance.PageIndex += 1; + delayTimeView.Show(); + delayTimeView.selectedTimeAction = (second) => + { + sceneTargetDevicesList.Add(second); + RefreshTargetListView(); + }; + }; + + cancelBtn.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + }; + selectFL.MouseUpEventHandler += (send, ee) => + { + selectFL.RemoveFromParent(); + }; + }; + targetAdd.MouseUpEventHandler += targetAddHander; + targetFL.MouseUpEventHandler += targetAddHander; + target.MouseUpEventHandler += targetAddHander; + addTargetFL.MouseUpEventHandler += targetAddHander; + //纭畾娣诲姞鐩爣 + confirmBtn.MouseUpEventHandler += async (sender, e) => + { + if (curRoom == null) + { + RoomCommon.ShowTipNoRoom(); + return; + } + if (curRoom.IsSharedRoom) + { + RoomCommon.ShowTipRoomIsShared(); + return; + } + + if (isModify) + { + if (string.IsNullOrEmpty(nameRow.NameText.Text)) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull)); + return; + } + else + { + try + { + var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); + var fileName = $"SceneIcon_{tradeTime}.png"; + if (modifySceneUI.Name != nameRow.NameText.Text.Trim()) + { + if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); + return; + } + var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim()); + var reName = r.sceneRenameResponseData.Result; + if (reName == 0) + { + return; + } + else if (reName == 1) + { + modifySceneUI.Name = nameRow.NameText.Text.Trim(); + + } + else if (reName == 2) + { + return; + } + } + if (OldIconPathType != 0) + { + Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath)); + HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath); + } + if (IconPathType == 1 || IconPathType == 2) + { + Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); + HdlAutoBackupLogic.AddOrEditorFile(fileName); + modifySceneUI.IconPath = fileName; + } + else + { + modifySceneUI.IconPath = backGround.ImagePath; + } + modifySceneUI.IconPathType = IconPathType; + + CommonPage.Loading.Start(); + var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>(); + for (int i = 0; i < sceneTargetDevicesList.Count; i++) + { + var sceneTarget = sceneTargetDevicesList[i]; + + if (sceneTarget.Type == 0) + { + if (sceneTarget.DeviceUI == null) + { + continue; + } + var memberData = new AddSceneMemberData + { + Type = 0, + ScenesId = 0, + DeviceAddr = sceneTarget.DeviceUI.DeviceAddr, + Epoint = sceneTarget.DeviceUI.DeviceEpoint, + TaskList = sceneTarget.TaskList, + DelayTime = 0, + MemberNumber = i + 1 + }; + memberDataList.Add(memberData); + } + else if (sceneTarget.Type == 1) + { + var memberData = new AddSceneMemberData + { + Type = 1, + ScenesId = 0, + ElseScenesId = sceneTarget.ElseScenesId, + DelayTime = 0, + MemberNumber = i + 1 + }; + memberDataList.Add(memberData); + } + else if (sceneTarget.Type == 2) + { + var memberData = new AddSceneMemberData + { + Type = 2, + ScenesId = 0, + DelayTime = sceneTarget.DelayTime, + MemberNumber = i + 1 + }; + memberDataList.Add(memberData); + } + } + + var sceneRemoveMemberData = new SceneRemoveMemberData { }; + var removeSceneDeviceListInfoList = new List<RemoveSceneDeviceListInfo> { }; + for (int i = 0; i < modifySceneTargetDevicesList.Count; i++) + { + var sceneTarget = modifySceneTargetDevicesList[i]; + if (sceneTarget.Type == 0) + { + if (sceneTarget.DeviceUI == null) + { + continue; + } + var removeDevice = new RemoveSceneDeviceListInfo + { + Type = 0, + DeviceAddr = sceneTarget.DeviceUI.DeviceAddr, + Epoint = sceneTarget.DeviceUI.DeviceEpoint, + MemberNumber = sceneTarget.DelayTimeSerialNumber + }; + removeSceneDeviceListInfoList.Add(removeDevice); + } + else if (sceneTarget.Type == 1) + { + var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo + { + Type = 1, + ElseScenesId = sceneTarget.ElseScenesId, + MemberNumber = sceneTarget.DelayTimeSerialNumber + }; + removeSceneDeviceListInfoList.Add(removeDevice); + } + else + { + var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo + { + Type = 2, + DelayTime = sceneTarget.DelayTime, + MemberNumber = sceneTarget.DelayTimeSerialNumber + }; + removeSceneDeviceListInfoList.Add(removeDevice); + } + } + sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList; + sceneRemoveMemberData.ScenesId = modifySceneUI.Id; + var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList); + if (result == 1) + { + if (modifyRoom != curRoom) + { + modifyRoom.ListSceneId.Remove(modifySceneUI.Id); + curRoom.ListSceneId.Add(modifySceneUI.Id); + modifyRoom.Save(); + curRoom.Save(); + } + EditorAction?.Invoke(modifySceneUI, curRoom); + RemoveFromParent(); + } + else if (result == 0) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain)); + } + else if (result == -1) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); + } + } + catch (Exception ex) + { + System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}"); + } + finally + { + CommonPage.Loading.Hide(); + } + } + } + else + { + //鏂板 + if (string.IsNullOrEmpty(nameRow.NameText.Text)) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull)); + return; + } + else + { + try + { + var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); + var fileName = $"SceneIcon_{tradeTime}.png"; + string imgPath; + if (IconPathType == 1 || IconPathType == 2) + { + Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); + HdlAutoBackupLogic.AddOrEditorFile(fileName); + imgPath = fileName; + } + else + { + imgPath = backGround.ImagePath; + } + //if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) + //{ + // CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); + // return; + //} + CommonPage.Loading.Start(); + var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>(); + for (int i = 0; i < sceneTargetDevicesList.Count; i++) + { + var sceneTarget = sceneTargetDevicesList[i]; + + if (sceneTarget.Type == 0) + { + if (sceneTarget.DeviceUI == null) + { + continue; + } + var memberData = new AddSceneMemberData + { + Type = 0, + ScenesId = 0, + DeviceAddr = sceneTarget.DeviceUI.DeviceAddr, + Epoint = sceneTarget.DeviceUI.DeviceEpoint, + TaskList = sceneTarget.TaskList, + DelayTime = 0, + MemberNumber = i + 1 + }; + memberDataList.Add(memberData); + } + else if (sceneTarget.Type == 1) + { + var memberData = new AddSceneMemberData + { + Type = 1, + ScenesId = 0, + ElseScenesId = sceneTarget.ElseScenesId, + DelayTime = 0, + MemberNumber = i + 1 + }; + memberDataList.Add(memberData); + } + else if (sceneTarget.Type == 2) + { + var memberData = new AddSceneMemberData + { + Type = 2, + ScenesId = 0, + DelayTime = sceneTarget.DelayTime, + MemberNumber = i + 1 + }; + memberDataList.Add(memberData); + } + } + + var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType); + if (result == 1) + { + AddAction?.Invoke(); + RemoveFromParent(); + } + else if (result == 0) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail)); + } + else if (result == -1) + { + CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); + } + } + catch (Exception ex) + { + System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}"); + } + finally + { + CommonPage.Loading.Hide(); + } + } + } + + }; + #endregion + } + + #endregion + + #region 缂栬緫璁惧____________________________________ + + /// <summary> + /// ShowSelectAction + /// </summary> + /// <param name="device"></param> + private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget) + { + var dialog = new FrameLayout() + { + BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor + }; + AddChidren(dialog); + + dialog.MouseUpEventHandler += (sender, e) => + { + dialog.RemoveFromParent(); + }; + + if (device.Type == ZigBee.Device.DeviceType.OnOffOutput) + { + SelectOnoffOutput(dialog, device, sceneTarget); + } + else if (device.Type == ZigBee.Device.DeviceType.AirSwitch) + { + SelectOnoffOutput(dialog, device, sceneTarget); + } + else if (device.Type == ZigBee.Device.DeviceType.DimmableLight) + { + SelectDimmableLight(dialog, device, sceneTarget); + } + else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) + { + SelectWindowCoveringDevice(dialog, device, sceneTarget); + } + else if (device.Type == ZigBee.Device.DeviceType.Thermostat) + { + SelectThermostat(dialog, device, sceneTarget); + } + } + + /// <summary> + /// 鐏厜 + /// </summary> + /// <param name="dialog"></param> + /// <param name="device"></param> + /// <param name="sceneTarget"></param> + private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) + { + var selectFL = new FrameLayout + { + Y = Application.GetRealHeight(1391), + Height = Application.GetRealHeight(530), + }; + dialog.AddChidren(selectFL); + //selectFL.Animate = Animate.DownToUp; + + var titleBG = new FrameLayout + { + Height = Application.GetRealHeight(138 * 2), + Radius = (uint)Application.GetRealHeight(58), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(titleBG); + + var titleFL = new FrameLayout + { + Height = Application.GetRealHeight(138), + }; + selectFL.AddChidren(titleFL); + + var line = new Button + { + Y = titleFL.Height - 1, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + titleFL.AddChidren(line); + + var cancleBtn = new Button + { + X = Application.GetRealWidth(80), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextGrayColor, + TextSize = 14, + TextAlignment = TextAlignment.CenterLeft, + TextID = R.MyInternationalizationString.Cancel + }; + titleFL.AddChidren(cancleBtn); + + var deviceName = new Button + { + Width = Application.GetRealWidth(600), + Gravity = Gravity.CenterHorizontal, + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 16, + Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + }; + titleFL.AddChidren(deviceName); + + var comfrimBtn = new Button + { + X = Application.GetRealWidth(800), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, + TextSize = 14, + TextAlignment = TextAlignment.CenterRight, + TextID = R.MyInternationalizationString.Complete + }; + titleFL.AddChidren(comfrimBtn); + + var itemFL = new FrameLayout + { + Y = titleFL.Bottom, + Height = Application.GetRealHeight(392), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(itemFL); + + var open = new SelectSceneStatuRow(0, 60); + itemFL.AddChidren(open); + open.Init(); + open.SetTitle(R.MyInternationalizationString.Open); + open.IsSelected = true; + + + var shut = new SelectSceneStatuRow(0, 60 + 127 + 30); + itemFL.AddChidren(shut); + shut.Init(); + shut.hideLine(true); + shut.SetTitle(R.MyInternationalizationString.Shut); + + open.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = true; + shut.IsSelected = false; + }; + + shut.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = false; + shut.IsSelected = true; + }; + + cancleBtn.MouseUpEventHandler = (sender, e) => + { + dialog.RemoveAll(); + dialog.RemoveFromParent(); + }; + + if (sceneTarget.TaskList.Count > 0) + { + if (sceneTarget.TaskList[0].Data1 == 1) + { + open.IsSelected = true; + shut.IsSelected = false; + } + else + { + open.IsSelected = false; + shut.IsSelected = true; + } + } + + comfrimBtn.MouseUpEventHandler = (sender, e) => + { + var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; + int taskType = 1; + int data1 = 0; + int data2 = 0; + + if (open.IsSelected) + { + //寮� + data1 = 1; + data2 = 0; + } + else + { + //鍏� + data1 = 0; + data2 = 0; + } + var taskInfo = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = data1, + Data2 = data2 + }; + taskList.Add(taskInfo); + + sceneTarget.TaskList = taskList; + sceneTarget.DeviceUI = device; + selectedAction?.Invoke(sceneTarget); + dialog.RemoveFromParent(); + }; + } + /// <summary> + /// 绐楀笜 + /// </summary> + /// <param name="dialog"></param> + /// <param name="device"></param> + /// <param name="sceneTarget"></param> + private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) + { + var selectFL = new FrameLayout + { + Y = Application.GetRealHeight(1169), + Height = Application.GetRealHeight(752), + }; + dialog.AddChidren(selectFL); + //selectFL.Animate = Animate.DownToUp; + + var titleBG = new FrameLayout + { + Height = Application.GetRealHeight(138 * 2), + Radius = (uint)Application.GetRealHeight(58), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(titleBG); + + var titleFL = new FrameLayout + { + Height = Application.GetRealHeight(138), + }; + selectFL.AddChidren(titleFL); + + var line = new Button + { + Y = titleFL.Height - 1, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + titleFL.AddChidren(line); + + var cancleBtn = new Button + { + X = Application.GetRealWidth(80), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextGrayColor, + TextSize = 14, + TextAlignment = TextAlignment.CenterLeft, + TextID = R.MyInternationalizationString.Cancel + }; + titleFL.AddChidren(cancleBtn); + + var deviceName = new Button + { + Width = Application.GetRealWidth(600), + Gravity = Gravity.CenterHorizontal, + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 16, + Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + }; + titleFL.AddChidren(deviceName); + + var comfrimBtn = new Button + { + X = Application.GetRealWidth(800), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, + TextSize = 14, + TextAlignment = TextAlignment.CenterRight, + TextID = R.MyInternationalizationString.Complete + }; + titleFL.AddChidren(comfrimBtn); + + var itemFL = new FrameLayout + { + Y = titleFL.Bottom, + Height = Application.GetRealHeight(613), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(itemFL); + + var open = new SelectDeviceWithSeekBarRow(0, 60); + itemFL.AddChidren(open); + open.Init(); + open.SetTitle(R.MyInternationalizationString.Open); + open.IsSelected = true; + + var shut = new SelectSceneStatuRow(0, 60 + 348 + 30); + itemFL.AddChidren(shut); + shut.Init(); + shut.hideLine(true); + shut.SetTitle(R.MyInternationalizationString.Shut); + + open.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = true; + shut.IsSelected = false; + }; + + shut.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = false; + shut.IsSelected = true; + }; + + cancleBtn.MouseUpEventHandler = (sender, e) => + { + dialog.RemoveAll(); + dialog.RemoveFromParent(); + }; + + open.SeekBar.OnProgressChangedEvent += (sender, e) => + { + open.IsSelected = true; + shut.IsSelected = false; + open.SetSeekBarTitle(); + }; + + if (sceneTarget.TaskList.Count > 0) + { + if (sceneTarget.TaskList[0].Data1 == 1) + { + open.IsSelected = false; + shut.IsSelected = true; + } + else + { + open.IsSelected = true; + shut.IsSelected = false; + open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2); + } + } + + comfrimBtn.MouseUpEventHandler = (sender, e) => + { + var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; + + int taskType = 6; + int data1 = 0; + int data2 = 0; + + if (shut.IsSelected) + { + //鍏� + data1 = 1; + data2 = 0; + } + else + { + //鐧惧垎姣� + data1 = 5; + data2 = open.SeekBar.Progress; + } + + var taskInfo = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = data1, + Data2 = data2 + }; + taskList.Add(taskInfo); + + sceneTarget.TaskList = taskList; + sceneTarget.DeviceUI = device; + selectedAction?.Invoke(sceneTarget); + dialog.RemoveFromParent(); + }; + } + /// <summary> + /// 璋冨厜鐏� + /// </summary> + /// <param name="dialog"></param> + /// <param name="device"></param> + /// <param name="sceneTarget"></param> + private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) + { + var selectFL = new FrameLayout + { + Y = Application.GetRealHeight(1169), + Height = Application.GetRealHeight(752), + }; + dialog.AddChidren(selectFL); + //selectFL.Animate = Animate.DownToUp; + + var titleBG = new FrameLayout + { + Height = Application.GetRealHeight(138 * 2), + Radius = (uint)Application.GetRealHeight(58), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(titleBG); + + var titleFL = new FrameLayout + { + Height = Application.GetRealHeight(138), + }; + selectFL.AddChidren(titleFL); + + var line = new Button + { + Y = titleFL.Height - 1, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + titleFL.AddChidren(line); + + var cancleBtn = new Button + { + X = Application.GetRealWidth(80), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextGrayColor, + TextSize = 14, + TextAlignment = TextAlignment.CenterLeft, + TextID = R.MyInternationalizationString.Cancel + }; + titleFL.AddChidren(cancleBtn); + + var deviceName = new Button + { + Width = Application.GetRealWidth(600), + Gravity = Gravity.CenterHorizontal, + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 16, + TextAlignment = TextAlignment.CenterLeft, + Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + }; + titleFL.AddChidren(deviceName); + + var comfrimBtn = new Button + { + X = Application.GetRealWidth(800), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, + TextSize = 14, + TextAlignment = TextAlignment.CenterRight, + TextID = R.MyInternationalizationString.Complete + }; + titleFL.AddChidren(comfrimBtn); + + var itemFL = new FrameLayout + { + Y = titleFL.Bottom, + Height = Application.GetRealHeight(613), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(itemFL); + + var open = new SelectDeviceWithSeekBarRow(0, 60); + itemFL.AddChidren(open); + open.Init(254); + open.SetTitle(R.MyInternationalizationString.Open); + open.IsSelected = true; + + var shut = new SelectSceneStatuRow(0, 60 + 348 + 30); + itemFL.AddChidren(shut); + shut.Init(); + shut.hideLine(true); + shut.SetTitle(R.MyInternationalizationString.Shut); + + open.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = true; + shut.IsSelected = false; + }; + + shut.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = false; + shut.IsSelected = true; + }; + + cancleBtn.MouseUpEventHandler = (sender, e) => + { + dialog.RemoveAll(); + dialog.RemoveFromParent(); + }; + + open.SeekBar.OnProgressChangedEvent += (sender, e) => + { + open.IsSelected = true; + shut.IsSelected = false; + open.SetSeekBarTitle(); + }; + + if (sceneTarget.TaskList.Count > 0) + { + if (sceneTarget.TaskList[0].Data1 == 0) + { + open.IsSelected = false; + shut.IsSelected = true; + } + else + { + open.IsSelected = true; + shut.IsSelected = false; + open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1); + } + } + + comfrimBtn.MouseUpEventHandler = (sender, e) => + { + var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; + + int taskType = 3; + int data1 = 0; + int data2 = 0; + + if (shut.IsSelected) + { + //鍏� + data1 = 0; + data2 = 0; + } + else + { + //鐧惧垎姣� + data1 = open.SeekBar.Progress; + data2 = 0; + } + + var taskInfo = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = data1, + Data2 = data2 + }; + taskList.Add(taskInfo); + + sceneTarget.TaskList = taskList; + sceneTarget.DeviceUI = device; + selectedAction?.Invoke(sceneTarget); + dialog.RemoveFromParent(); + }; + } + /// <summary> + /// 绌鸿皟 + /// </summary> + /// <param name="dialog"></param> + /// <param name="device"></param> + /// <param name="sceneTarget"></param> + private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget) + { + /// 娓╁害 + int tempId = 0; + /// 妯″紡 + int modelId = 0; + /// 椋庨�� + int fanid = 0; + + var selectFL = new FrameLayout + { + Y = Application.GetRealHeight(815), + Height = Application.GetRealHeight(1106), + }; + dialog.AddChidren(selectFL); + //selectFL.Animate = Animate.DownToUp; + + var titleBG = new FrameLayout + { + Height = Application.GetRealHeight(138 * 2), + Radius = (uint)Application.GetRealHeight(58), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(titleBG); + + var titleFL = new FrameLayout + { + Height = Application.GetRealHeight(138), + }; + selectFL.AddChidren(titleFL); + + var line = new Button + { + Y = titleFL.Height - 1, + Height = 1, + BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2 + }; + titleFL.AddChidren(line); + + var cancleBtn = new Button + { + X = Application.GetRealWidth(80), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextGrayColor, + TextSize = 14, + TextAlignment = TextAlignment.CenterLeft, + TextID = R.MyInternationalizationString.Cancel + }; + titleFL.AddChidren(cancleBtn); + + var deviceName = new Button + { + Width = Application.GetRealWidth(600), + Gravity = Gravity.CenterHorizontal, + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 16, + TextAlignment = TextAlignment.CenterLeft, + Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + }; + titleFL.AddChidren(deviceName); + + var comfrimBtn = new Button + { + X = Application.GetRealWidth(800), + Width = Application.GetRealWidth(200), + TextColor = ZigbeeColor.Current.GXCTextSelectedColor2, + TextSize = 14, + TextAlignment = TextAlignment.CenterRight, + TextID = R.MyInternationalizationString.Complete + }; + titleFL.AddChidren(comfrimBtn); + + var itemFL = new FrameLayout + { + Y = titleFL.Bottom, + Height = Application.GetRealHeight(968), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + selectFL.AddChidren(itemFL); + + var open = new SelectDeviceWithPickViewRow(0, 60); + itemFL.AddChidren(open); + open.Init(); + open.SetTitle(R.MyInternationalizationString.Open); + open.IsSelected = true; + + open.pickerView.OnSelectChangeEvent = (l1, l2, l3) => + { + tempId = l1; + modelId = l2; + fanid = l3; + }; + + var shut = new SelectSceneStatuRow(0, 60 + 703 + 30); + itemFL.AddChidren(shut); + shut.Init(); + shut.hideLine(true); + shut.SetTitle(R.MyInternationalizationString.Shut); + + open.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = true; + shut.IsSelected = false; + }; + + shut.ClickButton.MouseUpEventHandler += (sender, e) => + { + open.IsSelected = false; + shut.IsSelected = true; + }; + + cancleBtn.MouseUpEventHandler = (sender, e) => + { + dialog.RemoveAll(); + dialog.RemoveFromParent(); + }; + + if (sceneTarget.TaskList.Count > 0) + { + if (sceneTarget.TaskList.Count == 1) + { + open.IsSelected = false; + shut.IsSelected = true; + } + else + { + open.IsSelected = true; + shut.IsSelected = false; + + for (int i = 0; i < sceneTarget.TaskList.Count; i++) + { + var tasklist = sceneTarget.TaskList[i]; + if (tasklist.Data1 == 6) + { + fanid = open.fanList.IndexOf(tasklist.Data2); + } + if (tasklist.Data1 == 3) + { + modelId = open.modeList.IndexOf(tasklist.Data2); + } + if (tasklist.Data1 == 4 || tasklist.Data1 == 5) + { + tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100); + } + } + open.pickerView.setCurrentItems(tempId, modelId, fanid); + } + } + + comfrimBtn.MouseUpEventHandler = (sender, e) => + { + + var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { }; + + int taskType = 5; + int data1 = 0; + int data2 = 0; + + if (shut.IsSelected) + { + //鍏� + data1 = 3; + data2 = 0; + var taskInfo = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = data1, + Data2 = data2 + }; + taskList.Add(taskInfo); + } + else + { + //fan + var taskInfo = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = 6, + Data2 = open.fanList[fanid] + }; + taskList.Add(taskInfo); + + //mode + var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = 3, + Data2 = open.modeList[modelId] + }; + taskList.Add(taskInfo2); + + //tem + if (open.modeList[modelId] == 4) + { + //heat + var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = 4, + Data2 = open.temperatureList[tempId] * 100 + }; + taskList.Add(taskInfo3); + + } + else + { + //heat + var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo + { + TaskType = taskType, + Data1 = 5, + Data2 = open.temperatureList[tempId] * 100 + }; + taskList.Add(taskInfo3); + } + } + + sceneTarget.TaskList = taskList; + sceneTarget.DeviceUI = device; + selectedAction?.Invoke(sceneTarget); + dialog.RemoveFromParent(); + }; + } + + #endregion + + } +} \ No newline at end of file -- Gitblit v1.8.0