using System;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public partial class FunctionControlZone : FrameLayout
|
{
|
#region 区域控件
|
FrameLayout bodyDiv;
|
/// <summary>
|
/// 功能/场景icon
|
/// </summary>
|
Button btnIcon;
|
/// <summary>
|
/// 功能名称/场景名称
|
/// </summary>
|
Button btnName;
|
/// <summary>
|
/// 楼层信息显示按钮
|
/// </summary>
|
Button btnFromFloor;
|
/// <summary>
|
/// 收藏按钮
|
/// </summary>
|
Button btnCollectionIcon;
|
#endregion
|
|
#region 区域变量
|
Function function;
|
#endregion
|
public FunctionControlZone(Function func)
|
{
|
bodyDiv = this;
|
function = func;
|
}
|
|
public override void RemoveFromParent()
|
{
|
base.RemoveFromParent();
|
bodyDiv = null;
|
}
|
|
/// <summary>
|
/// 加载功能类型控制卡片
|
/// </summary>
|
public void LoadFunctionDiv()
|
{
|
if (function == null)
|
{
|
this.RemoveFromParent();
|
return;
|
}
|
LoadDiv();
|
|
|
if (function.functionCategory == FunctionCategory.Curtain || function.functionCategory == FunctionCategory.Scene)//窗帘没有开关按钮
|
{
|
switch (function.functionCategory)
|
{
|
case FunctionCategory.Curtain:
|
btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
|
CurtainFragment();
|
break;
|
case FunctionCategory.Scene:
|
btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png";
|
if ((function as 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();
|
break;
|
}
|
}
|
else
|
{
|
#region 加载开关按钮
|
/// <summary>
|
/// 开关按钮
|
/// </summary>
|
Button btnSwitch;
|
if (function.functionType == FunctionType.RGB || function.functionType == FunctionType.Dimmer)
|
{
|
btnSwitch = new Button()
|
{
|
X = Application.GetRealWidth(303),
|
Y = Application.GetRealHeight(78),
|
Width = Application.GetMinRealAverage(32),
|
Height = Application.GetMinRealAverage(32),
|
UnSelectedImagePath = "Public/PowerClose.png",
|
SelectedImagePath = "Public/PowerOpen.png",
|
IsSelected = function.on_off == "on",
|
Tag = function.functionType + "_Switch_" + function.sid,
|
};
|
bodyDiv.AddChidren(btnSwitch);
|
}
|
else
|
{
|
btnSwitch = new Button()
|
{
|
X = Application.GetRealWidth(303),
|
Y = Application.GetRealHeight(58),
|
Width = Application.GetMinRealAverage(32),
|
Height = Application.GetMinRealAverage(32),
|
UnSelectedImagePath = "Public/PowerClose.png",
|
SelectedImagePath = "Public/PowerOpen.png",
|
IsSelected = function.on_off == "on",
|
Tag = function.functionType + "_Switch_" + function.sid,
|
};
|
bodyDiv.AddChidren(btnSwitch);
|
}
|
//加载开关按钮事件
|
LoadEvent_SwitchFunction(btnSwitch);
|
|
switch (function.functionCategory)
|
{
|
case FunctionCategory.Thermostat:
|
switch (function.functionType)
|
{
|
case FunctionType.AC:
|
btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon.png";
|
LoadLastStatesButton();
|
break;
|
case FunctionType.FloorHeating:
|
btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
|
LoadLastStatesButton();
|
break;
|
}
|
break;
|
case FunctionCategory.Light:
|
btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
|
btnSwitch.IsSelected = function.on_off == "on";
|
LoadLightControl();
|
break;
|
}
|
|
#endregion
|
}
|
|
if (function.functionCategory != FunctionCategory.Scene)
|
{
|
LoadEvent_DivSkipEvent();
|
}
|
LoadEvent_FunctionCollection();
|
}
|
|
/// <summary>
|
/// 加载控制卡片区域
|
/// </summary>
|
void LoadDiv()
|
{
|
btnIcon = new Button()
|
{
|
X = Application.GetRealWidth(10),
|
Y = Application.GetRealHeight(15),
|
Width = Application.GetRealWidth(32),
|
Height = Application.GetRealWidth(32),
|
};
|
bodyDiv.AddChidren(btnIcon);
|
|
btnName = new Button()
|
{
|
X = Application.GetRealWidth(8 +10 + 32),
|
Y = Application.GetRealHeight(10),
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetRealHeight(24),
|
Text = function.name,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
};
|
bodyDiv.AddChidren(btnName);
|
|
btnFromFloor = new Button()
|
{
|
X = Application.GetRealWidth(8 + 10 + 32),
|
Y = Application.GetRealHeight(10 + 24),
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetRealHeight(18),
|
Text = function.GetRoomListName(),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
bodyDiv.AddChidren(btnFromFloor);
|
|
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 = function.collection
|
};
|
bodyDiv.AddChidren(btnCollectionIcon);
|
|
}
|
|
/// <summary>
|
/// 加载灯光功能控制卡片
|
/// </summary>
|
void LoadLightControl()
|
{
|
switch (function.functionType)
|
{
|
case FunctionType.Dimmer:
|
case FunctionType.RGB:
|
#region Dimmer
|
var btnDimmerMinValues = new Button()
|
{
|
X = Application.GetRealWidth(14),
|
Y = Application.GetRealHeight(85),
|
Width = Application.GetRealWidth(22),
|
Height = Application.GetRealHeight(21),
|
Text = "0%",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
bodyDiv.AddChidren(btnDimmerMinValues);
|
|
var dimmerControlBar = new DiyImageSeekBar()
|
{
|
X = Application.GetRealWidth(14+ 22),
|
Y = Application.GetRealHeight(68),//91,设计数据
|
Width = Application.GetRealWidth(180),
|
Height = Application.GetRealHeight(54),
|
SeekBarViewHeight = Application.GetRealHeight(8),
|
ThumbImagePath = "Public/ThumbImage.png",
|
ThumbImageHeight = Application.GetRealHeight(54),
|
ProgressBarColor = (function as Light).on_off == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.PromptingColor2,
|
ProgressTextColor = CSS_Color.FirstLevelTitleColor,
|
ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
MaxValue = 100,
|
Progress = (function as Light).brightness,
|
Tag = function.functionType + "_DimmerBar_" + function.sid
|
};
|
bodyDiv.AddChidren(dimmerControlBar);
|
|
var btnDimmerMaxValues = new Button()
|
{
|
X = Application.GetRealWidth(14 + 22+180),
|
Y = Application.GetRealHeight(85),
|
Width = Application.GetRealWidth(35),
|
Height = Application.GetRealHeight(21),
|
Text = "100%",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
bodyDiv.AddChidren(btnDimmerMaxValues);
|
//加载调光事件
|
LoadEvent_LightDimming(dimmerControlBar);
|
#endregion
|
break;
|
}
|
}
|
|
/// <summary>
|
/// 加载窗帘功能控制卡片
|
/// </summary>
|
void CurtainFragment()
|
{
|
#region Curtain
|
var btnCurtainClose = new Button()
|
{
|
X = Application.GetRealWidth(163),
|
Y = Application.GetRealHeight(58),
|
Width = Application.GetMinRealAverage(32),
|
Height = Application.GetMinRealAverage(32),
|
UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
|
SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
|
Tag = function.functionType + "_off_" + function.sid
|
};
|
bodyDiv.AddChidren(btnCurtainClose);
|
|
var btnCurtainStop = new Button()
|
{
|
X = Application.GetRealWidth(233),
|
Y = Application.GetRealHeight(58),
|
Width = Application.GetMinRealAverage(32),
|
Height = Application.GetMinRealAverage(32),
|
UnSelectedImagePath = "FunctionIcon/Curtain/CurtainStopIcon.png",
|
SelectedImagePath = "FunctionIcon/Curtain/CurtainStopOnIcon.png",
|
};
|
bodyDiv.AddChidren(btnCurtainStop);
|
|
var btnCurtainOpen = new Button()
|
{
|
X = Application.GetRealWidth(303),
|
Y = Application.GetRealHeight(58),
|
Width = Application.GetMinRealAverage(32),
|
Height = Application.GetMinRealAverage(32),
|
UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
|
SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
|
Tag = function.functionType + "_on_" + function.sid
|
};
|
bodyDiv.AddChidren(btnCurtainOpen);
|
LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function as Curtain);
|
#endregion
|
}
|
/// <summary>
|
/// 加载功能状态信息按钮
|
/// </summary>
|
void LoadLastStatesButton()
|
{
|
var btnLastStates = new Button()
|
{
|
X = Application.GetRealWidth(10 + 32 + 8),
|
Y = Application.GetRealHeight(10 + 24 + 18),
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetRealHeight(18),
|
Text = function.lastState,
|
TextAlignment = TextAlignment.CenterLeft,
|
SelectedTextColor = CSS_Color.PromptingColor1,
|
TextColor = 0x00000000,
|
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
|
Tag = function.functionType + "_laststates_" + function.sid,
|
IsSelected = function.on_off == "on"
|
};
|
bodyDiv.AddChidren(btnLastStates);
|
}
|
|
}
|
}
|