黄学彪
2019-11-18 88ce6b0697ccf6ce467545bb1125aefdf5b7130b
ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -12,6 +12,10 @@
        #region ■ 变量声明___________________________
        /// <summary>
        /// 结束编辑名称的事件
        /// </summary>
        public Action<string> FinishEditorEvent = null;
        /// <summary>
        /// 列表控件
        /// </summary>
        private VerticalListControl listview = null;
@@ -51,18 +55,26 @@
            //清空bodyFrame
            this.ClearBodyFrame();
            var btnPic = new PicViewControl(887, 444);
            var btnPic = new ImageView();
            btnPic.Y = Application.GetRealHeight(60);
            btnPic.Width = Application.GetMinRealAverage(887);
            btnPic.Height = Application.GetMinRealAverage(444);
            btnPic.Gravity = Gravity.CenterHorizontal;
            btnPic.UnSelectedImagePath = this.cloneRoom.BackgroundImage;
            btnPic.Radius = 17;
            btnPic.ImagePath = this.editorRoom.BackgroundImage;
            bodyFrameLayout.AddChidren(btnPic);
            btnPic.MouseUpEventHandler += (sender, e) =>
            {
                //房间图片选择
                this.RoomPictrueSelect(btnPic);
            };
            //初始化桌布
            var tableContr = new InformationEditorControl();
            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 562, 1175);
            //添加全部菜单
            this.AddAllMenuRow(tableContr);
            this.AddAllMenuRow(tableContr, btnPic);
        }
        #endregion
@@ -72,7 +84,7 @@
        /// <summary>
        /// 添加全部菜单
        /// </summary>
        private void AddAllMenuRow(InformationEditorControl tableContr)
        private void AddAllMenuRow(InformationEditorControl tableContr, ImageView btnPic)
        {
            //【房间名称】
            var txtRoomName = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uRoomName), this.cloneRoom.Name, this.listview.rowSpace / 2);
@@ -82,19 +94,23 @@
            //底线
            txtRoomName.AddBottomLine();
            //【所属楼层】
            var btnBelone = new FrameCaptionViewControl(Language.StringByID(R.MyInternationalizationString.uBelongeFloor), Common.Config.Instance.Home.FloorDics[this.cloneRoom.FloorId], this.listview.rowSpace / 2);
            listview.AddChidren(btnBelone);
            btnBelone.InitControl();
            //右箭头
            btnBelone.AddRightArrow();
            //底线
            btnBelone.AddBottomLine();
            btnBelone.ButtonClickEvent += (sender, e) =>
            //该APP为有楼层的模式才开启这个菜单
            if (string.IsNullOrEmpty(this.cloneRoom.FloorId) == false)
            {
                //楼层选择
                this.ShowSelectFloor(btnBelone);
            };
                //【所属楼层】
                var btnBelone = new FrameCaptionViewControl(Language.StringByID(R.MyInternationalizationString.uBelongeFloor), Common.Config.Instance.Home.FloorDics[this.cloneRoom.FloorId], this.listview.rowSpace / 2);
                listview.AddChidren(btnBelone);
                btnBelone.InitControl();
                //右箭头
                btnBelone.AddRightArrow();
                //底线
                btnBelone.AddBottomLine();
                btnBelone.ButtonClickEvent += (sender, e) =>
                {
                    //楼层选择
                    this.ShowSelectFloor(btnBelone);
                };
            }
            //【温度】
            var rowTemperature = new FrameRowControl(this.listview.rowSpace / 2);
@@ -151,7 +167,19 @@
                {
                    return;
                }
                if (editorRoom.BackgroundImageType == 1 || editorRoom.BackgroundImageType == 2)
                {
                    //生成图片
                    string picName = $"Room_{DateTime.Now.ToString("yyyyMMddHHmmss")}";
                    string picFullName = System.IO.Path.Combine(Common.Config.Instance.FullPath, picName);
                    Shared.IO.FileUtils.WriteFileByBytes(picFullName, btnPic.ImageBytes);
                    editorRoom.BackgroundImage = picFullName;
                    //备份
                    HdlAutoBackupLogic.AddOrEditorFile(picName);
                }
                editorRoom.Save();
                FinishEditorEvent?.Invoke(this.cloneRoom.Name);
                this.CloseForm();
            };
        }
@@ -371,6 +399,69 @@
        #endregion
        #region ■ 房间图片选择_______________________
        /// <summary>
        /// 房间图片选择
        /// </summary>
        /// <param name="imageContr"></param>
        private void RoomPictrueSelect(ImageView imageContr)
        {
            var menuContr = new BottomMenuSelectForm();
            menuContr.AddForm(3);
            //默认图库
            menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.LocalPicture), () =>
            {
                var localPic = new Phone.Device.Room.AddRoomSelectPicByLocal();
                Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                localPic.Show();
                localPic.action = (imgPath) =>
                {
                    if (string.IsNullOrEmpty(imgPath) == true)
                    {
                        return;
                    }
                    this.cloneRoom.BackgroundImageType = 0;
                    this.cloneRoom.BackgroundImage = imgPath;
                    imageContr.ImagePath = imgPath;
                };
            });
            //拍照
            menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.Photograph), () =>
            {
                //通过相机拍照裁剪
                CropImage.TakePicture((imagePath) =>
                {
                    if (string.IsNullOrEmpty(imagePath) == true)
                    {
                        return;
                    }
                    this.cloneRoom.BackgroundImageType = 1;
                    imageContr.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                    System.IO.File.Delete(imagePath);
                }, "HdlPic", 2, 1);
            });
            //我的相册
            menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.MyAblums), () =>
            {
                //从相册选择图片裁剪
                CropImage.SelectPicture((imagePath) =>
                {
                    if (string.IsNullOrEmpty(imagePath) == true)
                    {
                        return;
                    }
                    this.cloneRoom.BackgroundImageType = 2;
                    imageContr.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                    System.IO.File.Delete(imagePath);
                }, "HdlPic", 2, 1);
            });
        }
        #endregion
        #region ■ 界面关闭___________________________
        /// <summary>
@@ -378,6 +469,8 @@
        /// </summary>
        public override void CloseForm()
        {
            this.FinishEditorEvent = null;
            HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice");
            HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice");
@@ -417,13 +510,17 @@
                    return false;
                }
            }
            if (cloneRoom.BackgroundImageType == 1 || cloneRoom.BackgroundImageType == 2)
            if (editorRoom.BackgroundImageType == 1 || editorRoom.BackgroundImageType == 2)
            {
                this.cloneRoom.MoveBackGroundIamageFileToDirectory(cloneRoom.BackgroundImage, cloneRoom.BackgroundImage);
                this.cloneRoom.BackgroundImage = $"{Common.Config.Instance.Guid}/{Common.Config.Instance.HomeId}/{cloneRoom.BackgroundImage}";
                //删除掉原来的自定义图片
                if (System.IO.File.Exists(editorRoom.BackgroundImage) == true)
                {
                    System.IO.File.Delete(editorRoom.BackgroundImage);
                }
                //备份
                string[] MyArry = editorRoom.BackgroundImage.Split(new string[] { "/", @"\" }, StringSplitOptions.RemoveEmptyEntries);
                HdlAutoBackupLogic.DeleteFile(MyArry[MyArry.Length - 1]);
            }
            editorRoom.FloorId = cloneRoom.FloorId;
            editorRoom.Name = cloneRoom.Name;
            editorRoom.HumidityDevice = cloneRoom.HumidityDevice;