using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter.Residence { /// /// 添加新房间的界面 /// public class AddNewRoomForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 列表控件 /// private VerticalListControl listview = null; /// /// 楼层主键 /// private string floorKeys = string.Empty; /// /// 新房间对象 /// private Common.Room newRoom = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 楼层主键 public void ShowForm(string i_floorKeys) { this.floorKeys = i_floorKeys; //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCreatRoom)); //初始化中部信息 this.InitMiddleFrame(); } /// /// 初始化中部信息 /// private void InitMiddleFrame() { //清空bodyFrame this.ClearBodyFrame(); var btnPic = new PicViewControl(887, 444); btnPic.Y = Application.GetRealHeight(60); btnPic.Gravity = Gravity.CenterHorizontal; btnPic.UnSelectedImagePath = "Room/r0.png"; bodyFrameLayout.AddChidren(btnPic); this.newRoom = new Common.Room(); newRoom.FloorId = this.floorKeys; newRoom.BackgroundImage = btnPic.UnSelectedImagePath; //初始化桌布 var tableContr = new InformationEditorControl(); this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 562, 1175); //添加全部菜单 this.AddAllMenuRow(tableContr); } #endregion #region ■ 添加菜单___________________________ /// /// 添加全部菜单 /// private void AddAllMenuRow(InformationEditorControl tableContr) { //【房间名称】 var txtRoomName = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uRoomName), string.Empty, this.listview.rowSpace / 2); txtRoomName.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName); listview.AddChidren(txtRoomName); txtRoomName.InitControl(); //底线 txtRoomName.AddBottomLine(); //【所属楼层】 var btnBelone = new FrameCaptionViewControl(Language.StringByID(R.MyInternationalizationString.uBelongeFloor), Common.Config.Instance.Home.FloorDics[this.floorKeys], 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); listview.AddChidren(rowTemperature); rowTemperature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uTemperature), 600); //右箭头 rowTemperature.AddRightArrow(); var btnTemper = rowTemperature.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300); //底线 rowTemperature.AddBottomLine(); rowTemperature.ButtonClickEvent += (sender, e) => { }; //【湿度】 var rowHumidity = new FrameRowControl(this.listview.rowSpace / 2); listview.AddChidren(rowHumidity); rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uHumidity), 600); //右箭头 rowHumidity.AddRightArrow(); var btnHumi = rowHumidity.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300); //底线 rowHumidity.AddBottomLine(); rowHumidity.ButtonClickEvent += (sender, e) => { }; //初始化桌布完成 tableContr.FinishInitControl(bodyFrameLayout, this.listview); tableContr = null; //保存 var btnFinish = new BottomClickButton(); btnFinish.TextID = R.MyInternationalizationString.uSave; bodyFrameLayout.AddChidren(btnFinish); btnFinish.ButtonClickEvent += (sender, e) => { this.newRoom.Name = txtRoomName.Text; //检测能否保存房间 if (this.CheckCanSaveRoom() == false) { return; } var result = newRoom.AddRoom(newRoom); if (result == false) { //提示用户添加失败 this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.FAIL)); } else { this.CloseForm(); } }; } #endregion #region ■ 楼层选择___________________________ /// /// 楼层选择 /// /// private void ShowSelectFloor(FrameCaptionViewControl control) { var dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); var listKeys = new List(); var listName = new List(); int index = 0; foreach (string keys in dicFloor.Keys) { listKeys.Add(keys); listName.Add(dicFloor[keys]); if (keys == this.floorKeys) { index = listKeys.Count - 1; } } PickerView.Show(listName, (value) => { control.txtView.Text = listName[value]; //主键修改 this.floorKeys = listKeys[value]; }, index, Language.StringByID(R.MyInternationalizationString.uBelongeFloor), Language.StringByID(R.MyInternationalizationString.uFinish), Language.StringByID(R.MyInternationalizationString.uCancel)); } #endregion #region ■ 一般方法___________________________ /// /// 检测能否保存房间 /// /// private bool CheckCanSaveRoom() { if (this.newRoom.Name == string.Empty) { //请输入房间名称 this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName)); return false; } if (Shared.Common.Room.Lists.Find((obj) => obj.Name == this.newRoom.Name) != null) { this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.HadSameRoom)); return false; } if (newRoom.BackgroundImageType == 1 || newRoom.BackgroundImageType == 2) { this.newRoom.MoveBackGroundIamageFileToDirectory(newRoom.BackgroundImage, newRoom.BackgroundImage); this.newRoom.BackgroundImage = $"{Common.Config.Instance.Guid}/{Common.Config.Instance.HomeId}/{newRoom.BackgroundImage}"; } newRoom.FloorId = this.floorKeys; return true; } #endregion } }