黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
@@ -120,18 +120,31 @@
            //初始化添加目标
            this.InitAddTargetControl();
            //分享的场景不能保存
            if (this.editorScene == null || this.editorScene.IsSharedScene == false)
            //完成
            var btnSave = new BottomClickButton();
            btnSave.TextID = R.MyInternationalizationString.uFinish;
            bodyFrameLayout.AddChidren(btnSave);
            btnSave.ButtonClickEvent += (sender, e) =>
            {
                //完成
                var btnSave = new BottomClickButton();
                btnSave.TextID = R.MyInternationalizationString.uFinish;
                bodyFrameLayout.AddChidren(btnSave);
                btnSave.ButtonClickEvent += (sender, e) =>
                {
                    //保存场景数据
                    this.SaveSceneData();
                };
                //保存场景数据
                this.SaveSceneData();
            };
            //分享的场景不能保存
            if (this.editorScene != null && this.editorScene.IsSharedScene == true)
            {
                btnSave.CanClick = false;
            }
            else if (Config.Instance.Home.IsShowTemplate == true)
            {
                //模板场景不能保存
                btnSave.CanClick = false;
            }
            //如果是有模板,有设备的时候,在没有发送成功之前
            else if (Common.Config.Instance.Home.TemplateMode == 2
               && Common.Config.Instance.Home.SendTemplateSuccess == false)
            {
                btnSave.CanClick = false;
            }
        }
@@ -189,6 +202,11 @@
            //分享的场景不能编辑
            if (this.editorScene == null || this.editorScene.IsSharedScene == false)
            {
                if (Config.Instance.Home.IsShowTemplate == true)
                {
                    //模板场景不允许编辑
                    return;
                }
                btnZhezhao.MouseUpEventHandler += (sender, e) =>
                {
                    //房间图片选择
@@ -215,7 +233,7 @@
            //信息编辑
            var btnTitle = new NormalViewControl(300, 60, true);
            btnTitle.X = ControlCommonResourse.XXLeft;
            btnTitle.X = HdlControlResourse.XXLeft;
            btnTitle.Y = Application.GetRealHeight(46);
            btnTitle.TextSize = 15;
            btnTitle.TextID = R.MyInternationalizationString.uInfoEditor;
@@ -225,6 +243,7 @@
            //场景名称
            var rowScene = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.SceneName), this.cloneScene.Name);
            rowScene.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputSceneName);
            rowScene.txtInput.MaxByte = 32;//限制只能输入32个字节
            rowScene.Y = btnTitle.Bottom + Application.GetRealHeight(23);
            frameBack.AddChidren(rowScene);
            rowScene.InitControl();
@@ -247,6 +266,11 @@
                {
                    this.nowRoomId = selectId;
                };
            }
            if (Config.Instance.Home.IsShowTemplate == true)
            {
                //模板场景不允许编辑
                rowBelong.CanClick = false;
            }
        }
