using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using Shared;
namespace HDL_ON.UI
{
public partial class FloorsManagementPage
{
///
/// 楼层按钮修改名称点击事件
///
void LoadEvent_FloorNamgeChange(Button btn,SpatialInfo floor)
{
btn.MouseUpEventHandler = (sender, e) =>
{
Action editCallBack = (newName) =>
{
//楼层名称不能为空
if (string.IsNullOrEmpty(newName))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.FloorNameCannotBeEmpty),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
if (SpatialInfo.CurrentSpatial.FloorList.Find((obj) => obj.roomName == newName) != null)
{
return;
}
else
{
var waitPage = new Loading();
MainPage.BaseView.AddChidren(waitPage);
waitPage.Start(Language.StringByID(StringId.PleaseWait));
new System.Threading.Thread(() =>
{
try
{
var editResult = SpatialInfo.CurrentSpatial.UpdateFloor(floor);
Application.RunOnMainThread(() =>
{
if (editResult == DAL.Server.StateCode.SUCCESS)
{
floor.roomName = newName;
btn.Text = newName;
}
});
}
catch { }
finally
{
Application.RunOnMainThread(() => {
waitPage.Hide();
waitPage.RemoveFromParent();
});
}
})
{ IsBackground = true }.Start();
}
};
var floors = new List();
foreach (var f in SpatialInfo.CurrentSpatial.FloorList)
{
floors.Add(f.roomName);
}
new PublicAssmebly().LoadDialog_EditParater(StringId.EditFloorName, btn.Text, editCallBack,StringId.FloorNameCannotBeEmpty,
StringId.EditFloorFailed_FloorAlreadyExist,floors);
};
}
///
/// 删除楼层
///
void LoadEvent_DelFloor(Button btn)
{
btn.MouseUpEventHandler += (sender, e) =>
{
Action action = () =>
{
//该楼层删除之后,绑定该楼层的房间要重置绑定的楼层
foreach (var r in SpatialInfo.CurrentSpatial.RoomList)
{
if (r.parentId == btn.Tag.ToString())
{
r.parentId = "";
}
}
SpatialInfo.CurrentSpatial.DelFloor(btn.Tag.ToString());
for (int i = 0; i < floorsListView.ChildrenCount; i++)
{
if (floorsListView.GetChildren(i).GetType() == typeof(RowLayout))
{
RowLayout row = floorsListView.GetChildren(i) as RowLayout;
if (row.Tag == null)
continue;
if (row.Tag.ToString() == btn.Tag.ToString())
{
row.RemoveFromParent();
int count = SpatialInfo.CurrentSpatial.FloorList.Count > 8 ? 8 : SpatialInfo.CurrentSpatial.FloorList.Count;
var contentViewHeight = (count + 1) * Application.GetRealHeight(50);
contentView.Height = contentViewHeight;
floorsListView.Height = count * Application.GetRealHeight(50);
}
}
}
};
new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DelFloorTip, action);
};
}
}
}