using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.Residence
{
///
/// 编辑房间信息的界面
///
public class EditorRoomInforForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 列表控件
///
private VerticalListControl listview = null;
///
/// 房间对象
///
private Common.Room editorRoom = null;
///
/// 克隆对象
///
private Common.Room cloneRoom = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 编辑的房间对象
public void ShowForm(Common.Room i_editorRoom = null)
{
this.editorRoom = i_editorRoom;
this.cloneRoom = i_editorRoom.CloneRoomClass();
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorRoom));
//初始化中部信息
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 = this.cloneRoom.BackgroundImage;
bodyFrameLayout.AddChidren(btnPic);
//初始化桌布
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), this.cloneRoom.Name, 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.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);
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.cloneRoom.Name = txtRoomName.Text;
//检测能否保存房间
if (this.CheckCanSaveRoom() == false)
{
return;
}
editorRoom.Save();
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 == cloneRoom.FloorId)
{
index = listKeys.Count - 1;
}
}
PickerView.Show(listName, (value) =>
{
control.txtView.Text = listName[value];
//主键修改
cloneRoom.FloorId = 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.cloneRoom.Name == string.Empty)
{
//请输入房间名称
this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName));
return false;
}
if (Shared.Common.Room.Lists.Find((obj) => obj.Name == this.cloneRoom.Name && obj.Id != this.cloneRoom.Id) != null)
{
this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.HadSameRoom));
return false;
}
if (cloneRoom.BackgroundImageType == 1 || cloneRoom.BackgroundImageType == 2)
{
this.cloneRoom.MoveBackGroundIamageFileToDirectory(cloneRoom.BackgroundImage, cloneRoom.BackgroundImage);
this.cloneRoom.BackgroundImage = $"{Common.Config.Instance.Guid}/{Common.Config.Instance.HomeId}/{cloneRoom.BackgroundImage}";
}
editorRoom.FloorId = cloneRoom.FloorId;
editorRoom.Name = cloneRoom.Name;
editorRoom.BackgroundImage = cloneRoom.BackgroundImage;
editorRoom.BackgroundImageType = cloneRoom.BackgroundImageType;
cloneRoom = null;
return true;
}
#endregion
}
}