using System;
|
using Shared;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Newtonsoft.Json;
|
using System.Collections.Generic;
|
|
namespace HDL_ON.UI
|
{
|
/// <summary>
|
/// 场景管理界面
|
/// </summary>
|
public class VoicePanelScenePage : FrameLayout
|
{
|
#region 窗体列表
|
/// <summary>
|
/// 当前窗体
|
/// </summary>
|
FrameLayout bodyView;
|
/// <summary>
|
/// 功能列表显示区域
|
/// </summary>
|
VerticalScrolViewLayout sceneListView;
|
/// <summary>
|
/// 显示功能的类型切换区域
|
/// </summary>
|
FrameLayout showdFunctionTypeRow;
|
/// <summary>
|
/// 未分配功能类型切换显示
|
/// </summary>
|
Button btnAdded;
|
/// <summary>
|
/// 已分配功能类型切换
|
/// </summary>
|
Button btnNotAdded;
|
/// <summary>
|
/// 全选按钮
|
/// </summary>
|
Button btnChooseAllIcon;
|
/// <summary>
|
/// 保存数据按钮
|
/// </summary>
|
Button btnConfrim;
|
#endregion
|
|
#region 区域变量
|
SBK_DeviceObj sbk_Devcie;
|
/// <summary>
|
/// 需要显示的功能总数,影响到界面显示
|
/// </summary>
|
int showdFunctionCount = 0;
|
List<Function> notAddedList = new List<Function>();
|
List<Function> addedList = new List<Function>();
|
/// <summary>
|
/// 需要增加的场景列表
|
/// </summary>
|
List<Function> addList = new List<Function>();
|
/// <summary>
|
/// 需要删除的场景列表
|
/// </summary>
|
List<Function> delList = new List<Function>();
|
#endregion
|
public VoicePanelScenePage(SBK_DeviceObj sbk_Devcie)
|
{
|
bodyView = this;
|
this.sbk_Devcie = sbk_Devcie;
|
}
|
|
/// <summary>
|
/// 加载界面
|
/// </summary>
|
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();
|
}
|
|
/// <summary>
|
/// 显示功能Row
|
/// </summary>
|
/// <param name="showUnallocated">是否是显示未分配</param>
|
void LoadSceneRow(List<Function> 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);
|
}
|
}
|
/// <summary>
|
/// 全选事件
|
/// </summary>
|
/// <param name="btn"></param>
|
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);
|
}
|
}
|
}
|
};
|
}
|
|
/// <summary>
|
/// 编辑场景列表
|
/// </summary>
|
/// <param name="functionRow"></param>
|
/// <param name="btn"></param>
|
/// <param name="btnIcon"></param>
|
/// <param name="function"></param>
|
void LoadEvent_ChangeSceneList(FrameLayout functionRow,Button btn,Button btnIcon, Function function)
|
{
|
EventHandler<MouseEventArgs> 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;
|
}
|
/// <summary>
|
/// 切换显示内容
|
/// </summary>
|
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;
|
}
|
}
|
};
|
}
|
|
/// <summary>
|
/// 保存数据事件
|
/// </summary>
|
void LoadEvent_SaveSceneList()
|
{
|
btnConfrim.MouseUpEventHandler = (sender, e) =>
|
{
|
//增加场景
|
foreach (var tempScene in addList)
|
{
|
}
|
//删除场景
|
foreach (var tempScene in delList)
|
{
|
|
}
|
};
|
}
|
}
|
}
|