using System;
using Shared;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
namespace HDL_ON.UI
{
public partial class ACPage : FrameLayout
{
#region 控件集合
static ACPage bodyView;
///
/// 功能名称按钮
///
Button btnFunctionName;
///
/// 房间楼层信息按钮
///
Button btnFromFoorAndRoom;
///
/// 收藏按钮
///
Button btnCollection;
///
/// 空调温度控制控件
///
DiyArcSeekBar arcBar;
///
/// 减号按钮
///
Button btnMinus;
///
/// 加号按钮
///
Button btnPlus;
///
/// 温度按钮
///
Button btnTemp;
Button btnTempUint;
///
/// 室内温度按钮
///
Button btnIndoorTemp;
///
/// 模式按钮
///
Button btnMode;
///
/// 风俗按钮
///
Button btnWindSpeed;
///
/// 电源按钮
///
Button btnSwitch;
///
/// 修改模式信息区域
///
//FrameLayout modeChangeView;
///
/// 修改风速信息区域
///
//FrameLayout fanChangeView;
#endregion
#region 区域变量
AC acTemp = new AC();
Function function;
Button btnCollection_Out;
Button btnFunctionName_Out;
Button btnFromFloor_Out;
///
/// 刷新显示信息
///
Action actionRefresh;
#endregion
public ACPage(Function func)
{
bodyView = this;
function = func;
}
public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
btnCollection_Out = btnCollectionIcon;
btnFunctionName_Out = btnFunctionNameOut;
btnFromFloor_Out = btnFromFloorOut;
FrameLayout controlView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(88),
Width = Application.GetRealWidth(327),
Height = Application.GetRealHeight(526),
BackgroundImagePath = "Public/Fragmentbg.png",
};
bodyView.AddChidren(controlView);
btnFunctionName = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(37),
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
Text = function.name,
};
controlView.AddChidren(btnFunctionName);
btnFromFoorAndRoom = new Button()
{
X = Application.GetRealWidth(16),
Y = btnFunctionName.Bottom,
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(21),
TextColor = CSS_Color.PromptingColor1,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
Text = function.GetRoomListName()
};
controlView.AddChidren(btnFromFoorAndRoom);
btnCollection = new Button()
{
X = Application.GetRealWidth(273),
Y = Application.GetRealHeight(14),
Width = Application.GetMinRealAverage(40),
Height = Application.GetMinRealAverage(40),
SelectedImagePath = "Collection/CollectionIcon.png",
UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
IsSelected = function.collect
};
//controlView.AddChidren(btnCollection);
//2020-12-16 如果是成员隐藏收藏功能
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
{
controlView.AddChidren(btnCollection);
}
arcBar = new DiyArcSeekBar()
{
Gravity = Gravity.CenterHorizontal,
OpenAngle = 160,
ThumbImagePath = function.trait_on_off.curValue.ToString() == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png",
ThumbImageHeight = Application.GetRealWidth(50),
ProgressBarColor = CSS_Color.MainColor,
OfflineProgressBarColor = CSS_Color.PromptingColor2,
IsOffline = function.trait_on_off.curValue.ToString() == "off",
MinValue = function.GetAttribute(FunctionAttributeKey.SetTemp).min,
MaxValue = function.GetAttribute(FunctionAttributeKey.SetTemp).max,
//IsClickable = function.trait_on_off.curValue.ToString() == "on",
ArcColor = CSS_Color.BackgroundColor,
Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.SetTemp)),
#if __IOS__
Y = Application.GetRealHeight(120 + 25),
Width = Application.GetRealWidth(260 - 40),
Height = Application.GetRealWidth(260 - 40),
SeekBarPadding = Application.GetRealWidth(8),
#else
Y = Application.GetRealHeight(120 + 40),
Width = Application.GetRealWidth(260 - 40),
Height = Application.GetRealWidth(260 - 40),
SeekBarPadding = Application.GetRealWidth(7),
#endif
};
controlView.AddChidren(arcBar);
btnTemp = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(206),
Width = Application.GetRealWidth(71),
Height = Application.GetRealWidth(60),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = 50,
IsBold = true,
Text = function.GetAttrState(FunctionAttributeKey.SetTemp),
TextAlignment = TextAlignment.Center,
};
controlView.AddChidren(btnTemp);
btnTempUint = new Button()
{
X = btnTemp.Right,
Y = btnTemp.Y,
Width = Application.GetRealWidth(30),
Height = Application.GetRealHeight(30),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
IsBold = true,
TextAlignment = TextAlignment.CenterLeft,
Text = "°C",
};
controlView.AddChidren(btnTempUint);
btnIndoorTemp = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = btnTemp.Bottom,
Width = Application.GetRealWidth(120),
Height = Application.GetRealHeight(20),
Text = Language.StringByID(StringId.IndoorTemp) + "20°C",
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
controlView.AddChidren(btnIndoorTemp);
btnMinus = new Button()
{
X = Application.GetRealWidth(21),
Y = Application.GetRealHeight(263),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/MinusSignIcon.png",
};
controlView.AddChidren(btnMinus);
btnPlus = new Button()
{
X = Application.GetRealWidth(275),
Y = Application.GetRealHeight(263),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/PlusSignIcon.png",
};
controlView.AddChidren(btnPlus);
btnMode = new Button()
{
X = Application.GetRealWidth(60),
Y = Application.GetRealHeight(334),
Width = Application.GetRealWidth(30),
Height = Application.GetRealWidth(30),
UnSelectedImagePath = acTemp.GetModeIconPath(function.GetAttrState(FunctionAttributeKey.Mode)),
};
controlView.AddChidren(btnMode);
btnWindSpeed = new Button()
{
X = Application.GetRealWidth(235),
Y = Application.GetRealHeight(337),
Width = Application.GetRealWidth(30),
Height = Application.GetRealWidth(30),
UnSelectedImagePath = acTemp.GetFanIconPath(function.GetAttrState(FunctionAttributeKey.FanSpeed)),
};
controlView.AddChidren(btnWindSpeed);
btnSwitch = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(466),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/PowerClose.png",
SelectedImagePath = "Public/PowerOpen.png",
IsSelected = function.trait_on_off.curValue.ToString() == "on"
};
controlView.AddChidren(btnSwitch);
LoadEventList();
new TopViewDiv(bodyView,Language.StringByID(StringId.AC)).LoadTopView_FunctionTop(function, actionRefresh);
new System.Threading.Thread(() =>
{
DriverLayer.Control.Ins.SendReadCommand(function);
})
{ IsBackground = true }.Start();
}
///
/// 加载修改模式区域
///
void LoadDiv_ChangeModeView()
{
Dialog dialog = new Dialog();
FrameLayout dialogView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
};
dialog.AddChidren(dialogView);
FrameLayout modeChangeView;
modeChangeView = new FrameLayout()
{
X = Application.GetRealWidth(30),
Y = Application.GetRealHeight(128),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(287),
BackgroundImagePath = "FunctionIcon/AC/DivBg1.png",
};
dialogView.AddChidren(modeChangeView);
Button btnTitle;
btnTitle = new Button()
{
X = Application.GetRealWidth(8+16),
Y = Application.GetRealHeight(8),
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextID = StringId.ChooseMode,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
};
modeChangeView.AddChidren(btnTitle);
Button btnLine = new Button()
{
X = btnTitle.X,
Y = btnTitle.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
};
modeChangeView.AddChidren(btnLine);
var modeList = function.GetAttribute(FunctionAttributeKey.Mode).value;
foreach (var m in modeList)
{
Button btnModeIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = function.GetAttrState(FunctionAttributeKey.Mode) == m,
};
modeChangeView.AddChidren(btnModeIcon);
Button btnModeText = new Button()
{
X = Application.GetRealWidth(12) + btnModeIcon.Right,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(90),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = function.GetAttrState(FunctionAttributeKey.Mode) == m,
TextSize = CSS_FontSize.TextFontSize,
};
modeChangeView.AddChidren(btnModeText);
switch (m)
{
case "auto":
btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/AutoIconGray.png";
btnModeIcon.SelectedImagePath = "FunctionIcon/AC/AutoIcon.png";
btnModeText.TextID = StringId.Auto;
break;
case "cool":
btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/CoolIconGray.png";
btnModeIcon.SelectedImagePath = "FunctionIcon/AC/CoolIcon.png";
btnModeText.TextID = StringId.Cool;
break;
case "heat":
btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/HeatingIconGray.png";
btnModeIcon.SelectedImagePath = "FunctionIcon/AC/HeatingIcon.png";
btnModeText.TextID = StringId.Heat;
break;
case "dry":
btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/DehumidificationIconGray.png";
btnModeIcon.SelectedImagePath = "FunctionIcon/AC/DehumidificationIcon.png";
btnModeText.TextID = StringId.Dry;
break;
case "fan":
btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/AirSupplyIconGray.png";
btnModeIcon.SelectedImagePath = "FunctionIcon/AC/AirSupplyIcon.png";
btnModeText.TextID = StringId.AirSupply;
break;
}
if (modeList.IndexOf(m) < modeList.Count - 1)
{
modeChangeView.AddChidren(new Button()
{
X = btnTitle.X,
Y = btnModeText.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
});
}
LoadEvent_ChangeMode(dialog, dialogView, btnModeIcon, btnModeText,m);
}
dialogView.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
dialog.Show();
}
///
/// 加载修改模式区域
///
void LoadDiv_ChangeFanView()
{
Dialog dialog = new Dialog();
FrameLayout dialogView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
};
dialog.AddChidren(dialogView);
FrameLayout modeChangeView;
modeChangeView = new FrameLayout()
{
X = Application.GetRealWidth(185),
Y = Application.GetRealHeight(172),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(243),
BackgroundImagePath = "FunctionIcon/AC/DivBg2.png",
};
dialogView.AddChidren(modeChangeView);
Button btnTitle;
btnTitle = new Button()
{
X = Application.GetRealWidth(8 + 16),
Y = Application.GetRealHeight(8),
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextID = StringId.ChooseFan,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
};
modeChangeView.AddChidren(btnTitle);
Button btnLine = new Button()
{
X = btnTitle.X,
Y = btnTitle.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
};
modeChangeView.AddChidren(btnLine);
var modeList = function.GetAttribute(FunctionAttributeKey.FanSpeed).value;
foreach (var m in modeList)
{
Button btnFanIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = function.GetAttrState(FunctionAttributeKey.FanSpeed) == m,
};
modeChangeView.AddChidren(btnFanIcon);
Button btnFanText = new Button()
{
X = Application.GetRealWidth(12) + btnFanIcon.Right,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(70),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = function.GetAttrState(FunctionAttributeKey.FanSpeed) == m,
TextSize = CSS_FontSize.TextFontSize,
};
modeChangeView.AddChidren(btnFanText);
switch (m)
{
case "high":
btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/WindHighIconGray.png";
btnFanIcon.SelectedImagePath = "FunctionIcon/AC/WindHighIcon.png";
btnFanText.TextID = StringId.HighWindSpeed;
break;
case "medium":
btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/WindMediumIconGray.png";
btnFanIcon.SelectedImagePath = "FunctionIcon/AC/WindMediumIcon.png";
btnFanText.TextID = StringId.MiddleWindSpeed;
break;
case "low":
btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/WindLowIconGray.png";
btnFanIcon.SelectedImagePath = "FunctionIcon/AC/WindLowIcon.png";
btnFanText.TextID = StringId.LowWindSpeed;
break;
case "auto":
btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/AutoIconGray.png";
btnFanIcon.SelectedImagePath = "FunctionIcon/AC/AutoIcon.png";
btnFanText.TextID = StringId.Auto;
break;
}
if (modeList.IndexOf(m) < modeList.Count - 1)
{
modeChangeView.AddChidren(new Button()
{
X = btnTitle.X,
Y = btnFanText.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
});
}
LoadEvent_ChangeFan(dialog, dialogView, btnFanIcon, btnFanText,m);
}
dialog.Show();
}
}
}