using System;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using HDL_ON.UI.Music;
using Shared;
namespace HDL_ON.UI
{
public partial class FunctionControlZone : FrameLayout
{
#region 区域控件
static FrameLayout bodyDiv;
///
/// 功能/场景icon
///
Button btnIcon;
///
/// 功能名称/场景名称
///
Button btnName;
///
/// 楼层信息显示按钮
///
Button btnFromFloor;
///
/// 收藏按钮
///
Button btnCollectionIcon;
#endregion
#region 区域变量
Function function;
///
/// 是否在调光
///
bool onDimmerBar;
#endregion
public FunctionControlZone(Function func)
{
bodyDiv = this;
bodyDiv.Tag = func.sid;
function = func;
}
public override void RemoveFromParent()
{
base.RemoveFromParent();
bodyDiv = null;
}
///
/// 加载功能类型控制卡片
///
public void LoadFunctionDiv()
{
//todo 增加设备,增加功能列表卡片
if (function == null)
{
this.RemoveFromParent();
return;
}
LoadDiv();
if (function.Spk_Prefix == FunctionCategory.Curtain//窗帘没有开关按钮
|| function.Spk_Prefix == FunctionCategory.Music//音乐没有开关按钮
|| function.Spk_Prefix == FunctionCategory.Sensor//传感器没有开关按钮
)
{
switch (function.Spk_Prefix)
{
case FunctionCategory.Curtain:
switch (function.spk)
{
case SPK.CurtainSwitch:
btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
break;
case SPK.CurtainTrietex:
btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/MotorCurtainIcon.png";
break;
case SPK.CurtainRoller:
btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/RollingShutterIcon.png";
break;
}
CurtainFragment();
break;
case FunctionCategory.Sensor:
switch (function.spk)
{
case SPK.SensorPir:
btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorPirIcon.png";
break;
case SPK.SensorWater:
btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorWaterImmersionIcon.png";
break;
case SPK.SensorSmoke:
btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorSmokeIcon.png";
break;
case SPK.SensorDoorWindow:
btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorDoorIcon.png";
break;
}
break;
case FunctionCategory.Music:
btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png";
MusicFragment();
break;
}
}
else
{
#region 加载开关按钮
///
/// 开关按钮
///
Button btnSwitch;
if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
{
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.trait_on_off.curValue.ToString() == "on",
Tag = function.sid + "_Switch",
};
bodyDiv.AddChidren(btnSwitch);
//加载开关按钮事件
LoadEvent_SwitchFunction(btnSwitch, function.attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime));
}
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.trait_on_off.curValue.ToString() == "on",
Tag = function.sid + "_Switch",
};
bodyDiv.AddChidren(btnSwitch);
//加载开关按钮事件
LoadEvent_SwitchFunction(btnSwitch);
}
switch (function.Spk_Prefix)
{
case FunctionCategory.AC:
switch (function.spk)
{
case SPK.AcStandard:
btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
LoadLastStatesButton();
break;
}
break;
case FunctionCategory.FloorHeat:
switch (function.spk)
{
case SPK.FloorHeatStandard:
btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
LoadLastStatesButton();
break;
}
break;
case FunctionCategory.Light:
btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
LoadLightControl();
break;
case FunctionCategory.Electric:
switch (function.spk)
{
case SPK.ElectricSocket:
btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
break;
case SPK.ElectricFan:
case SPK.ElectricTuyaFan:
btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
break;
case SPK.ElectricTV:
btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
break;
case SPK.ElectricTuyaAirCleaner:
btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/AirCleanerThiinIcon.png";
break;
case SPK.ElectricTuyaWeepRobot:
btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobotThinIcon.png";
break;
case SPK.ElectricTuyaWaterValve:
btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WaterValve/WaterValveIcon.png";
break;
}
btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
break;
}
#endregion
}
LoadEvent_DivSkipEvent();
LoadEvent_FunctionCollection();
}
///
/// 加载控制卡片区域
///
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.collect
};
//bodyDiv.AddChidren(btnCollectionIcon);
//2020-12-16 如果是成员隐藏收藏功能
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare && function.Spk_Prefix != FunctionCategory.Sensor)
{
bodyDiv.AddChidren(btnCollectionIcon);
}
}
///
/// 加载灯光功能控制卡片
///
void LoadLightControl()
{
switch (function.spk)
{
case SPK.LightDimming:
case SPK.LightRGB:
#region Dimmer
var btnDimmerMinValues = new Button()
{
X = Application.GetRealWidth(14),
Y = Application.GetRealHeight(85),
Width = Application.GetRealWidth(30),
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.trait_on_off.curValue.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.PromptingColor2,
ProgressTextColor = CSS_Color.FirstLevelTitleColor,
ProgressTextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
MaxValue = 100,
Progress = (function as Light).brightness,
Tag = function.sid + "_DimmerBar",
SeekBarPadding = Application.GetRealWidth(20),
};
bodyDiv.AddChidren(dimmerControlBar);
var btnDimmerMaxValues = new Button()
{
X = Application.GetRealWidth(14 + 22+180),
Y = Application.GetRealHeight(85),
Width = Application.GetRealWidth(45),
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;
}
}
///
/// 加载窗帘功能控制卡片
///
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",
IsSelected = function.trait_on_off.curValue.ToString() == "off",
Tag = function.sid + "_off"
};
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",
Tag = function.sid + "_stop",
IsSelected = function.trait_on_off.curValue.ToString() == "stop"
};
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.sid + "_on",
IsSelected = function.trait_on_off.curValue.ToString() == "on"
};
bodyDiv.AddChidren(btnCurtainOpen);
LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function as Curtain);
#endregion
}
///
/// 加载音乐功能控制卡片
///
void MusicFragment()
{
#region Music
var btnPrev = new Button()
{
X = Application.GetRealWidth(163),
Y = Application.GetRealHeight(58),
Width = Application.GetMinRealAverage(32),
Height = Application.GetMinRealAverage(32),
UnSelectedImagePath = "MusicIcon/prev.png",
SelectedImagePath = "MusicIcon/prevSeletced.png",
};
bodyDiv.AddChidren(btnPrev);
var btnPlay = new Button()
{
X = Application.GetRealWidth(233),
Y = Application.GetRealHeight(58),
Width = Application.GetMinRealAverage(32),
Height = Application.GetMinRealAverage(32),
UnSelectedImagePath = "MusicIcon/pause.png",
SelectedImagePath = "MusicIcon/play.png",
IsSelected = (function as A31MusicModel).A31PlayStatus.status == "play" ,
Tag = function.spk + "_State_" + function.sid
};
bodyDiv.AddChidren(btnPlay);
var btnNext = new Button()
{
X = Application.GetRealWidth(303),
Y = Application.GetRealHeight(58),
Width = Application.GetMinRealAverage(32),
Height = Application.GetMinRealAverage(32),
UnSelectedImagePath = "MusicIcon/next.png",
SelectedImagePath = "MusicIcon/nextSelected.png",
};
bodyDiv.AddChidren(btnNext);
LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function as A31MusicModel);
#endregion
}
///
/// 加载功能状态信息按钮
///
void LoadLastStatesButton()
{
if(function.spk == SPK.LightSwitch)
{
return;
}
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.spk + "_laststates_" + function.sid,
IsSelected = function.trait_on_off.curValue.ToString() == "on"
};
bodyDiv.AddChidren(btnLastStates);
}
}
}