using System;
using System.Collections.Generic;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
///
/// 投影仪页面
///
public class PjtPage : FrameLayout
{
#region 控件集合
FrameLayout bodyView;
///
/// 功能名称按钮
///
Button btnFunctionName;
///
/// 房间楼层信息按钮
///
Button btnFromFoorAndRoom;
///
/// 收藏按钮
///
Button btnCollection;
FrameLayout topMenuView;
Button btnTopMenuUp;
Button btnTopMenuLeft;
Button btnTopMenuRight;
Button btnTopMenuDown;
Button btnOk;
FrameLayout channleView;
Button btnChlReduce;
Button btnChlPlus;
FrameLayout volView;
Button btnVolReduce;
Button btnVolPlus;
Button btnBack;
Button btnMenu;
Button btnMore;
Button btnPower;
#endregion
#region 区域变量
Function device;
Button btnCollection_Out;
Button btnFunctionName_Out;
Button btnFromFloor_Out;
///
/// 刷新显示信息
///
Action actionRefresh;
#endregion
public PjtPage(Function func)
{
bodyView = this;
device = 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 = device.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 = device.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 = device.collect
};
controlView.AddChidren(btnCollection);
//2020-12-16 如果是成员隐藏收藏功能
//if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
//{
// controlView.AddChidren(btnCollection);
//}
#region 轮盘控制区域
topMenuView = new FrameLayout()
{
Y = Application.GetRealHeight(88),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(199),
Height = Application.GetRealWidth(199),
BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png",
};
controlView.AddChidren(topMenuView);
btnTopMenuUp = new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(80),
Height = Application.GetRealWidth(50),
};
topMenuView.AddChidren(btnTopMenuUp);
btnTopMenuLeft = new Button()
{
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(80),
};
topMenuView.AddChidren(btnTopMenuLeft);
btnTopMenuRight = new Button()
{
X = Application.GetRealWidth(150),
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(80),
};
topMenuView.AddChidren(btnTopMenuRight);
btnTopMenuDown = new Button()
{
Y = Application.GetRealWidth(150),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(80),
Height = Application.GetRealWidth(50),
};
topMenuView.AddChidren(btnTopMenuDown);
btnOk = new Button()
{
Gravity = Gravity.Center,
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(100),
};
topMenuView.AddChidren(btnOk);
#endregion
#region 频道音量调节
channleView = new FrameLayout()
{
X = Application.GetRealWidth(26),
Y = Application.GetRealHeight(246),
Width = Application.GetRealWidth(44),
Height = Application.GetRealWidth(102),
BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
};
controlView.AddChidren(channleView);
btnChlPlus = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(10),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
};
channleView.AddChidren(btnChlPlus);
Button btnChlText;
btnChlText = new Button()
{
Gravity = Gravity.CenterVertical,
Height = Application.GetRealWidth(23),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextColor = CSS_Color.FirstLevelTitleColor,
TextID = StringId.Canvas,
};
channleView.AddChidren(btnChlText);
btnChlReduce = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealWidth(66),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
};
channleView.AddChidren(btnChlReduce);
volView = new FrameLayout()
{
X = Application.GetRealWidth(257),
Y = Application.GetRealHeight(246),
Width = Application.GetRealWidth(44),
Height = Application.GetRealWidth(102),
BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
};
controlView.AddChidren(volView);
btnVolPlus = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(10),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
};
volView.AddChidren(btnVolPlus);
Button btnVolText;
btnVolText = new Button()
{
Gravity = Gravity.CenterVertical,
Height = Application.GetRealWidth(23),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextColor = CSS_Color.FirstLevelTitleColor,
TextID = StringId.Vol,
};
volView.AddChidren(btnVolText);
btnVolReduce = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealWidth(66),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
};
volView.AddChidren(btnVolReduce);
#endregion
#region 底部控制区域
btnBack = new Button()
{
X = Application.GetRealWidth(52),
Y = Application.GetRealHeight(466),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVBackIcon.png",
};
controlView.AddChidren(btnBack);
btnMenu = new Button()
{
X = Application.GetRealWidth(116),
Y = Application.GetRealHeight(466),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVMenuIcon.png",
};
controlView.AddChidren(btnMenu);
btnMore = new Button()
{
X = Application.GetRealWidth(180),
Y = Application.GetRealHeight(466),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "FunctionIcon/AC/More.png",
};
controlView.AddChidren(btnMore);
btnMore.MouseUpEventHandler = (sender, e) => {
LoadDialog_IrMoreView();
};
btnPower = new Button()
{
X = Application.GetRealWidth(244),
Y = Application.GetRealHeight(466),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVPowerIcon.png",
};
controlView.AddChidren(btnPower);
#endregion
new TopViewDiv(bodyView, Language.StringByID(StringId.PJT)).LoadTopView_FunctionTop(device, actionRefresh);
LoadEventList();
}
///
/// 加载额外对红外按钮界面
///
void LoadDialog_IrMoreView()
{
Dialog dialog = new Dialog();
var div = new FrameLayout();
dialog.AddChidren(div);
div.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
var bodyView = new FrameLayout()
{
Y = Application.GetRealHeight(417),//667
Height = Application.GetRealHeight(250),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
div.AddChidren(bodyView);
var contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(16),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(296 + 200),
Height = Application.GetRealHeight(234),
};
bodyView.AddChidren(contentView);
var row = new FrameLayout()
{
Height = Application.GetRealHeight(60),
Width = Application.GetRealWidth(296),
Gravity = Gravity.CenterHorizontal,
};
contentView.AddChidren(row);
int index = 0;
List attrList = new List();
attrList.AddRange(device.attributes);
attrList.Add(new FunctionAttributes()
{
key = "+",
});
foreach (var attr in attrList)
{
if (attr.key == "up"
|| attr.key == "down"
|| attr.key == "right"
|| attr.key == "left"
|| attr.key == "zoom+"
|| attr.key == "zoom-"
|| attr.key == "volume+"
|| attr.key == "volume-"
|| attr.key == "back"
|| attr.key == "menu"
|| attr.key == FunctionAttributeKey.OnOff
)
{
continue;
}
if (index != 0 && index % 3 == 0)
{
row = new FrameLayout()
{
Height = Application.GetRealHeight(56),
Width = Application.GetRealWidth(296),
Gravity = Gravity.CenterHorizontal,
};
contentView.AddChidren(row);
}
if (attr.key == "+")
{
var addView = new FrameLayout()
{
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(88),
Height = Application.GetRealHeight(40),
Radius = (uint)Application.GetRealHeight(18),
BorderColor = CSS_Color.PromptingColor1,
BorderWidth = (uint)Application.GetRealWidth(2),
};
if (index % 3 == 1)
{
addView.Gravity = Gravity.Center;
}
else if (index % 3 == 2)
{
addView.X = Application.GetRealWidth(208);
}
row.AddChidren(addView);
var btnAdd = new Button()
{
Gravity = Gravity.Center,
UnSelectedImagePath = "Public/PlusSignIcon.png",
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
};
addView.AddChidren(btnAdd);
btnAdd.MouseUpEventHandler = (sender, e) =>
{
dialog.Close();
Action action = () => {
LoadDialog_IrMoreView();
};
var addButton = new AcControlPage_AddIrButton(action);
MainPage.BasePageView.AddChidren(addButton);
addButton.Show(device);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
}
else
{
var btn = new Button()
{
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(88),
Height = Application.GetRealHeight(40),
Radius = (uint)Application.GetRealHeight(18),
BorderColor = CSS_Color.PromptingColor1,
BorderWidth = (uint)Application.GetRealWidth(2),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainBackgroundColor,
SelectedBackgroundColor = CSS_Color.MainColor,
};
if (attr.value.Count > 0)
{
btn.Text = attr.value[0];
}
if (index % 3 == 1)
{
btn.Gravity = Gravity.Center;
}
else if (index % 3 == 2)
{
btn.X = Application.GetRealWidth(208);
}
row.AddChidren(btn);
btn.MouseUpEventHandler = (sender, e) =>
{
Dictionary d = new Dictionary();
d.Add(attr.key, "");
Control.Ins.SendWriteCommand(device, d);
new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(2000);
Application.RunOnMainThread(() =>
{
btn.IsSelected = false;
});
})
{ IsBackground = true }.Start();
};
}
index++;
}
dialog.Show();
}
///
/// 加载事件列表
///
void LoadEventList()
{
LoadControlEvent();
LoadCollectionEvent();
//回退刷新信息事件
actionRefresh = () => {
btnFunctionName.Text = btnFunctionName_Out.Text = device.name;
btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = device.GetRoomListName();
device.UpdataFuncitonInfo();
};
}
///
/// 收藏功能按钮事件
///
void LoadCollectionEvent()
{
btnCollection.MouseUpEventHandler += (sender, e) => {
btnCollection.IsSelected = device.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
device.CollectFunction();
};
}
///
/// 加载控制事件
///
void LoadControlEvent()
{
btnChlPlus.MouseUpEventHandler = (sender, e) =>
{
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("zoom+", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnChlReduce.MouseUpEventHandler = (sender, e) =>
{
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("zoom-", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnVolPlus.MouseUpEventHandler = (sender, e) =>
{
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("volume+", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnVolReduce.MouseUpEventHandler = (sender, e) =>
{
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("volume-", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnBack.MouseUpEventHandler = (sender, e) =>
{
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("return", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnPower.MouseUpEventHandler = (sender, e) =>
{
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("on_off", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnTopMenuUp.MouseDownEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconUp.png";
};
btnTopMenuDown.MouseDownEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconDown.png";
};
btnTopMenuLeft.MouseDownEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconLeft.png";
};
btnTopMenuRight.MouseDownEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconRight.png";
};
btnOk.MouseDownEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconOk.png";
};
btnMenu.MouseUpEventHandler = (sender, e) =>
{
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("menu", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnTopMenuUp.MouseUpEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("up", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnTopMenuLeft.MouseUpEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("left", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnTopMenuRight.MouseUpEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("right", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnTopMenuDown.MouseUpEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("down", "");
Control.Ins.SendWriteCommand(device, d);
}
};
btnOk.MouseUpEventHandler = (sender, e) => {
topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary d = new Dictionary();
d.Add("ok", "");
Control.Ins.SendWriteCommand(device, d);
}
};
}
}
}