using System;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
using HDL_ON.Entity;
|
|
namespace HDL_ON.UI
|
{
|
public partial class FloorsManagementPage : FrameLayout
|
{
|
FrameLayout bodyView;
|
/// <summary>
|
/// 楼层显示区域
|
/// </summary>
|
VerticalScrolViewLayout floorsListView;
|
/// <summary>
|
/// 显示区域
|
/// </summary>
|
FrameLayout contentView;
|
/// <summary>
|
/// 楼层标题按钮
|
/// </summary>
|
Button btnFloorTitle;
|
|
public FloorsManagementPage()
|
{
|
bodyView = this;
|
}
|
|
/// <summary>
|
/// 加载界面
|
/// </summary>
|
public void LoadPage()
|
{
|
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
|
Action<string> addFloorAction = (floorName) =>
|
{
|
RefreshFloorsListView(floorName);
|
};
|
new TopViewDiv(bodyView, Language.StringByID(StringId.FloorsManagement)).LoadTopView_FloorTopView(addFloorAction, null);
|
|
int count = SpatialInfo.CurrentSpatial.FloorList.Count > 8 ? 8 : SpatialInfo.CurrentSpatial.FloorList.Count;
|
var contentViewHeight = (count + 1) * Application.GetRealHeight(50);
|
|
contentView = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(80),
|
Width = Application.GetRealWidth(343),
|
Height = contentViewHeight,
|
Radius = (uint)Application.GetRealHeight(5),
|
BorderColor = 0x00FFFFFF,
|
BorderWidth = 0,
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
bodyView.AddChidren(contentView);
|
|
btnFloorTitle = new Button()
|
{
|
Height = Application.GetRealHeight(50),
|
TextID = StringId.Floors,
|
TextAlignment = TextAlignment.Center,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
};
|
contentView.AddChidren(btnFloorTitle);
|
contentView.AddChidren(new Button()
|
{
|
Height = Application.GetRealHeight(1),
|
Y = Application.GetRealHeight(49),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
|
floorsListView = new VerticalScrolViewLayout()
|
{
|
Y = btnFloorTitle.Bottom,
|
Height = count * Application.GetRealHeight(50),
|
};
|
contentView.AddChidren(floorsListView);
|
|
foreach (var floor in SpatialInfo.CurrentSpatial.FloorList)
|
{
|
LoadFloorRow(floor);
|
}
|
}
|
|
/// <summary>
|
/// 加载楼层Row
|
/// </summary>
|
/// <param name="floor"></param>
|
void LoadFloorRow(SpatialInfo floor)
|
{
|
var row = new RowLayout()
|
{
|
Height = Application.GetRealHeight(50),
|
Tag = floor.roomId,
|
LineColor = CSS_Color.DividingLineColor,
|
};
|
floorsListView.AddChidren(row);
|
|
var btnFloor = new Button()
|
{
|
Height = Application.GetRealHeight(50),
|
TextAlignment = TextAlignment.Center,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextColor = CSS_Color.TextualColor,
|
SelectedTextColor = CSS_Color.MainColor,
|
Text = floor.roomName,
|
Tag = floor.roomId,
|
};
|
row.AddChidren(btnFloor);
|
|
var btnDel = new Button()
|
{
|
TextID = StringId.Del,
|
BackgroundColor = CSS_Color.WarningColor,
|
TextColor = CSS_Color.MainBackgroundColor,
|
Tag = floor.roomId
|
};
|
row.AddRightView(btnDel);
|
LoadEvent_DelFloor(btnDel);
|
LoadEvent_FloorNamgeChange(btnFloor, floor);
|
}
|
|
void RefreshFloorsListView(string floorName)
|
{
|
try
|
{
|
var waitPage = new Loading();
|
MainPage.BaseView.AddChidren(waitPage);
|
waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
var f = new SpatialInfo("FLOOR") { roomName = floorName, parentId = DB_ResidenceData.Instance.CurrentRegion.RegionID };
|
var addResult = SpatialInfo.CurrentSpatial.AddFloor(f, out f);
|
if (addResult == DAL.Server.StateCode.SUCCESS)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
LoadFloorRow(f);
|
int count2 = SpatialInfo.CurrentSpatial.FloorList.Count > 8 ? 8 : SpatialInfo.CurrentSpatial.FloorList.Count;
|
var contentViewHeight = (count2 + 1) * Application.GetRealHeight(50);
|
contentView.Height = contentViewHeight;
|
floorsListView.Height = count2 * Application.GetRealHeight(50);
|
|
});
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() => {
|
waitPage.Hide();
|
waitPage.RemoveFromParent();
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("add floor eroor : " + ex.Message);
|
}
|
int count = SpatialInfo.CurrentSpatial.FloorList.Count > 10 ? 10 : SpatialInfo.CurrentSpatial.FloorList.Count;
|
floorsListView.Height = Application.GetRealHeight(50 * count);
|
contentView.Height = Application.GetRealHeight(50 * (count + 1));
|
}
|
|
}
|
}
|