using System;
using System.Collections.Generic;
using System.Linq;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public partial class FunctionPage : FrameLayout
{
#region 控件列表
///
/// 当前窗体
///
static FrameLayout bodyView;
///
/// 楼层选择下拉图标
///
Button btnFloorDownIcon;
///
/// 楼层显示
///
Button btnFloor;
///
/// 功能列表集合显示区域
///
static VerticalScrolViewLayout functionListView;
#endregion
List functionList;
public FunctionPage()
{
bodyView = this;
functionList = new List();
}
public void LoadPage(int titleId)
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
new TopViewDiv(bodyView, Language.StringByID(titleId)).LoadTopView();
///
/// 房间内容显示区域
///
var roomFloorChangeView = new FrameLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(52),
};
bodyView.AddChidren(roomFloorChangeView);
#region 房间顶部切换显示区域
btnFloorDownIcon = new Button()
{
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(18),
UnSelectedImagePath = "Public/DownIcon.png",
};
roomFloorChangeView.AddChidren(btnFloorDownIcon);
btnFloor = new Button()
{
X = btnFloorDownIcon.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 = DB_ResidenceData.residenceData.CurFoor,
};
roomFloorChangeView.AddChidren(btnFloor);
#endregion
functionListView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64 + 52),
Height = Application.GetRealHeight(603 - 12 - 52),
};
bodyView.AddChidren(functionListView);
if (titleId == StringId.Lights)
{
functionList.AddRange(DB_ResidenceData.functionList.lights);
}
else if (titleId == StringId.AC)
{
functionList.AddRange(DB_ResidenceData.functionList.aCs);
}
else if (titleId == StringId.Curtain)
{
functionList.AddRange(DB_ResidenceData.functionList.curtains);
}
else if (titleId == StringId.FloorHeating)
{
functionList.AddRange(DB_ResidenceData.functionList.floorHeatings);
}
else if (titleId == StringId.Electric)
{
functionList.AddRange(DB_ResidenceData.functionList.electricals);
}
else if (titleId == StringId.EnvironmentalScience)
{
functionList.AddRange(DB_ResidenceData.functionList.sensorsEnvironmentalScience);
}
functionList.OrderByDescending(o => o.usageCount).ToList();
ShowFunctionRow(functionList);
LoadDialog_ChangeFloor();
}
///
/// 加载功能row
///
void ShowFunctionRow(List showList)
{
functionListView.RemoveAll();
foreach (var function in showList)
{
if (function.functionType == FunctionType.RGB || function.functionType == FunctionType.Dimmer)
{
var functionDiv = new FunctionControlZone(function)
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(116),
Radius = (uint)Application.GetMinRealAverage(12),
BorderColor = 0x00FFFFFF,
BorderWidth = 1,
BackgroundColor = CSS_Color.MainBackgroundColor,
Tag = function.sid
};
functionDiv.LoadFunctionDiv();
functionListView.AddChidren(functionDiv);
}
else
{
var functionDiv = new FunctionControlZone(function)
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(96),
Radius = (uint)Application.GetMinRealAverage(12),
BorderColor = 0x00FFFFFF,
BorderWidth = 1,
BackgroundColor = CSS_Color.MainBackgroundColor,
Tag = function.sid
};
functionDiv.LoadFunctionDiv();
functionListView.AddChidren(functionDiv);
}
functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10) });
}
}
///
/// 住宅列表点击事件
///
void LoadDialog_ChangeFloor()
{
EventHandler eventHandler = (sender, e) =>
{
var dialog = new Dialog();
var dialogBody = new FrameLayout();
dialog.AddChidren(dialogBody);
dialogBody.MouseUpEventHandler += (sender1, e1) =>
{
dialog.Close();
};
var dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(100),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(110),
BackgroundImagePath = "PersonalCenter/HomeList1bg.png",
};
dialogBody.AddChidren(dispalyView);
var contentView = new VerticalScrolViewLayout()
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(15),
Width = Application.GetRealWidth(150),
Height = Application.GetRealHeight(45 * 2),
ScrollEnabled = false
};
dispalyView.AddChidren(contentView);
if (DB_ResidenceData.rooms.Count < 2)
{
}
else if (DB_ResidenceData.rooms.Count < 3)
{
dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(100),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(155),
BackgroundImagePath = "PersonalCenter/HomeList2bg.png",
};
dialogBody.AddChidren(dispalyView);
contentView.Height = Application.GetRealHeight(45 * 3);
dispalyView.AddChidren(contentView);
}
else if (DB_ResidenceData.rooms.Count < 4)
{
dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(100),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(200),
BackgroundImagePath = "PersonalCenter/HomeList3bg.png",
};
dialogBody.AddChidren(dispalyView);
contentView.Height = Application.GetRealHeight(45 * 4);
dispalyView.AddChidren(contentView);
}
else
{
dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(100),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(245),
BackgroundImagePath = "PersonalCenter/HomeList4bg.png",
};
dialogBody.AddChidren(dispalyView);
contentView.Height = Application.GetRealHeight(45 * 5);
contentView.ScrollEnabled = true;
dispalyView.AddChidren(contentView);
}
List roomList = new List();
roomList.Add(new Room() { sid = "", name = Language.StringByID(StringId.All) });
roomList.AddRange(DB_ResidenceData.rooms);
foreach (var tempRoom in roomList)
{
var roomName = tempRoom.name;
if (roomName != Language.StringByID(StringId.All))
{
contentView.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor
});
}
var btnHomeName = new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
Text = roomName,
TextSize = CSS_FontSize.SubheadingFontSize,
IsSelected = btnFloor.Text == roomName,
IsMoreLines = true,
};
contentView.AddChidren(btnHomeName);
btnHomeName.MouseUpEventHandler += (senderH, en) =>
{
dialog.Close();
btnFloor.Text = roomName;
if (roomName == Language.StringByID(StringId.All))
{
ShowFunctionRow(functionList);
}
else
{
var showList = new List();
foreach (var sf in functionList)
{
if(sf.roomIdList.Contains(tempRoom.sid))
{
showList.Add(sf);
}
}
ShowFunctionRow(showList);
}
};
}
dialog.Show();
};
btnFloor.MouseUpEventHandler = eventHandler;
btnFloorDownIcon.MouseUpEventHandler = eventHandler;
}
}
}