using System;
using Shared;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace HDL_ON.UI
{
///
/// 场景管理界面
///
public class VoicePanelScenePage : FrameLayout
{
#region 窗体列表
///
/// 当前窗体
///
FrameLayout bodyView;
///
/// 功能列表显示区域
///
VerticalScrolViewLayout sceneListView;
///
/// 显示功能的类型切换区域
///
FrameLayout showdFunctionTypeRow;
///
/// 未分配功能类型切换显示
///
Button btnAdded;
///
/// 已分配功能类型切换
///
Button btnNotAdded;
///
/// 全选按钮
///
Button btnChooseAllIcon;
///
/// 保存数据按钮
///
Button btnConfrim;
#endregion
#region 区域变量
SBK_DeviceObj sbk_Devcie;
///
/// 需要显示的功能总数,影响到界面显示
///
int showdFunctionCount = 0;
List notAddedList = new List();
List addedList = new List();
///
/// 需要增加的场景列表
///
List addList = new List();
///
/// 需要删除的场景列表
///
List delList = new List();
#endregion
public VoicePanelScenePage(SBK_DeviceObj sbk_Devcie)
{
bodyView = this;
this.sbk_Devcie = sbk_Devcie;
}
///
/// 加载界面
///
public void LoadPage()
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
new TopViewDiv(bodyView, sbk_Devcie.name).LoadTopView();
#region 显示的功能类型切换区域
showdFunctionTypeRow = new FrameLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(62),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(showdFunctionTypeRow);
btnAdded = new Button()
{
Width = Application.GetRealWidth(106),
Height = Application.GetRealHeight(49),
TextAlignment = TextAlignment.Center,
SelectedTextColor = CSS_Color.MainColor,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.HeadlineFontSize,
TextID = StringId.Added,
IsSelected = true,
IsBold = true
};
showdFunctionTypeRow.AddChidren(btnAdded);
btnNotAdded = new Button()
{
X = btnAdded.Right + Application.GetRealWidth(10),
Width = Application.GetRealWidth(106),
Height = Application.GetRealHeight(49),
TextAlignment = TextAlignment.CenterLeft,
SelectedTextColor = CSS_Color.MainColor,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
TextID = StringId.NotAdded,
};
showdFunctionTypeRow.AddChidren(btnNotAdded);
#endregion
FrameLayout rowChooseAll = new FrameLayout()
{
Y = showdFunctionTypeRow.Bottom,
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(rowChooseAll);
btnChooseAllIcon = new Button()
{
Gravity = Gravity.CenterVertical,
X = Application.GetRealWidth(335),
Width = Application.GetRealWidth(28),
Height = Application.GetRealWidth(28),
UnSelectedImagePath = "Public/ChooseIcon.png",
SelectedImagePath = "Public/ChooseOnIcon.png",
IsSelected = true,
};
rowChooseAll.AddChidren(btnChooseAllIcon);
var btnChooseAllTitle = new Button()
{
X = Application.GetRealWidth(16),
TextID = StringId.SelectAll,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
};
rowChooseAll.AddChidren(btnChooseAllTitle);
sceneListView = new VerticalScrolViewLayout()
{
Y = rowChooseAll.Bottom,
Height = Application.GetRealHeight(413 - 50),
BackgroundColor = CSS_Color.BackgroundColor,
};
bodyView.AddChidren(sceneListView);
foreach (var function in FunctionList.List.scenes)
{
//var sbkScene = sbk_Devcie.number.Find((obj) => obj.sid == function.sid);
//if (sbkScene != null)
//{
// addedList.Add(function);
//}
//else
//{
// notAddedList.Add(function);
//}
}
foreach (var ddd in sbk_Devcie.number)
{
addedList.Add(new Function() { sid = ddd.sid, name = ddd.name });
}
LoadSceneRow(addedList);
btnConfrim = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(582),
Width = Application.GetRealWidth(220),
Height = Application.GetRealWidth(44),
Radius = (uint)Application.GetRealWidth(22),
BackgroundColor = CSS_Color.MainColor,
TextColor = CSS_Color.MainBackgroundColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextAlignment = TextAlignment.Center,
IsBold = true,
TextID = StringId.Confirm,
};
bodyView.AddChidren(btnConfrim);
LoadEvent_ChooseAllScene(btnChooseAllTitle);
LoadEvent_SaveSceneList();
LoadEvent_ChangeShowList();
}
///
/// 显示功能Row
///
/// 是否是显示未分配
void LoadSceneRow(List functions)
{
showdFunctionCount = 0;
sceneListView.RemoveAll();
foreach (var function in functions)
{
sceneListView.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealWidth(1),
BackgroundColor = CSS_Color.DividingLineColor,
});
FrameLayout functionRow = new FrameLayout()
{
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
sceneListView.AddChidren(functionRow);
Button btnChooseIcon = new Button()
{
Gravity = Gravity.CenterVertical,
X = Application.GetRealWidth(335),
Width = Application.GetRealWidth(28),
Height = Application.GetRealWidth(28),
UnSelectedImagePath = "Public/ChooseIcon.png",
SelectedImagePath = "Public/ChooseOnIcon.png",
Tag = "ChooseIcon",
};
functionRow.AddChidren(btnChooseIcon);
if (btnAdded.IsSelected)
{
btnChooseIcon.IsSelected = null == delList.Find((obj) => obj.sid == function.sid);
}
else
{
btnChooseIcon.IsSelected = null != addList.Find((obj) => obj.sid == function.sid);
}
var btnFunctionName = new Button()
{
X = Application.GetRealWidth(16),
Text = function.name,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
};
functionRow.AddChidren(btnFunctionName);
LoadEvent_ChangeSceneList(functionRow, btnFunctionName,btnChooseIcon, function);
showdFunctionCount++;
}
if (showdFunctionCount < 9)
{
sceneListView.Height = Application.GetRealHeight(51 * showdFunctionCount);
}
else
{
sceneListView.Height = Application.GetRealHeight(518 - 40 - 62);
}
}
///
/// 全选事件
///
///
void LoadEvent_ChooseAllScene(Button btnChooseAll)
{
btnChooseAll.MouseUpEventHandler = (sender, e) => {
btnChooseAllIcon.IsSelected = !btnChooseAllIcon.IsSelected;
for (int i = 0; i < sceneListView.ChildrenCount; i++)
{
if (sceneListView.GetChildren(i).GetType() == typeof(FrameLayout))
{
FrameLayout row = (FrameLayout)sceneListView.GetChildren(i);
for (int j = 0; j < row.ChildrenCount; j++)
{
if (row.GetChildren(j).GetType() == typeof(Button))
{
Button btn = (Button)row.GetChildren(j);
if (btn.Tag!= null && btn.Tag.ToString() == "ChooseIcon")
{
btn.IsSelected = btnChooseAllIcon.IsSelected;
}
}
}
}
}
if (btnAdded.IsSelected )
{
foreach(var function in addedList)
{
if (delList.Contains(function))
{
delList.Remove(function);
}
else
{
delList.Add(function);
}
} }
else
{
foreach (var function in notAddedList)
{
if (addList.Contains(function))
{
addList.Remove(function);
}
else
{
addList.Add(function);
}
}
}
};
}
///
/// 编辑场景列表
///
///
///
///
///
void LoadEvent_ChangeSceneList(FrameLayout functionRow,Button btn,Button btnIcon, Function function)
{
EventHandler eventHandler = (sender, e) =>
{
btnIcon.IsSelected = !btnIcon.IsSelected;
if (btnAdded.IsSelected)
{
if (btnIcon.IsSelected)
{
delList.Remove(function);
}
else
{
delList.Add(function);
}
//修改全选按钮状态
btnChooseAllIcon.IsSelected = true;
foreach (var temp in addedList)
{
if (addList.Find((obj) => obj.sid == temp.sid) != null)
{
btnChooseAllIcon.IsSelected = false;
break;
}
}
}
else
{
if (btnIcon.IsSelected)
{
addedList.Add(function);
}
else
{
addList.Remove(function);
}
btnChooseAllIcon.IsSelected = false;
foreach (var temp in notAddedList)
{
if (addList.Find((obj) => obj.sid == temp.sid) != null)
{
btnChooseAllIcon.IsSelected = true;
break;
}
}
}
};
functionRow.MouseUpEventHandler = eventHandler;
btn.MouseUpEventHandler = eventHandler;
}
///
/// 切换显示内容
///
void LoadEvent_ChangeShowList()
{
btnAdded.MouseUpEventHandler = (sender, e) => {
btnNotAdded.IsSelected = false;
btnNotAdded.IsBold = false;
btnAdded.IsSelected = true;
btnAdded.IsBold = true;
btnAdded.TextSize = CSS_FontSize.HeadlineFontSize;
btnNotAdded.TextSize = CSS_FontSize.TextFontSize;
LoadSceneRow(addedList);
//修改全选按钮状态
btnChooseAllIcon.IsSelected = true;
foreach (var temp in addedList)
{
if (addList.Find((obj) => obj.sid == temp.sid) != null)
{
btnChooseAllIcon.IsSelected = false;
break;
}
}
};
btnNotAdded.MouseUpEventHandler = (sender, e) => {
btnNotAdded.IsSelected = true;
btnNotAdded.IsBold = true;
btnAdded.IsSelected = false;
btnAdded.IsBold = false;
btnNotAdded.TextSize = CSS_FontSize.HeadlineFontSize;
btnAdded.TextSize = CSS_FontSize.TextFontSize;
LoadSceneRow(notAddedList);
//修改全选按钮状态
btnChooseAllIcon.IsSelected = false;
foreach (var temp in notAddedList)
{
if(addList.Find((obj)=>obj.sid == temp.sid)!=null)
{
btnChooseAllIcon.IsSelected = true;
break;
}
}
};
}
///
/// 保存数据事件
///
void LoadEvent_SaveSceneList()
{
btnConfrim.MouseUpEventHandler = (sender, e) =>
{
//增加场景
foreach (var tempScene in addList)
{
}
//删除场景
foreach (var tempScene in delList)
{
}
};
}
}
}