@@ -290,11 +314,22 @@
                //显示添加目标菜单
                this.ShowAddTargetMenu();
            };
            if (Config.Instance.Home.IsShowTemplate == true)
            {
                //模板场景不允许编辑
                rowAddTarget.CanClick = false;
            }
            //如果是有模板,有设备的时候,在没有发送成功之前
            if (Common.Config.Instance.Home.TemplateMode == 2
               && Common.Config.Instance.Home.SendTemplateSuccess == false)
            {
                rowAddTarget.CanClick = false;
            }
            HdlThreadLogic.Current.RunThread(async () =>
            HdlThreadLogic.Current.RunThread(() =>
            {
                //从网关获取场景的执行目标
                var result = await this.GetSceneTargetList();
                var result = this.GetSceneTargetList();
                if (result == true)
                {
                    //添加【执行目标行】
@@ -318,7 +353,7 @@
                if (listAdjustTarget[i].Type == 0)
                {
                    //设备
                    var device = Common.LocalDevice.Current.GetDevice(listAdjustTarget[i].DeviceAddr, listAdjustTarget[i].Epoint);
                    var device = HdlDeviceCommonLogic.Current.GetDevice(listAdjustTarget[i].DeviceAddr, listAdjustTarget[i].Epoint);
                    if (device == null)
                    {
                        //不显示这个不存在本地的设备
@@ -379,12 +414,12 @@
        private void AddDeviceTargetRow(Scene.DeviceListData data, int index, bool addLine)
        {
            //设备
            var device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint);
            var device = HdlDeviceCommonLogic.Current.GetDevice(data.DeviceAddr, data.Epoint);
            var rowDevice = new DeviceRoomControl(device, frameTargetTableControl.rowSpace / 2);
            rowDevice.MainKeys = index.ToString();
            this.frameTargetTableControl.AddChidren(rowDevice);
            //控件向右偏移
            rowDevice.frameTable.LeftOffset = Application.GetRealWidth(104) - ControlCommonResourse.XXLeft;
            rowDevice.frameTable.LeftOffset = Application.GetRealWidth(104) - HdlControlResourse.XXLeft;
            rowDevice.InitControl();
            rowDevice.frameTable.UseClickStatu = false;
@@ -399,6 +434,11 @@
            //分享的场景不能编辑
            if (this.editorScene == null || this.editorScene.IsSharedScene == false)
            {
                if (Config.Instance.Home.IsShowTemplate == true)
                {
                    //模板场景不允许编辑
                    return;
                }
                //编辑
                var btnEditor = rowDevice.AddEditorControl();
                btnEditor.ButtonClickEvent += (sender, e) =>
@@ -510,7 +550,7 @@
            rowScene.MainKeys = index.ToString();
            frameTargetTableControl.AddChidren(rowScene);
            //控件向右偏移
            rowScene.frameTable.LeftOffset = Application.GetRealWidth(104) - ControlCommonResourse.XXLeft;
            rowScene.frameTable.LeftOffset = Application.GetRealWidth(104) - HdlControlResourse.XXLeft;
            rowScene.InitControl();
            if (addLine == true)
            {
@@ -522,6 +562,11 @@
            //分享的场景不能编辑
            if (this.editorScene == null || this.editorScene.IsSharedScene == false)
            {
                if (Config.Instance.Home.IsShowTemplate == true)
                {
                    //模板场景不允许编辑
                    return;
                }
                //删除
                var btnDelete = rowScene.AddDeleteControl();
                btnDelete.ButtonClickEvent += (sender, e) =>
@@ -565,7 +610,7 @@
            rowDelay.MainKeys = index.ToString();
            frameTargetTableControl.AddChidren(rowDelay);
            //控件向右偏移
            rowDelay.frameTable.LeftOffset = Application.GetRealWidth(104) - ControlCommonResourse.XXLeft;
            rowDelay.frameTable.LeftOffset = Application.GetRealWidth(104) - HdlControlResourse.XXLeft;
            rowDelay.frameTable.UseClickStatu = false;
            //图标
            var btnIcon = rowDelay.frameTable.AddLeftIcon();
@@ -588,6 +633,11 @@
            //分享的场景不能编辑
            if (this.editorScene == null || this.editorScene.IsSharedScene == false)
            {
                if (Common.Config.Instance.Home.IsShowTemplate == true)
                {
                    //模板场景不允许编辑
                    return;
                }
                //编辑
                var btnEditor = rowDelay.AddEditorControl();
                btnEditor.ButtonClickEvent += (sender, e) =>
@@ -633,7 +683,7 @@
        /// 从网关获取场景的执行目标
        /// </summary>
        /// <returns></returns>
        private async System.Threading.Tasks.Task<bool> GetSceneTargetList()
        private bool GetSceneTargetList()
        {
            if (this.editorScene == null || this.listAdjustTarget != null)
            {
@@ -643,7 +693,7 @@
            //打开进度条
            this.ShowProgressBar();
            //获取执行目标列表
            var listData = await HdlSceneLogic.Current.GetAdjustTargetList(this.editorScene);
            var listData = HdlSceneLogic.Current.GetAdjustTargetList(this.editorScene);
            if (listData == null)
            {
                this.CloseProgressBar(ShowReLoadMode.YES);
@@ -676,7 +726,7 @@
            //那个特殊的控件
            this.frameBottomTemp = new FrameLayout();
            frameBottomTemp.Height = bodyFrameLayout.Height - btnTemp.Yaxis + Application.GetRealHeight(23);
            this.listBodyControl.AddChidrenFrame(frameBottomTemp);
            this.listBodyControl.AddChidren(frameBottomTemp);
        }
        #endregion
@@ -701,7 +751,7 @@
                    this.isAdjustTargetChanged = true;
                    foreach (var mainKey in dicData.Keys)
                    {
                        var device = LocalDevice.Current.GetDevice(mainKey);
                        var device = HdlDeviceCommonLogic.Current.GetDevice(mainKey);
                        var data = new Scene.DeviceListData();
                        data.Type = 0;
                        data.DeviceAddr = device.DeviceAddr;
@@ -789,10 +839,10 @@
        /// <summary>
        /// 保存新建的场景
        /// </summary>
        private async void SaveSceneDataByNewMode()
        private void SaveSceneDataByNewMode()
        {
            //添加场景
            this.editorScene = await HdlSceneLogic.Current.AddNewSceneToGateway(this.cloneScene.Name, this.listAdjustTarget);
            this.editorScene = HdlSceneLogic.Current.AddNewSceneToGateway(this.cloneScene.Name, this.listAdjustTarget);
            //关闭进度条
            this.CloseProgressBar();
@@ -813,7 +863,7 @@
                var fileName = $"SceneIcon_{tradeTime}.png";
                //生成文件图片
                IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), this.btnScenePic.ImageBytes);
                HdlAutoBackupLogic.AddOrEditorFile(fileName);
                HdlBackupLogic.Current.AddOrEditorAutoBackFileStatu(fileName);
                this.cloneScene.IconPath = fileName;
            }
            //转移属性
@@ -823,7 +873,7 @@
            this.editorScene.Save();
            //新建场景,主页需要重新刷新
            UserView.UserPage.Instance.RefreshForm = true;
            UserView.UserPage.Instance.RefreshAllForm = true;
            HdlThreadLogic.Current.RunMain(() =>
            {
@@ -844,6 +894,8 @@
                var result = await HdlSceneLogic.Current.EditorSceneNameFromGateway(this.editorScene, this.cloneScene.Name);
                if (result == false)
                {
                    //关闭进度条
                    this.CloseProgressBar();
                    return;
                }
            }
@@ -851,10 +903,10 @@
            {
                //修改场景
                var result = await HdlSceneLogic.Current.EditorSceneFromGateway(this.editorScene, this.listAdjustTarget);
                //关闭进度条
                this.CloseProgressBar();
                if (result == false)
                {
                    //关闭进度条
                    this.CloseProgressBar();
                    return;
                }
            }
@@ -864,6 +916,15 @@
                //变更房间
                HdlSceneLogic.Current.ChangedSceneRoom(this.editorScene, this.nowRoomId);
            }
            else
            {
                //移除出房间
                var room = HdlRoomLogic.Current.GetRoomBySceneId(this.editorScene.Id);
                if (room != null)
                {
                    HdlSceneLogic.Current.DeleteSceneFromRoom(room, this.editorScene);
                }
            }
            //图片改变了
            if (isScenePictrueChanged == true)
@@ -871,8 +932,8 @@
                if (this.editorScene.IconPathType != 0)
                {
                    //删除自定义图片
                    Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, this.editorScene.IconPath));
                    HdlAutoBackupLogic.DeleteFile(this.editorScene.IconPath);
                    HdlFileLogic.Current.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, this.editorScene.IconPath));
                    HdlBackupLogic.Current.DeleteAutoBackFileStatu(this.editorScene.IconPath);
                }
                if (this.cloneScene.IconPathType != 0)
                {
@@ -881,7 +942,7 @@
                    var fileName = $"SceneIcon_{tradeTime}.png";
                    //生成文件图片
                    IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), this.btnScenePic.ImageBytes);
                    HdlAutoBackupLogic.AddOrEditorFile(fileName);
                    HdlBackupLogic.Current.AddOrEditorAutoBackFileStatu(fileName);
                    this.cloneScene.IconPath = fileName;
                }
            }
@@ -893,7 +954,10 @@
            this.editorScene.Save();
            //编辑场景,主页需要重新刷新
            UserView.UserPage.Instance.RefreshForm = true;
            UserView.UserPage.Instance.RefreshAllForm = true;
            //关闭进度条
            this.CloseProgressBar();
            HdlThreadLogic.Current.RunMain(() =>
            {