| | |
| | | //初始化添加目标
|
| | | 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;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | //分享的场景不能编辑
|
| | | if (this.editorScene == null || this.editorScene.IsSharedScene == false)
|
| | | {
|
| | | if (Config.Instance.Home.IsShowTemplate == true)
|
| | | {
|
| | | //模板场景不允许编辑
|
| | | return;
|
| | | }
|
| | | btnZhezhao.MouseUpEventHandler += (sender, e) =>
|
| | | {
|
| | | //房间图片选择
|
| | |
| | |
|
| | | //信息编辑
|
| | | 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;
|
| | |
| | | //场景名称
|
| | | 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();
|
| | |
| | | this.nowRoomId = selectId;
|
| | | };
|
| | | }
|
| | | if (Config.Instance.Home.IsShowTemplate == true)
|
| | | {
|
| | | //模板场景不允许编辑
|
| | | rowBelong.CanClick = false;
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// </summary>
|
| | | private void InitAddTargetControl()
|
| | | {
|
| | | if (this.frameTargetTableControl == null)
|
| | | if (this.frameTargetTableControl == null || this.frameTargetTableControl.Parent == null)
|
| | | {
|
| | | //添加目标的的容器控件
|
| | | this.frameTargetTableControl = new FrameListControl();
|
| | |
| | | //显示添加目标菜单
|
| | | 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();
|
| | | //添加【执行目标行】
|
| | | this.AddTargetRow();
|
| | | var result = this.GetSceneTargetList();
|
| | | if (result == true)
|
| | | {
|
| | | //添加【执行目标行】
|
| | | this.AddTargetRow();
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | 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)
|
| | | {
|
| | | //不显示这个不存在本地的设备
|
| | |
| | | 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;
|
| | |
|
| | |
| | | //分享的场景不能编辑
|
| | | if (this.editorScene == null || this.editorScene.IsSharedScene == false)
|
| | | {
|
| | | if (Config.Instance.Home.IsShowTemplate == true)
|
| | | {
|
| | | //模板场景不允许编辑
|
| | | return;
|
| | | }
|
| | | //编辑
|
| | | var btnEditor = rowDevice.AddEditorControl();
|
| | | btnEditor.ButtonClickEvent += (sender, e) =>
|
| | |
| | | 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)
|
| | | {
|
| | |
| | | //分享的场景不能编辑
|
| | | if (this.editorScene == null || this.editorScene.IsSharedScene == false)
|
| | | {
|
| | | if (Config.Instance.Home.IsShowTemplate == true)
|
| | | {
|
| | | //模板场景不允许编辑
|
| | | return;
|
| | | }
|
| | | //删除
|
| | | var btnDelete = rowScene.AddDeleteControl();
|
| | | btnDelete.ButtonClickEvent += (sender, e) =>
|
| | |
| | | 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();
|
| | |
| | | //分享的场景不能编辑
|
| | | if (this.editorScene == null || this.editorScene.IsSharedScene == false)
|
| | | {
|
| | | if (Common.Config.Instance.Home.IsShowTemplate == true)
|
| | | {
|
| | | //模板场景不允许编辑
|
| | | return;
|
| | | }
|
| | | //编辑
|
| | | var btnEditor = rowDelay.AddEditorControl();
|
| | | btnEditor.ButtonClickEvent += (sender, e) =>
|
| | |
| | | /// 从网关获取场景的执行目标
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async System.Threading.Tasks.Task<bool> GetSceneTargetList()
|
| | | private bool GetSceneTargetList()
|
| | | {
|
| | | if (this.editorScene == null || this.listAdjustTarget != null)
|
| | | {
|
| | | return true;
|
| | | }
|
| | |
|
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | | //获取执行目标列表
|
| | | var listData = await HdlSceneLogic.Current.GetAdjustTargetList(this.editorScene);
|
| | | var listData = HdlSceneLogic.Current.GetAdjustTargetList(this.editorScene);
|
| | | if (listData == null)
|
| | | {
|
| | | this.CloseProgressBar(ShowReLoadMode.YES);
|
| | |
| | | //那个特殊的控件
|
| | | this.frameBottomTemp = new FrameLayout();
|
| | | frameBottomTemp.Height = bodyFrameLayout.Height - btnTemp.Yaxis + Application.GetRealHeight(23);
|
| | | this.listBodyControl.AddChidrenFrame(frameBottomTemp);
|
| | | this.listBodyControl.AddChidren(frameBottomTemp);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | 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;
|
| | |
| | | /// <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();
|
| | |
|
| | |
| | | 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;
|
| | | }
|
| | | //转移属性
|
| | |
| | | this.editorScene.IconPathType = this.cloneScene.IconPathType;
|
| | | this.editorScene.IconPath = this.cloneScene.IconPath;
|
| | | this.editorScene.Save();
|
| | |
|
| | | //新建场景,主页需要重新刷新
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | |
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | |
| | | var result = await HdlSceneLogic.Current.EditorSceneNameFromGateway(this.editorScene, this.cloneScene.Name);
|
| | | if (result == false)
|
| | | {
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | //修改场景
|
| | | var result = await HdlSceneLogic.Current.EditorSceneFromGateway(this.editorScene, this.listAdjustTarget);
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | | {
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | }
|
| | | }
|
| | |
| | | //变更房间
|
| | | 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)
|
| | |
| | | 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)
|
| | | {
|
| | |
| | | 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;
|
| | | }
|
| | | }
|
| | |
| | | this.editorScene.IconPath = this.cloneScene.IconPath;
|
| | | this.editorScene.Save();
|
| | |
|
| | | //编辑场景,主页需要重新刷新
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | |
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | |
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //调用回调函数
|