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