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 aC;
Button btnCollection_Out;
Button btnFunctionName_Out;
Button btnFromFloor_Out;
///
/// 刷新显示信息
///
Action actionRefresh;
#endregion
public ACPage(AC func)
{
bodyView = this;
aC = 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 = aC.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 = aC.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 = aC.collection
};
controlView.AddChidren(btnCollection);
arcBar = new DiyArcSeekBar()
{
#if __IOS__
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(120+25),
Width = Application.GetRealWidth(260-40),
Height = Application.GetRealWidth(260-40),
OpenAngle = 160,
ThumbImagePath = aC.trait_on_off.value.ToString() == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png",
ThumbImageHeight = Application.GetRealWidth(50),
ProgressBarColor = aC.trait_on_off.value.ToString() == "on"? CSS_Color.MainColor :CSS_Color.PromptingColor2,
MinValue = 16,
MaxValue = 38,
Progress = Convert.ToInt32( aC.trait_temp.value),
IsClickable = aC.trait_on_off.value.ToString() == "on" ,
ArcColor = CSS_Color.BackgroundColor,
SeekBarPadding = Application.GetRealWidth(8),
#else
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(120 + 40),
Width = Application.GetRealWidth(260 - 40),
Height = Application.GetRealWidth(260 - 40),
OpenAngle = 160,
ThumbImagePath = aC.trait_on_off.value.ToString() == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png",
ThumbImageHeight = Application.GetRealWidth(50),
ProgressBarColor = aC.trait_on_off.value.ToString() == "on" ? CSS_Color.MainColor : CSS_Color.PromptingColor2,
MinValue = 16,
MaxValue = 38,
Progress = Convert.ToInt32( aC.trait_temp.value),
IsClickable = aC.trait_on_off.value.ToString() == "on",
ArcColor = CSS_Color.BackgroundColor,
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 = aC.trait_temp.value.ToString(),
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(100),
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 = aC.curModeImage,
};
controlView.AddChidren(btnMode);
btnWindSpeed = new Button()
{
X = Application.GetRealWidth(235),
Y = Application.GetRealHeight(337),
Width = Application.GetRealWidth(30),
Height = Application.GetRealWidth(30),
UnSelectedImagePath = aC.curFanImage,
};
controlView.AddChidren(btnWindSpeed);
btnSwitch = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(462),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "Public/PowerClose.png",
SelectedImagePath = "Public/PowerOpen.png",
IsSelected = aC.trait_on_off.value.ToString() == "on"
};
controlView.AddChidren(btnSwitch);
LoadEventList();
new TopViewDiv(bodyView,aC.name).LoadTopView_FunctionTop(aC, actionRefresh);
}
///
/// 加载修改模式区域
///
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",
Animate = Animate.UpToDown,
AnimateSpeed = 0.3f
};
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);
foreach(var m in aC.trait_mode.value_key)
{
Button btnModeIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (aC.trait_mode.value_key.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = aC.trait_mode.value.ToString() == m,
};
modeChangeView.AddChidren(btnModeIcon);
Button btnModeText = new Button()
{
X = Application.GetRealWidth(12) + btnModeIcon.Right,
Y = Application.GetRealHeight(44 * (aC.trait_mode.value_key.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(70),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = aC.trait_mode.value.ToString() == 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(aC.trait_mode.value_key.IndexOf(m) < aC.trait_mode.value_key.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),
AnimateSpeed = 0.3f,
BackgroundImagePath = "FunctionIcon/AC/DivBg2.png",
Animate = Animate.UpToDown,
};
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);
foreach (var m in aC.trait_fan.value_key)
{
Button btnFanIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (aC.trait_fan.value_key.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = aC.trait_fan.value.ToString() == m,
};
modeChangeView.AddChidren(btnFanIcon);
Button btnFanText = new Button()
{
X = Application.GetRealWidth(12) + btnFanIcon.Right,
Y = Application.GetRealHeight(44 * (aC.trait_fan.value_key.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(70),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = aC.trait_fan.value.ToString() == 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 (aC.trait_fan.value_key.IndexOf(m) < aC.trait_fan.value_key.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();
}
}
}