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;
if (titleId == StringId.Lights)
{
Action action = () =>
{
Action refreshAction = (outScene) => {
if (outScene != null)
{
functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
var sceneRow = new SceneControlZone(outScene);
functionListView.AddChidren(sceneRow);
sceneRow.LoadView();
}
};
var skipView = new AddLightScene(new List(), new Scene() { sceneType = SceneType.LightScene }, refreshAction);
MainPage.BasePageView.AddChidren(skipView);
skipView.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
new TopViewDiv(bodyView, Language.StringByID(titleId)).LoadTopView_LightFunction(action);
}
else
{
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.Instance.CurFloor.roomName,
};
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(FunctionList.List.GetLightList());
var lightScene = FunctionList.List.scenes.FindAll((obj) => obj.sceneType == SceneType.LightScene);
foreach (var scene in lightScene)
{
functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
var sceneRow = new SceneControlZone(scene);
functionListView.AddChidren(sceneRow);
sceneRow.LoadView();
}
}
else if (titleId == StringId.AC)
{
functionList.AddRange(FunctionList.List.GetAcList());
}
else if (titleId == StringId.Curtain)
{
functionList.AddRange(FunctionList.List.GetCurtainList());
}
else if (titleId == StringId.FloorHeating)
{
functionList.AddRange(FunctionList.List.GetFloorHeatingList());
}
else if (titleId == StringId.Electric)
{
functionList.AddRange(FunctionList.List.GetElectricals());
}
else if (titleId == StringId.EnvironmentalScience)
{
functionList.AddRange(FunctionList.List.GetEnvirSensorsList());
}
else if (titleId == StringId.Sensor)
{
functionList.AddRange(FunctionList.List.GetArmSensorList());
}
else if (titleId == StringId.FreshAir)
{
functionList.AddRange(FunctionList.List.GetAirFreshList());
}
functionList.OrderByDescending(o => o.controlCounter).ToList();
ShowFunctionRow(functionList);
LoadDialog_ChangeFloor();
}
///
/// 加载功能row
///
void ShowFunctionRow(List showList)
{
functionListView.RemoveAll();
foreach (var function in showList)
{
if(function.spk == SPK.SensorDryContact|| function.spk == SPK.SensorDryContact2)
{
continue;
}
if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
{
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.spk + 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.spk + function.sid
};
functionDiv.LoadFunctionDiv();
functionListView.AddChidren(functionDiv);
}
functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10) });
}
}
/////
///// 加载功能类型控制卡片
/////
//public void LoadSceneRow(Scene scene)
//{
// var bodyDiv = new FrameLayout()
// {
// 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 = "Scene-" + scene.sid
// };
// functionListView.AddChidren(bodyDiv);
// var btnIcon = new Button()
// {
// X = Application.GetRealWidth(10),
// Y = Application.GetRealHeight(15),
// Width = Application.GetRealWidth(32),
// Height = Application.GetRealWidth(32),
// };
// bodyDiv.AddChidren(btnIcon);
// var btnName = new Button()
// {
// X = Application.GetRealWidth(8 + 10 + 32),
// Y = Application.GetRealHeight(10),
// Width = Application.GetRealWidth(200),
// Height = Application.GetRealHeight(24),
// Text = scene.name,
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.FirstLevelTitleColor,
// TextSize = CSS_FontSize.TextFontSize,
// };
// bodyDiv.AddChidren(btnName);
// var btnFromFloor = new Button()
// {
// X = Application.GetRealWidth(8 + 10 + 32),
// Y = Application.GetRealHeight(10 + 24),
// Width = Application.GetRealWidth(200),
// Height = Application.GetRealHeight(18),
// Text = scene.GetRoomListName(),
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.PromptingColor1,
// TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
// };
// bodyDiv.AddChidren(btnFromFloor);
// var btnCollectionIcon = new Button()
// {
// X = Application.GetRealWidth(299),
// Y = Application.GetRealHeight(10),
// Width = Application.GetMinRealAverage(40),
// Height = Application.GetMinRealAverage(40),
// SelectedImagePath = "Collection/CollectionIcon.png",
// UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
// IsSelected = scene.collect
// };
// bodyDiv.AddChidren(btnCollectionIcon);
// btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png";
// if (scene.sceneType == SceneType.MovieScene)
// {
// var movieIcon = new Button()
// {
// X = Application.GetRealWidth(52),
// Y = Application.GetRealHeight(14),
// Width = Application.GetRealWidth(16),
// Height = Application.GetRealWidth(16),
// UnSelectedImagePath = "FunctionIcon/Scene/MovieMark.png",
// };
// bodyDiv.AddChidren(movieIcon);
// btnName.X = Application.GetRealWidth(52 + 16);
// }
// //加载场景控制事件
// LoadEvent_ControlScene(btnName, btnFromFloor, bodyDiv, scene);
// LoadEvent_FunctionCollection(btnCollectionIcon, scene);
//}
/////
///// 加载功能收藏按钮事件
/////
//void LoadEvent_FunctionCollection(Button btnCollectionIcon, Scene scene)
//{
// btnCollectionIcon.MouseUpEventHandler += (sender, e) =>
// {
// btnCollectionIcon.IsSelected = scene.collect = !btnCollectionIcon.IsSelected;
// scene.CollectScene();
// };
//}
/////
///// 加载场景控制事件
/////
//void LoadEvent_ControlScene(Button btnName, Button btnFromFloor, FrameLayout bodyDiv, Scene scene)
//{
// EventHandler upEvent = (sender, e) => {
// DriverLayer.Control.Ins.ControlScene(scene);
// string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
// new PublicAssmebly().TipMsgAutoClose(msg, false);
// };
// btnName.MouseUpEventHandler = upEvent;
// btnFromFloor.MouseUpEventHandler = upEvent;
// bodyDiv.MouseUpEventHandler = upEvent;
//}
///
/// 住宅列表点击事件
///
void LoadDialog_ChangeFloor()
{
string nowSelectId = null;
btnFloor.MouseUpEventHandler += (sender, e) =>
{
//显示下拉列表
var form = new FloorRoomSelectPopupView();
form.ShowDeviceFunctionView(btnFloor, this.functionList, (selectId, listFunc) =>
{
nowSelectId = selectId;
//重新加载界面
ShowFunctionRow(listFunc);
}, nowSelectId);
};
}
}
}