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
}
}