using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public partial class ClassificationPage : FrameLayout
{
#region 控件列表
FrameLayout bodyView;
#region 顶部控件
///
/// 房间分页
///
Button btnRoomTilte;
///
/// 功能分类
///
Button btnFuncTitle;
#endregion
#region 房间区域
///
/// 房间内容显示区域
///
FrameLayout roomContentView;
#region 房间底部切换显示区域
///
/// 房间区域,顶部区域
///
FrameLayout roomTopView;
///
/// 楼层选择下拉图标
///
Button btnFoorDownIcon;
///
/// 楼层显示
///
Button btnFoor;
///
/// 显示方式切换按钮
///
Button btnSwitchDipaly;
#endregion
///
/// 房间列表区域
///
VerticalScrolViewLayout roomListView;
///
/// 房间区域集合
///
List roomViewList;
#endregion
#endregion
public ClassificationPage()
{
bodyView = this;
}
public void LoadPage()
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
#region top
FrameLayout topView = new FrameLayout()
{
Height = Application.GetRealHeight(64),
BackgroundColor = CSS_Color.TopViewColor,
};
bodyView.AddChidren(topView);
btnRoomTilte = new Button()
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(170),
Height = Application.GetRealHeight(25),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.HeadlineFontSize,
TextColor = CSS_Color.PromptingColor1,
SelectedTextColor = CSS_Color.MainColor,
TextID = StringId.Rooms,
IsSelected = true
};
topView.AddChidren(btnRoomTilte);
btnFuncTitle = new Button()
{
X = Application.GetRealWidth(209),
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(170),
Height = Application.GetRealHeight(25),
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
SelectedTextColor = CSS_Color.MainColor,
TextID = StringId.Devices,
};
topView.AddChidren(btnFuncTitle);
#endregion
#region 房间区域
///
/// 房间内容显示区域
///
roomContentView = new FrameLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(52),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(roomContentView);
#region 房间底部切换显示区域
///
/// 房间区域,顶部区域
///
roomTopView = new FrameLayout()
{
Height = Application.GetRealHeight(53),
};
roomContentView.AddChidren(roomTopView);
///
/// 楼层选择下拉图标
///
btnFoorDownIcon = new Button()
{
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(18),
UnSelectedImagePath = "Public/DownIcon.png",
};
roomContentView.AddChidren(btnFoorDownIcon);
///
/// 楼层显示
///
btnFoor = new Button()
{
X = btnFoorDownIcon.Right,
Y = Application.GetRealHeight(18),
Width = Application.GetRealWidth(200),
Height = Application.GetMinRealAverage(16),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextAlignment = TextAlignment.CenterLeft,
Text = UserConfig.Instance.CurFoor,
};
roomContentView.AddChidren(btnFoor);
///
/// 显示方式切换按钮
///
btnSwitchDipaly = new Button()
{
X = Application.GetRealWidth(335),
Y = Application.GetRealHeight(12),
Width = Application.GetMinRealAverage(28),
Height = Application.GetMinRealAverage(28),
UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缩略图
SelectedImagePath = "Classification/ToggleDisplayLarge.png",
};
roomContentView.AddChidren(btnSwitchDipaly);
#endregion
///
/// 房间列表区域
///
roomListView = new VerticalScrolViewLayout()
{
Y = roomContentView.Bottom,
Height = Application.GetRealHeight(497 + 10+30),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(roomListView);
///
/// 房间区域集合
///
roomViewList = new List();
#if DEBUG1
var r = new Room() { sid = "0001", name = "Room-1", floor = "1F", backgroundImage = "Classification/Room/Roombg.png" };
r.functions.Add(new Function()
{
sid = "000000000000000000000000000000000001",
funcType = FunctionType.AC,
name = "空调",
roomIdList = new List() { "0001" },
lastState = "制冷 中风 18°C",
bus_Data = "{" +
"\"SubnetID\":42" + "," +
"\"DeviceID\":8" + "," +
"\"LoopID\":1" +
"}",
});
r.functions.Add(new Dimmer()
{
sid = "0001002019101209000025670400010002",
funcType = FunctionType.Light,
name = "客厅灯",
roomIdList = new List() { "0001" },
lastState = "20%",
bus_Data = "{" +
"\"SubnetID\":111" + "," +
"\"DeviceID\":2" + "," +
"\"LoopID\":1" +
"}",
});
r.functions.Add(new MotorCurtain()
{
sid = "000000000000000000000000000000000003",
funcType = FunctionType.Curtain,
name = "窗帘",
roomIdList = new List() { "0001" },
lastState = "20%",
bus_Data = "{" +
"\"SubnetID\":42" + "," +
"\"DeviceID\":7" + "," +
"\"LoopID\":1" +
"}",
});
r.functions.Add(new Function()
{
sid = "000000000000000000000000000000000004",
funcType = FunctionType.FloorHeating,
name = "地热",
roomIdList = new List() { "0001" },
lastState = ""
});
r.functions.Add(new Light()
{
sid = "0001002019101209000025670400010005",
funcType = FunctionType.Light,
name = "客厅大灯",
roomIdList = new List() { "0001" },
bus_Data = "{" +
"\"SubnetID\":111" + "," +
"\"DeviceID\":6" + "," +
"\"LoopID\":1" +
"}",
});
r.functions.Add(new RGBLight()
{
sid = "0001002019101209000025670500010006",
funcType = FunctionType.Light,
name = "客厅RGB灯",
roomIdList = new List() { "0001" },
bus_Data = "{" +
"\"SubnetID\":222" + "," +
"\"DeviceID\":222" + "," +
"\"LoopID\":222" +
"}",
});
DB_ResidenceData.residenceData.rooms.Add(r);
#endif
foreach (var room in DB_ResidenceData.residenceData.rooms)
{
var roomView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(184),
Radius = (uint)Application.GetRealHeight(12),
BorderColor = 0x00000000,
BorderWidth = 1,
};
roomListView.AddChidren(roomView);
var roomViewbg = new Button()
{
UnSelectedImagePath = room.backgroundImage,
};
roomView.AddChidren(roomViewbg);
var roomViewbgColor = new Button()
{
BackgroundColor = 0x19333333,
};
roomView.AddChidren(roomViewbgColor);
var btnFloorAndRoomName = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(12 - 2),
Width = Application.GetRealWidth(266),
Height = Application.GetRealHeight(22 + 2 + 2),
Text = room.floor + " " + room.name,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.MainBackgroundColor,
TextSize = CSS_FontSize.SubheadingFontSize,
};
roomView.AddChidren(btnFloorAndRoomName);
#region 环境数据
var environmentalView = new FrameLayout()
{
Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom,
Height = Application.GetRealHeight(32),
Tag = "EnvironmentalView",
};
topView.AddChidren(environmentalView);
Button btnTempIcon = new Button()
{
X = Application.GetRealWidth(12),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/InfoIcon/TempIcon.png",
};
environmentalView.AddChidren(btnTempIcon);
var btnTempValues = new Button()
{
X = btnTempIcon.Right + Application.GetRealWidth(4),
Width = Application.GetRealWidth(30),
Gravity = Gravity.CenterVertical,
TextColor = CSS.CSS_Color.MainBackgroundColor,
TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
Text = "--°",
TextAlignment = TextAlignment.CenterLeft,
Tag = "TempValues"
};
environmentalView.AddChidren(btnTempValues);
Button btnHumidityIcon = new Button()
{
X = btnTempValues.Right + Application.GetRealWidth(2),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/InfoIcon/HumidityIcon.png",
};
environmentalView.AddChidren(btnHumidityIcon);
var btnHumidityValues = new Button()
{
X = btnHumidityIcon.Right + Application.GetRealWidth(4),
Width = Application.GetRealWidth(30),
Gravity = Gravity.CenterVertical,
TextColor = CSS.CSS_Color.MainBackgroundColor,
TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
Text = "--%",
TextAlignment = TextAlignment.CenterLeft,
Tag = "HumidityValues"
};
environmentalView.AddChidren(btnHumidityValues);
Button btnPm25Icon = new Button()
{
X = btnHumidityValues.Right + Application.GetRealWidth(2),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/InfoIcon/Pm25Icon.png",
};
environmentalView.AddChidren(btnPm25Icon);
var btnPm25Values = new Button()
{
X = btnPm25Icon.Right + Application.GetRealWidth(4),
Width = Application.GetRealWidth(30),
Gravity = Gravity.CenterVertical,
TextColor = CSS.CSS_Color.MainBackgroundColor,
TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
Text = "--",
TextAlignment = TextAlignment.CenterLeft,
Tag = "Pm25Values"
};
environmentalView.AddChidren(btnPm25Values);
roomView.AddChidren(environmentalView);
#endregion
var btnAllClose = new Button()
{
X = Application.GetRealWidth(282),
Y = Application.GetRealHeight(126),
Width = Application.GetMinRealAverage(58),
Height = Application.GetMinRealAverage(58),
UnSelectedImagePath = "",
SelectedImagePath = "Classification/Room/AllCloseIcon.png",
};
roomView.AddChidren(btnAllClose);
#if DEBUG
btnAllClose.IsSelected = true;
#endif
var btn = new Button()
{
Height = Application.GetRealHeight(20),
};
roomListView.AddChidren(btn);
roomViewList.Add(roomView);
roomViewbgColor.MouseUpEventHandler += (sender, e) => {
var view = new RoomPage(room);
MainPage.BasePageView.AddChidren(view);
view.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
}
roomListView.AddChidren(new Button() { Height = Application.GetRealHeight(20) });//太高视图,将导航了遮挡的部分完整显示
#endregion
}
}
}