using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone.UserCenter.Residence
|
{
|
/// <summary>
|
/// 编辑房间信息的界面
|
/// </summary>
|
public class EditorRoomInforForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalListControl listview = null;
|
/// <summary>
|
/// 房间对象
|
/// </summary>
|
private Common.Room editorRoom = null;
|
/// <summary>
|
/// 克隆对象
|
/// </summary>
|
private Common.Room cloneRoom = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="i_editorRoom">编辑的房间对象</param>
|
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();
|
}
|
|
/// <summary>
|
/// 初始化中部信息
|
/// </summary>
|
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 ■ 添加菜单___________________________
|
|
/// <summary>
|
/// 添加全部菜单
|
/// </summary>
|
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 ■ 楼层选择___________________________
|
|
/// <summary>
|
/// 楼层选择
|
/// </summary>
|
/// <param name="control"></param>
|
private void ShowSelectFloor(FrameCaptionViewControl control)
|
{
|
var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
|
|
var listKeys = new List<string>();
|
var listName = new List<string>();
|
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 ■ 一般方法___________________________
|
|
/// <summary>
|
/// 检测能否保存房间
|
/// </summary>
|
/// <returns></returns>
|
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
|
}
|
}
|